From d6e4a8e84865d656d27de9b203308a0d9aff3cc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yann=20C=C3=A9bron?= Date: Tue, 25 Apr 2023 16:10:42 +0200 Subject: [PATCH] psi_cookbook.md: JavaLibraryUtil --- .../appendix/api_notable/api_notable_list_2023.md | 4 +++- topics/basics/psi_cookbook.md | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/topics/appendix/api_notable/api_notable_list_2023.md b/topics/appendix/api_notable/api_notable_list_2023.md index 146ee9de6..ae5c6c64d 100644 --- a/topics/appendix/api_notable/api_notable_list_2023.md +++ b/topics/appendix/api_notable/api_notable_list_2023.md @@ -2,7 +2,6 @@ # Notable Changes in IntelliJ Platform and Plugins API 2023.* - List of known Notable API Changes in 2023.* _Early Access Program_ (EAP) releases of upcoming versions are available [here](https://eap.jetbrains.com). @@ -14,6 +13,9 @@ _Early Access Program_ (EAP) releases of upcoming versions are available [here]( ### IntelliJ Platform 2023.2 +Check presence of JVM library +: Use [dedicated API](psi_cookbook.md#how-do-i-check-the-presence-of-a-jvm-library) to check presence via class FQN or Maven coordinates. + ## 2023.1 ### IntelliJ Platform 2023.1 diff --git a/topics/basics/psi_cookbook.md b/topics/basics/psi_cookbook.md index e019e774b..5b84f5e54 100644 --- a/topics/basics/psi_cookbook.md +++ b/topics/basics/psi_cookbook.md @@ -56,9 +56,9 @@ Unlike [Developing Custom Language Plugins](custom_language_support.md), it is a ### How do I get a reference to the containing package of a Java class? ```java -PsiJavaFile javaFile = (PsiJavaFile) psiClass.getContainingFile(); -PsiPackage psiPackage = JavaPsiFacade.getInstance(project) - .findPackage(javaFile.getPackageName()); + PsiJavaFile javaFile = (PsiJavaFile)psiClass.getContainingFile(); + PsiPackage psiPackage = JavaPsiFacade.getInstance(project) + .findPackage(javaFile.getPackageName()); ``` or @@ -68,3 +68,12 @@ or ### How do I find the methods overriding a specific method? [`OverridingMethodsSearch.search()`](%gh-ic%/java/java-indexing-api/src/com/intellij/psi/search/searches/OverridingMethodsSearch.java) + +### How do I check the presence of a JVM library? + +_2023.2_ + +Use dedicated (and heavily cached) methods from [`JavaLibraryUtil`](%gh-ic-master%/java/openapi/src/com/intellij/java/library/JavaLibraryUtil.java): + +- `hasLibraryClass()` to check presence via known library class FQN +- `hasLibraryJar()` using Maven coordinates (for example, `io.micronaut:micronaut-core`).