Created
September 26, 2025 17:43
-
-
Save bartekpacia/d0d3cb9391251d96ea4dbf2570c3a73a to your computer and use it in GitHub Desktop.
adsad
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| asdads |
Author
Author
Find the first module:
ModuleRootManager.getInstance(ModuleManager.getInstance(getElement().getProject()).getModules()[0]).getModule()
Author
Print all OrderEntries in all modules in a project:
Arrays.stream(ModuleManager.getInstance(element.getProject()).getModules()).forEach(module -> {
System.out.println(module);
for (var orderEntry : ModuleRootManager.getInstance(module).getOrderEntries()) {
System.out.println(" -> OrderEntry: " + orderEntry);
}
});Output
Module: 'cucumber_app'
-> OrderEntry: InheritedSdkOrderEntry: < 24 >
-> OrderEntry: ModuleSourceOrderEntry: <Module source>
Module: 'cucumber_app.test'
-> OrderEntry: InheritedSdkOrderEntry: < 24 >
-> OrderEntry: ModuleSourceOrderEntry: <Module source>
-> OrderEntry: ModuleOrderEntry: cucumber_app.main
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: lib.jar
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: org.junit.jupiter:junit-jupiter:5.10.0
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:cucumber-junit:7.22.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: junit:junit:4.13.2
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:cucumber-java:7.22.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: org.junit.jupiter:junit-jupiter-params:5.10.0
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: org.junit.jupiter:junit-jupiter-api:5.10.0
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:cucumber-core:7.22.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: org.apiguardian:apiguardian-api:1.1.2
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: org.hamcrest:hamcrest-core:1.3
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: org.junit.platform:junit-platform-commons:1.10.0
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: org.opentest4j:opentest4j:1.3.0
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:cucumber-expressions:18.0.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:datatable:7.22.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:cucumber-gherkin-messages:7.22.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:cucumber-gherkin:7.22.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:cucumber-plugin:7.22.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:docstring:7.22.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:testng-xml-formatter:0.3.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:html-formatter:21.10.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:junit-xml-formatter:0.7.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:messages:27.2.0
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:tag-expressions:6.1.2
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:ci-environment:10.0.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:gherkin:32.1.1
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: io.cucumber:query:13.6.0
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: org.junit.jupiter:junit-jupiter-engine:5.10.0, scope=runtime
-> OrderEntry: LibraryOrderEntry: cucumber_app.test -> Gradle: org.junit.platform:junit-platform-engine:1.10.0, scope=runtime
Module: 'cucumber_app.main'
-> OrderEntry: InheritedSdkOrderEntry: < 24 >
-> OrderEntry: ModuleSourceOrderEntry: <Module source>
Author
Find specific class:
JavaPsiFacade.getInstance(getProject()).findClass("java.util.stream.Collectors", GlobalSearchScope.allScope(getProject()))
Author
Find language level:
LanguageLevelProjectExtension.getInstance(getProject()).getLanguageLevel()
Author
Find current module for PSI element:
ModuleUtilCore.findModuleForPsiElement(typeCast)
Author
Find modules in a project:
ModuleManager.getInstance(getProject()).getModules()
Author
Find current JDK used, by the PSI element:
ModuleRootManager.getInstance(ModuleUtilCore.findModuleForPsiElement(typeCast)).getSdk()
Author
FileBasedIndex index = FileBasedIndex.getInstance();
Collection<VirtualFile> allFiles = new HashSet<>();
index.processAllKeys(FileTypeIndex.NAME, fileType -> {
Collection<VirtualFile> files = FileTypeIndex.getFiles(fileType, element.getResolveScope());
for (var file : files) {
if (file.getPath().contains("openjdk.jdk")) continue;
if (file.getPath().contains(".gradle/caches")) continue;
allFiles.add(file);
}
return true;
}, element.getProject());
return allFiles;
Author
List all files in GlobalSearchScope of some library:
FileTypeIndex.getFiles(JavaClassFileType.INSTANCE, LibraryScopeCache.getInstance(element.getProject()).myLibrariesOnlyScope).stream()
.map(vf -> vf.getPath())
.filter(name -> name.contains("demo_cucumber"))
.toList()
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Find all modules in a project: