自动转换编码约定

时间:2013-02-06 13:17:16

标签: version-control coding-style conventions

在处理不同项目,使用不同人员和使用不同框架时,您经常难以使代码符合其约定。一些团队对命名变量/方法/类以及其他人围绕该主题进行神圣战争的事情非常严格。我理解他们并且我完全支持,但是作为任何开发人员,我都有自己的偏好,我希望我可以轻松编写代码。这让我想到是否有一个简单的解决方案。

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

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等。
  5. 有些人会很感激的额外内容:

    1. Line ending style
    2. 删除行结尾处的额外空格(例如sublime text 2可以在保存时执行,但对其他IDE /编辑器来说非常棒)
    3. 完美的工作流程将是这样的:

      1. 我从git
      2. 代码转换为我的风格
      3. 我编码的东西
      4. 我提交并推送
      5. 在推送(甚至提交)所有内容之前,代码将转换为约定样式
      6. 当然,有人可能希望不使用git,然后在打开时和保存文件后进行简单转换,但据我所知,使用某种工具在IDE /编辑器之外做是不可能的。

        有人偶然发现了类似的事吗?除标签/空间转换外无法找到任何内容。

        P.S。我想提一下我正在使用PHP / JS,所以它的优先顺序,但我在业余时间使用其他语言进行编码。

1 个答案:

答案 0 :(得分:1)

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

然而,我认为这是一个很大的问题。在推送/拉出存储库时转换代码。如果有人报告您的代码存在问题(例如第100行的异常),那么从存储库中提取时转换代码将会给您一个不同的行100.我认为如果不处理确切的代码,您实际上无法运行你的同胞正在与之合作。