IntelliJ Structural Search查找实现A而不是B的类

Fes*_*ler 5 intellij-idea structural-search

我试图使用的IntelliJ 10.5的"结构搜索"功能找到实现接口,类但没有实现另一个接口,.

通过首先搜索实现A的类,然后将搜索范围限制为"先前的搜索结果",可以很容易地将其简化为仅搜索未实现B的类,这在概念上非常简单.不幸的是,我还没有设法把它拉下来.

如果我搜索

class $clazz$ implements $B$ {}
Run Code Online (Sandbox Code Playgroud)

然后勾选为变量B的文本约束的"反转状态",似乎在寻找"实现比其他所有的东西类,即使他们还实行" .我也尝试在'完全匹配'变量上勾选'反转条件',它的效果不是很明显,但绝对不是我想要的.

Inicidentaly,其他人在IntelliJ论坛上问了一个类似的问题,但没有得到爱.帮助我,stackoverflow!

Joh*_*nny 3

为了查找实现 InterfaceA 但不实现 InterfaceB 的类,我执行了以下操作:

  1. 搜索 > 结构搜索
  2. 单击复制现有模板
  3. 选择接口的实现者(在层次结构内)并单击“确定”
  4. 单击编辑变量
  5. 变量列表中选择接口
  6. 文本/正则表达式中输入InterfaceA,然后单击确定
  7. 单击查找
  8. 搜索 > 结构搜索
  9. 单击编辑变量
  10. 变量列表中选择接口
  11. “文本/正则表达式”中输入“InterfaceB”,在“最小计数”中输入“0 ”,在“最大计数”中输入“0”,然后单击“确定”
  12. 范围下拉列表中选择以前的搜索结果
  13. 单击查找

请注意,当我在第 8 步尝试使用“编辑查询”按钮时遇到了问题。我没有研究/重试,但返回菜单并选择“搜索”>“结构搜索”肯定有效。