我需要在Java代码中找到所有带有单字母catch参数的catch
block ,例如:
catch (IOException e)
我尝试了以下模式,但它不起作用:
catch ($Type$ $name$)
$name$ text/regexp set to `.`
最佳答案
可能的解决方案1
尝试现有模板尝试。将变量 $ExceptionDcl$
编辑为 text/regexp .
并启用此变量是搜索目标。使用此模式只能找到一次具有多个 catch block 的 Try 语句。
可能的解决方案2
要在具有多个 catch 的 try 语句中查找单个 catch block ,请使用:
$E$ $e$
$E$ Text/regexp: Throwable
,在类型层次结构中应用约束已启用
$e$ 文本/正则表达式:.
,脚本文本:__context__.parent instanceof com.intellij.psi.PsiCatchSection
背景信息
不可能搜索孤独的 catch block 。为了搜索语言,结构搜索使用用于 IntelliJ IDEA 中所有其他智能的解析器。这意味着搜索 Java 时每个模式都必须是有效的 Java。因此,一个不幸的限制是,只有 catch block 不会被解析为可搜索的内容。这也是为什么在 SSR 模式中不可能用 $variable$ 替换关键字的原因。
关于java - 在 IntelliJ IDEA 中查找结构性 catch block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33988112/