如何使用 Intellij 搜索和替换模式消除“新行大括号”?

guy*_*.gc 1 intellij-idea inspection code-inspection structural-search android-studio

我正在尝试使用以下搜索和替换模板查找大括号写在新行中的所有 if 语句:

搜索模板:

if ($Expr$)
{
    $ThenStatements$;
}
else
{
    $ElseStatements$;
}
Run Code Online (Sandbox Code Playgroud)

替换模板:

if ($Expr$) {
    $ThenStatements$;
}
else {
    $ElseStatements$;
}
Run Code Online (Sandbox Code Playgroud)

如果模板引擎不区分两个模板,我面临的问题。它让我可以用正确的模板替换搜索模板,但它也会将“正确”模板检测为错误模板。

有没有办法使用某种正则表达式来解决这个问题?

编辑:在 Android Studio 上工作。我正在尝试为我的公司代码样式约定生成一组 lint 规则,这些规则将显示为警告或错误

Mar*_*lac 6

我相信适合这项工作的工具是代码格式化程序。

我假设这是我们正在谈论的 Java。

调整格式化程序设置:

  • 转到设置 -> 编辑器 -> 代码样式 -> Java ->(选项卡)包装和大括号
  • 将项目大括号放置/其他设置为:行尾
  • 检查预览是否是您想要的设置
  • 单击确定

格式化(全部)代码:

  • 选择根包
  • 单击 Alt+L(菜单:代码 -> 重新格式化代码)
  • 出现重新格式化代码对话框,单击确定

所有的代码都应该按照规则重新格式化。

  • 您应该检查 [Checkstyle](http://checkstyle.sourceforge.net/) - 它可以满足您的需求,并且可以安装在 IDE 和 CI 服务器中。 (2认同)