in project_model/src/main/java/org/intellij/sdk/project/model/LibrariesAction.java [47:88]
public void actionPerformed(@NotNull AnActionEvent event) {
Project project = event.getProject();
if (project == null) {
return;
}
Navigatable element = event.getData(CommonDataKeys.NAVIGATABLE);
if (element instanceof PsiClass) {
PsiFile psiFile = ((PsiClass) element).getContainingFile();
if (psiFile == null) {
return;
}
VirtualFile virtualFile = psiFile.getVirtualFile();
if (virtualFile == null) {
return;
}
final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex();
StringBuilder jars = new StringBuilder();
for (OrderEntry orderEntry : fileIndex.getOrderEntriesForFile(virtualFile)) {
if (orderEntry instanceof LibraryOrderEntry libraryEntry) {
final Library library = libraryEntry.getLibrary();
if (library == null) {
continue;
}
VirtualFile[] files = library.getFiles(OrderRootType.CLASSES);
if (files.length == 0) {
continue;
}
for (VirtualFile jar : files) {
jars.append(jar.getName()).append(", ");
}
}
}
String fileAndLibs;
if (jars.length() > 0) {
fileAndLibs = virtualFile.getName() + ": " + jars;
} else {
fileAndLibs = "None";
}
Messages.showInfoMessage("Libraries for file: " + fileAndLibs,
"Libraries Info");
}
}