持有PsiFile实例,怎么获得PsiClass实例?

从PsiDirectory获取了PsiFile[],找到对应的类,对其进行操作,但是缺少PsiClass实例。

0
5 comments
Avatar
Permanently deleted user

Hold PsiFile instance, how to get PsiClass instance?

 

0
Avatar
Permanently deleted user
PsiTreeUtil.findChildOfAnyType(currentFile, PsiClass.class);

0

哥,你在自问自答么

0
Avatar
Permanently deleted user

自己找到了答案,IJ IDEA API太少

0
获取选中的文件
VirtualFile[] virtualFiles = e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY);
System.out.println(virtualFiles.length);

for (VirtualFile virtualFile : virtualFiles) {
System.out.println(virtualFile.getChildren());
VirtualFile[] virtualFiles1 = virtualFile.getChildren();
System.out.println(virtualFiles1.length);
    //通过VirtualFile获取的PsiFile对象
PsiFile psiFile = PsiManager.getInstance(e.getProject()).findFile(virtualFile);
//通过PsiFile获取PsiClass
final PsiClass psiClass = PsiTreeUtil.findChildOfAnyType(psiFile.getOriginalElement(), PsiClass.class);

qq963577663 欢迎交流
0

Please sign in to leave a comment.