在 IntelliJ IDEA 中查找结构上的 catch 块
Find structurally catch blocks in IntelliJ IDEA
我需要在 Java 代码中找到所有带有一个字母 catch 参数的 catch
块,例如:
catch (IOException e)
我已经尝试了以下模式,但它不起作用:
catch ($Type$ $name$)
$name$ text/regexp set to `.`
可能的解决方案 1
尝试现有模板尝试。将变量 $ExceptionDcl$
编辑为 text/regexp .
并启用 This variable is target of the search。带有多个 catch 块的 Try 语句只能用这种模式找到一次。
可能的解决方案 2
要在包含多个 catch 的 try 语句中查找单个 catch 块,请使用:
$E$ $e$
$E$ Text/regexp: Throwable
, 在类型层次结构中应用约束 启用
$e$ Text/regexp: .
, 脚本文本: __context__.parent instanceof com.intellij.psi.PsiCatchSection
背景资料
无法搜索孤独的捕获块。要搜索一种语言,结构搜索使用用于 IntelliJ IDEA 中所有其他智能的解析器。这意味着在搜索 Java 时,每个模式都必须是有效的 Java。因此,不幸的是,只有一个 catch 块没有被解析为可以搜索的内容,这是一个不幸的限制。这也是为什么无法在 SSR 模式中用 $variable$ 替换关键字的原因。
我需要在 Java 代码中找到所有带有一个字母 catch 参数的 catch
块,例如:
catch (IOException e)
我已经尝试了以下模式,但它不起作用:
catch ($Type$ $name$)
$name$ text/regexp set to `.`
可能的解决方案 1
尝试现有模板尝试。将变量 $ExceptionDcl$
编辑为 text/regexp .
并启用 This variable is target of the search。带有多个 catch 块的 Try 语句只能用这种模式找到一次。
可能的解决方案 2
要在包含多个 catch 的 try 语句中查找单个 catch 块,请使用:
$E$ $e$
$E$ Text/regexp: Throwable
, 在类型层次结构中应用约束 启用
$e$ Text/regexp: .
, 脚本文本: __context__.parent instanceof com.intellij.psi.PsiCatchSection
背景资料
无法搜索孤独的捕获块。要搜索一种语言,结构搜索使用用于 IntelliJ IDEA 中所有其他智能的解析器。这意味着在搜索 Java 时,每个模式都必须是有效的 Java。因此,不幸的是,只有一个 catch 块没有被解析为可以搜索的内容,这是一个不幸的限制。这也是为什么无法在 SSR 模式中用 $variable$ 替换关键字的原因。