在多编辑器团队中格式化 Clojure 代码
Formatting Clojure code in a multi-editor team
随着我们的 Clojure 团队的壮大,我们看到越来越多的编辑器在使用中。
这会导致大量无关的空白更改。
我最担心的不是代码的格式——所有的编辑器都生成可读的代码——更多的是 git blame
变得非常不可用,因为项目中的每一行都被夸大了它的历史无趣的格式更改。
在解决这个问题时,现在的两个顶级竞争者是在提交 and/or 之前使用 cljfmt
一个脚本,该脚本从 git 的变更集中删除空白变更。
其他人是如何处理的?
git blame turning quite unusable as every line in the project gets its history inflated by uninteresting changes to formatting.
不仅如此,还会导致不必要的冲突。在预提交挂钩中使用格式化工具(cljfmt
,如您所述)有助于减少此问题。预提交挂钩可以设置为主动(重新格式化文件并提交)或被动(如果存在格式问题则中止提交)。
也可以考虑使用EditorConfig,您可以使用它来设置格式规则,然后将配置文件与项目一起跟踪。一些 IDE 和编辑器集成了对 EditorConfig 的支持,许多其他 IDE 和编辑器都有可用的插件。
我也用这个来补充cljfmt:https://github.com/gfredericks/how-to-ns
随着我们的 Clojure 团队的壮大,我们看到越来越多的编辑器在使用中。 这会导致大量无关的空白更改。
我最担心的不是代码的格式——所有的编辑器都生成可读的代码——更多的是 git blame
变得非常不可用,因为项目中的每一行都被夸大了它的历史无趣的格式更改。
在解决这个问题时,现在的两个顶级竞争者是在提交 and/or 之前使用 cljfmt
一个脚本,该脚本从 git 的变更集中删除空白变更。
其他人是如何处理的?
git blame turning quite unusable as every line in the project gets its history inflated by uninteresting changes to formatting.
不仅如此,还会导致不必要的冲突。在预提交挂钩中使用格式化工具(cljfmt
,如您所述)有助于减少此问题。预提交挂钩可以设置为主动(重新格式化文件并提交)或被动(如果存在格式问题则中止提交)。
也可以考虑使用EditorConfig,您可以使用它来设置格式规则,然后将配置文件与项目一起跟踪。一些 IDE 和编辑器集成了对 EditorConfig 的支持,许多其他 IDE 和编辑器都有可用的插件。
我也用这个来补充cljfmt:https://github.com/gfredericks/how-to-ns