2017-06-21 27 views
0

我正在编写一个intellij插件让人们选择一个类,我发现代码是intellij开源代码中的移动方法。intellij插件使用TreeClassChooserFactory不显示推荐的类?

移动方法图像是这样的,它将显示所有项目类。 enter image description here

但是当我用下面的代码的PIC是这个 enter image description here

有没有建议类,之后我键入一些文字,仍然一无所获。

TreeClassChooser chooser = TreeClassChooserFactory.getInstance(myProject).createWithInnerClassesScopeChooser(
         "choose serviceClass", GlobalSearchScope.projectScope(myProject), new ClassFilter() { 
          public boolean isAccepted(PsiClass aClass) { 
           return aClass.getParent() instanceof PsiFile && !aClass.isInterface(); 
          } 
         }, srcClass); 
       chooser.selectDirectory(pojoClass.getContainingFile().getContainingDirectory()); 
       chooser.showDialog(); 
+1

奇怪,适合我在IDEA 2017.2 EAP中使用。我建议把断点(例如TreeJavaClassChooserDialog#getClassesByName,ContributorsBasedGotoByModel#processNames),看看会发生什么。 –

+0

似乎找到原因,我将我的插件从intentionAction替换为正常行为后,它的工作。当它使用intentionAction时,TreeJavaClassChooserDialog#getClassesByName在显示对话框后永远不会调用,它在取消对话框后调用,看起来很奇怪。 非常感谢您的帮助。 –

+0

这似乎是IDE中的一个错误,在即将到来的2017.2版本中得到修复 –

回答

1

这似乎是IDE中的一个错误,在即将到来的2017.2版本中修复。