java - groovy intelliJ "angle brackets (<>)"修改代码样式

我目前遇到了代码样式设置问题,即 IntelliJ 中的“重新格式化代码”功能。

必要信息:

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

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

非工作:

final List<Map<String, Object>> listOfMaps = a["b"] as List<Map<String, Object>>

问题是编译器只能正确解释 last 2 右尖括号之间是否有空格。

工作中:

final List<Map<String, Object>> listOfMaps = a["b"] as List<Map<String, Object> >

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

问题:

“重新格式化代码”功能总是删除空格,我在右尖括号之间添加了空格,以使脚本可编译。

问题:

如何教 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 功能。

最佳答案

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

正如@ybedrov 提到的,您需要使用them 打开增强请求。

没有现有的选项可以帮助你

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

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

但是,如果您只关心一个空间,那么童话世界中存在该选项。我只需要一个 sed 命令通过运行 bash 脚本来解决问题

$ find . -name "*.groovy" | xargs sed 's|>>|> >|g' -i

关于java - groovy intelliJ "angle brackets (<>)"修改代码样式设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49902218/

相关文章:

formatting - 我可以向 mercurial 命令模板添加自定义颜色吗?

c - printf中的 "%.6d"是什么意思

java - 自动将大括号添加到 java 代码库中的所有 if/else/for/while 等

emacs - Emacs 中的 LaTeX 缩进(格式化)

java - 我可以使用哪个 API 将 int 格式化为 2 位数字?

iphone - 将(大)数字 "12345"格式化为 "12,345"

php - 将价格格式化为逗号分隔

之后强制java xml do">java - 如何在<?xml版本="1.0"编码="UTF-8"?>之后强制java xml do

javascript - 如何在 JavaScript 中为数字添加千位分隔符?

asp.net-mvc - Resharper 5 : How do I set the defau