mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java] extracts module virtual file detection routine
This commit is contained in:
@@ -44,8 +44,8 @@ import com.intellij.openapi.vfs.JarFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileSystem;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.PsiImplUtil;
|
||||
import com.intellij.psi.impl.beanProperties.BeanPropertyElement;
|
||||
import com.intellij.psi.impl.light.LightJavaModule;
|
||||
import com.intellij.psi.impl.source.javadoc.PsiDocParamRef;
|
||||
import com.intellij.psi.infos.CandidateInfo;
|
||||
import com.intellij.psi.javadoc.PsiDocComment;
|
||||
@@ -381,16 +381,7 @@ public class JavaDocumentationProvider extends DocumentationProviderEx implement
|
||||
private static String generateModuleInfo(PsiJavaModule module) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
VirtualFile file = null;
|
||||
if (module instanceof LightJavaModule) {
|
||||
PsiElement target = module.getNavigationElement();
|
||||
if (target instanceof PsiDirectory) {
|
||||
file = ((PsiDirectory)target).getVirtualFile();
|
||||
}
|
||||
}
|
||||
else {
|
||||
file = module.getContainingFile().getVirtualFile();
|
||||
}
|
||||
VirtualFile file = PsiImplUtil.getModuleVirtualFile(module);
|
||||
generateOrderEntryInfo(sb, file, module.getProject());
|
||||
|
||||
sb.append(LangBundle.message("java.terms.module")).append(' ').append(module.getModuleName());
|
||||
|
||||
@@ -25,9 +25,11 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.filters.ElementFilter;
|
||||
import com.intellij.psi.impl.light.LightClassReference;
|
||||
import com.intellij.psi.impl.light.LightJavaModule;
|
||||
import com.intellij.psi.impl.source.PsiClassReferenceType;
|
||||
import com.intellij.psi.impl.source.PsiImmediateClassType;
|
||||
import com.intellij.psi.impl.source.resolve.ResolveCache;
|
||||
@@ -735,4 +737,13 @@ public class PsiImplUtil {
|
||||
ResolveCache.getInstance(project).resolveWithCaching(element, resolver, true, incompleteCode, psiFile);
|
||||
return results.length == 0 ? JavaResolveResult.EMPTY_ARRAY : (JavaResolveResult[])results;
|
||||
}
|
||||
}
|
||||
|
||||
public static VirtualFile getModuleVirtualFile(@NotNull PsiJavaModule module) {
|
||||
if (module instanceof LightJavaModule) {
|
||||
return ((LightJavaModule)module).getRootVirtualFile();
|
||||
}
|
||||
else {
|
||||
return module.getContainingFile().getVirtualFile();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -50,6 +50,11 @@ public class LightJavaModule extends LightElement implements PsiJavaModule {
|
||||
myRefElement = new LightJavaModuleReferenceElement(manager, moduleName(jarRoot.getNameWithoutExtension()));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public VirtualFile getRootVirtualFile() {
|
||||
return myJarRoot;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public PsiDocComment getDocComment() {
|
||||
|
||||
Reference in New Issue
Block a user