首页 > 解决方案 > 在 IntelliJ 中将单行方法重新格式化为单行文本

问题描述

我希望 IntelliJ 2019.x 更改单行方法,例如:

public String getFileName ( )
{
    return this.fileName;
}

…成为单行文本,如下所示:

public String getFileName ( ) { return this.fileName; }

我希望格式是永久性的。是否有一些代码样式或其他设置?

不想暂时“折叠”它,只是在我点击它时让它展开回四行。此折叠功能已在此处此处进行了介绍。

标签: intellij-idea

解决方案


可以使用以下代码样式设置:
Preferences | Editor | Code Style | Java | Wrapping and Braces | Keep when reformatting | Simple methods in one line
启用它以将任何方法的格式设置为您想要的样式。

不幸的是,没有代码样式设置来格式化单行单行体的方法。但是有一种解决方法是使用这样的模板对这种格式使用结构搜索和替换:

<replaceConfiguration name="constructors &amp; methods" text="$ReturnType$ $Method$($ParameterType$ $Parameter$) {&#10;    $st$;&#10;}" recursive="false" caseInsensitive="true" type="JAVA" pattern_context="member" reformatAccordingToStyle="true" shortenFQN="true" replacement="$ReturnType$ $Method$($ParameterType$ $Parameter$) { $st$; }">
  <constraint name="__context__" within="" contains="" />
  <constraint name="ReturnType" minCount="0" within="" contains="" />
  <constraint name="Method" within="" contains="" />
  <constraint name="ParameterType" within="" contains="" />
  <constraint name="Parameter" minCount="0" maxCount="2147483647" within="" contains="" />
  <constraint name="st" within="" contains="" />
</replaceConfiguration>

复制上面的模板并打开Edit | Find | Replace Structurally. 接下来通过调用Import Template from Clipboard(在 cog 菜单下)导入模板,然后单击 Find。

这将找到具有单行正文的所有方法,并将它们替换为在一行上格式化的相同方法。


推荐阅读