groovy intelliJ"尖括号(<>)"修改codestylesettings

Cod*_*tic 10 java formatting groovy intellij-idea

我目前在codestylesettings中遇到问题,即IntelliJ中的"重新格式化代码"功能.

NECESARRY信息:

我正在编写groovy脚本,它使用一些Java功能(例如泛型)

似乎我的groovy版本(由于各种原因无法更改)在具有如下定义的变量时会遇到编译问题:

非工作:

final List<Map<String, Object>> listOfMaps = a["b"] as List<Map<String, Object>>
Run Code Online (Sandbox Code Playgroud)

问题是如果编译器之间有空格,编译器只能正确解释最后2个关闭尖括号.

工作方式:

final List<Map<String, Object>> listOfMaps = a["b"] as List<Map<String, Object> >
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的groovy版本中的已知错误.

问题:

"重新格式化代码"功能总是删除空格,我在结束尖括号之间添加空格以使脚本可编辑.

题:

我如何教IntelliJ不删除空间?

尝试:

此设置确实存在于java文件(设置 - >编辑器 - >代码样式 - > JAVA - >空格 - >内 - >角度括号).

导出的XML设置:

<JavaCodeStyleSettings>
<option name="SPACES_WITHIN_ANGLE_BRACKETS" value="true" />
Run Code Online (Sandbox Code Playgroud)

但不是groovy,所以我尝试将它添加到groovy中,如下所示:

<codeStyleSettings language="Groovy">
<option name="SPACES_WITHIN_ANGLE_BRACKETS" value="true" />
Run Code Online (Sandbox Code Playgroud)

重新格式化时只会冻结一分钟左右,然后再次移除空格.

也许cuz groovy不知道那些尖括号因此它是这里使用的Java功能.

Tar*_*ani 3

我检查了反编译的源代码,似乎不SPACES_WITHIN_ANGLE_BRACKETS支持Groovy. 每个格式化程序都有单独的格式化规则和配置。现有的配置都无法帮助您完成任务

仅适用于Java

Groovy 中没有选项

正如 @ybedrov 提到的,您需要向他们提出增强请求

现有选项无法帮助您

正如所@daniel指出的,确实存在一种方法,那就是创建您自己的自定义语言

http://www.jetbrains.org/intellij/sdk/docs/tutorials/custom_language_support_tutorial.html

但如果你只关心一个空间,那么这个选项就存在于童话世界中。我只想sed通过运行 bash 脚本来解决问题

$ find . -name "*.groovy" | xargs sed 's|>>|> >|g' -i
Run Code Online (Sandbox Code Playgroud)