Intellij Idea 在多个项目之间共享单个.editorconfig文件

cdmah0mi  于 2023-03-01  发布在  其他
关注(0)|答案(3)|浏览(144)

我的团队在GitHub中维护了几个Java仓库,每个仓库的根文件夹中都有一个.editorconfig文件,而且它们都是完全相同的,这使得维护它们有点痛苦,因为它们都必须单独更新。
我们所有人都使用IntelliJ,它有一个从URL下载检查样式规则的功能,但似乎没有一种方法可以用.editorconfig规则来完成这一任务。
我们所有的项目都使用Maven。有没有办法让.editorconfig文件可以通过API访问,并让项目配置为自动下载它并将其放在根文件夹中?
对于任何不熟悉EditorConfig的人,更多信息是here

h43kikqp

h43kikqp1#

我做了一个工具来解决这类问题。它是作为一个NPM包开发的,但它基本上只是一个命令行工具,所以它应该适用于这种情况。如果你用Exec Maven Plugin执行类似npx your-dictator-name@version的东西。
这个工具叫做Dictator Builder,可以帮助创建“独裁者”。独裁者是包含“独裁者”的命令行工具,你的.editorconfig可以是“独裁者”的一部分。
在您的示例中,.dictatable-config.json可能包含以下内容:

{
  "message": "Copy editorconfig",
  "actions": [
    {
      "copyFrom": ".editorconfig",
      "target": "."
    }
  ]
}
f87krz0w

f87krz0w2#

我也有类似的情况,我一直在通过mklink /h使用hardlinks来解决这个问题。到目前为止,我还没有遇到任何问题,因为一些用户对softlinks.editorconfig in shared Git repository)有问题,我不清楚软链接的问题是什么。

dly7yett

dly7yett3#

引用您提到的相同EditorConfig文档:
打开文件时,EditorConfig插件会在打开文件的目录和每个父目录中查找名为.editorconfig的文件。如果到达根文件路径或找到包含root=true的EditorConfig文件,则将停止搜索.editorconfig文件。
因此,最方便和易于管理的方法是创建一个.editorconfig文件,并将其放置在所有仓库的父目录中,该文件必须包含root=true行。
这也许可以通过将文件存储在 one 存储库中并在父目录中创建指向它的 symlink 来进一步改进:

cd <parent_dir_for_all_repos>
ln -s .../path/to/.editorconfig

相关问题