0

在处理不同的项目、与不同的人并使用不同的框架时,您通常很难使您的代码符合他们的约定。一些团队对命名变量/方法/类和其他事情非常严格,而其他团队则围绕该主题进行圣战。我理解他们,我完全支持,但作为任何开发人员,我有自己的偏好,我希望我能舒适地编码。这让我思考是否有一个简单的解决方案。

是否有任何工具或编辑器可以自动转换代码以遵循不同的标准?我想不可能有这样的智能工具来支持命名转换,所以我可以接受,但我真的希望看到

foreach($lala as $lalala) {

并不是

foreach($lala as $lalala)
{

语句也是如此:

if(I_LIEK_COOKIES) {
    eat_cookie();
} else {
    toss_cookie();
}

并不是

if ( I_LIEK_COOKIES ) {
    eat_cookie();
}
else
{
    toss_cookie();
}

(注意括号之间和周围的空格)

我什至不会提及空格/制表符,我可以在我的 IDE 中使用快捷方式对其进行转换,但它会很棒。

所以我想要定制的东西是

  1. 括号之间的空格
  2. 制表符/空格和每个制表符的空格
  3. 行尾或新行上的小胡子括号
  4. 始终将胡须括号附加到任何 if/ifelse/else/for/foreach 等。

任何人都会欣赏的一些额外内容:

  1. 行尾样式
  2. 删除行尾的多余空格(如 sublime text 2 可以在保存时执行,但对于其他 IDE/编辑器来说会很棒)

完美的工作流程应该是这样的:

  1. 我从 git 拉
  2. 代码转换为我的风格
  3. 我编码的东西
  4. 我承诺并推动
  5. 在一切都被推送(甚至提交)之前,代码被转换为约定风格

当然,有人可能希望不使用 git,然后在打开和保存文件后将其简单地转换,但据我所知,在 IDE/编辑器之外使用某种工具是不可能的。

有人偶然发现了类似的东西吗?除了制表符/空格转换之外,在任何地方都找不到任何东西。

PS 我想提一下我正在使用 PHP/JS,所以它被优先考虑,但我在业余时间使用其他语言进行编码。

4

1 回答 1

1

您可以在每个项目的版本控制存储库中存储配置(例如 vim .vimrcs、Eclipse 首选项等)。

但是,我认为有一个大问题。在向/从存储库推/拉时转换代码。如果有人报告您的代码存在问题(例如,第 100 行的异常),从存储库中提取代码时转换代码将为您提供不同的第 100 行。我认为如果不处理确切的代码,您实际上无法操作您的同胞正在与之合作。

于 2013-02-06T13:20:40.877 回答