我目前在使用IntelliJ的"Reformat Code"功能时遇到了代码样式设置的问题。
必要信息:
我正在编写使用一些Java功能(例如泛型)的Groovy脚本。
似乎我的Groovy版本(由于各种原因无法更改)在定义变量时会出现编译问题,例如:
不可用:
final List<Map<String, Object>> listOfMaps = a["b"] as List<Map<String, Object>>
问题在于,如果在最后两个封闭的尖括号之间没有空格,则编译器只能正确解释它们中的最后两个。
< p > 工作中:final List<Map<String, Object>> listOfMaps = a["b"] as List<Map<String, Object> >
我使用的groovy版本中有一个已知的bug。
问题:
"重新格式化代码"功能总是会删除我在脚本中添加的尖括号结束标签之间所加的空格,而这些空格是为了使脚本编译通过。
问题:
如何让IntelliJ不要删除这些空格?
尝试过的解决方案:
这个设置对于Java文件是存在的(设置->编辑器->代码风格->JAVA->空格->在尖括号内)。
导出的XML设置:
<JavaCodeStyleSettings>
<option name="SPACES_WITHIN_ANGLE_BRACKETS" value="true" />
但对于Groovy来说不管用,所以我尝试像这样为Groovy添加它:
<codeStyleSettings language="Groovy">
<option name="SPACES_WITHIN_ANGLE_BRACKETS" value="true" />
重新格式化时,只会冻结一分钟左右,然后再次删除空格。
可能是因为Groovy不知道这些尖括号,因此这里使用了Java功能。
SPACE_WITHIN_GSTRING_INJECTION_BRACES
然后看看是否有帮助?该值将为 true。 - Tarun Lalwani