当我向我们的存储库提交/更新代码时,我想自动在制表符和空格之间进行转换以进行缩进。我找到了eclipse的AnyEdit插件,它可以转换文件的目录。一开始还不错,但是有人对如何处理这个问题有更多的经验吗?或者也许知道 Ant 脚本或其他东西?

有帮助吗?

解决方案

为什么不直接使用代码格式化程序和/或清理功能?它有一些设置可以为您处理这些事情。您甚至可以让它在保存时自动运行。

编辑: 正如 Peter Perháč 在评论中指出的那样,这只回答了问题的一半。我没有任何实践经验,但你可以尝试一下 Maven Eclipse 格式插件 从 Maven 构建格式化。

不幸的是,这只是 Maven,而且我知道没有轻量级命令行格式化程序。但是,如果您碰巧使用 Maven,则可以将格式目标绑定到适当的阶段,并且如果将 Eclipse 设置为自动构建,它将在更新时格式化。

根据 SCM 工具(git、svn 等),您还可以创建一个运行构建的钩子(但它可能有点太重了)。

其他提示

  1. 确保你的编辑器设置为 使用空格代替制表符.
  2. 选择所有文本并点击 指令管理系统 + 在 Mac 上或 控制键 + 在窗户上。

我使用 AnyEdit 插件在保存文件时自动将制表符转换为空格。我还配置基本文本编辑器(几乎所有其他编辑器都从中派生)来插入空格而不是制表符。这听起来很多余,但它的作用是确保我不插入任何选项卡,并且我编辑的任何已包含选项卡的文件将在我保存后立即进行转换。

选项卡在源代码中没有位置。如果其他人在将制表位设置为不同值的情况下查看文件,他们无论如何都会丢失大部分对齐/格式。

(当然,如果您有直接编辑的 Makefile,您需要确保保留它们的选项卡。但在我的项目中,如果使用了 make,则 Makefile 是从不同的源派生的,例如 Perl 中的 Makefile.PL。)

有点矫枉过正,只能尝试某些可以处理它的存储库产品,但需要一个钩子脚本来调用缩进或 阿风格 可以做到这一点。对于每个文件,它都会以相同的方式格式化每个人的代码,具体取决于您编写挂钩脚本的方式,当然它必须预先提交。

当且仅当制表符不在行首时,使用制表符而不是空格可能会丢失对齐/格式。切勿在行内使用制表符,始终在行的前面使用制表符。这允许您使用编辑器调整到所需的缩进级别,而不会影响同事对文件的视图。挑战:查找行前面的制表符失去对齐的示例。

我用 Kedit 就是为了这个事情。它还可以本地转换来自 Macintosh、UNIX 和 MS-Dos 的文本文件。由于它是一个较旧的编辑器,我使用它的一个脚本来处理 unicode 文件。您可能还想看看其他一些智能编辑器。

我使用 Eclipse for Java EE Developer 4.6.0 Neon。我用 http://marketplace.eclipse.org/content/anyedit-tools

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top