如何为所有现有的本地项目切换活动的intellij代码样式?

jk9hmnmh  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(274)

我想按照googlejava风格指南标准化我的java代码风格。我下载了intellij-java-google-style.xml,进行了一些自定义调整,并将其导入intellij中的global ide部分:
首选项…>>编辑器>>代码样式>>齿轮图标>>导入方案>>intellij代码样式xml
这将代码样式应用于当前项目。但是,现有的intellij项目保持其现有的代码样式。我可以在其他项目的下拉菜单中看到新的google样式,但是我必须为每个项目手动重新选择它。我的问题是我有数百个项目。
我想为所有现有的项目自动选择新的google代码样式,而不必检查每个项目的首选项。但是怎么做呢?
注意:我不想在我的项目中自动格式化代码,那将是git的噩梦。

flvtvl50

flvtvl501#

intellij不提供自动更改现有本地repo上的代码样式的方法。所以我们需要跳出框框思考。

递归搜索和替换

结果是intellij将活动代码样式存储在 .idea/codeStyles/codeStyleConfig.xml :

<component name="ProjectCodeStyleConfiguration">
  <state>
    <option name="PREFERRED_PROJECT_CODE_STYLE" value="OldCodeStyle" />
  </state>
</component>

我们可以对文件夹中的所有代码样式配置文件进行递归搜索和替换,并替换 value 每个字段中的字段。首先,确保将google风格的xml导入到intellij中,如问题中所述,并调用它 GoogleStyle .
这是你的答案 bash 命令。 find 递归地搜索到的所有路径 codeStyleConfig.xml . sed 将当前代码样式替换为 GoogleStyle .

find ~/projects -name codeStyleConfig.xml -type f -print0 | xargs -0 sed -i "" -E "s/(.+PREFERRED_PROJECT_CODE_STYLE\" value=\")(.+)(\" \/>)/\1GoogleStyle\3/"

此命令已在macos 11和intellij 2020.2上进行了测试。我没有在linux上测试过。要了解该命令的工作原理,请参见此处和此处。对于windows,可以使用notepad++执行regex查找和替换,安装bash库,如 Cygwin 或者找到 PowerShell 等价物(参见此处和此处)。

pinkon5k

pinkon5k2#

如果已将样式xml文件导入 Stored in IDE 从scheme下拉菜单中,它应该被用作所有项目的默认值。
如果您使用apachemaven或gradle,那么可以使用gogglejava格式格式化所有现有项目。
在我看来,对现有项目自动应用代码格式不是一个好主意,因为它会影响这些项目的变更日志。它使代码比较变得毫无意义。

相关问题