如何在现有的Perl项目中应用/使用Perl::Tidy



这个问题与其说是技术问题,不如说是寻求建议,找到合适的方法,而不会造成伤害。

假设如下:

    我们有一个用Perl开发的大应用程序。
  1. 我们想开始在命令行上使用perltidy来强制统一
  2. 格式的样式/规则
  3. 我们有很多分支,我们不知道确切的时间合并到主分支。它们也应该在合并之前或之后进行整理
  4. 我们想要避免任何由于格式化导致的提交冲突。

我想在子程序级别开始格式化,但我没有在perltidy中找到这样的功能。还有另一个功能"跳过选定的代码部分",但现在我可能想要相反的功能——只格式化选定的代码部分。这个想法是,当开发人员触及部分代码时,他/她将只整理修改过的部分。

最好是找到一种方法,在不破坏开发周期的情况下格式化整个项目,并确保我们不会破坏代码的任何部分(在合并期间)。我们有单元测试,但代码的某些部分可能仍然未被发现。

让我也澄清一下,团队中的每个人都可能使用不同的编辑器。例如,我使用Sublime Text 3和SublimePerlTidy。其他人则使用Kate、Atom或VIM。一种正确的方法似乎是只格式化我们所触及的代码片段@xxfelixxx(谢谢!)

  1. 定义编码标准并创建.perltidyrc与所有开发人员共享。
  2. 让整理成为团队为其项目执行的任务之一(以及测试和代码审查),因此他们整理/测试/审查他们接触的代码。
  3. 测试代码非常好。整理可能会引入微妙的bug,所以最好是少量的可管理的(而不是只是整理整个代码库,然后想知道为什么事情停止工作…)
  4. 整齐的提交应该是独立的,没有其他的更改,这样回归就可以分别与代码更改或整齐的更改绑定在一起。git bisect对于发现错误的提交非常有用。

对于我自己的perltidy使用,使用emacs,我倾向于通过突出显示一个区域(使用C-space创建标记,导航以突出显示一个区域,然后运行我映射到perltidy-regionM-p)来一次整理小块代码。要使其工作,安装perltidy并将以下内容添加到.emacs文件中:

(defun perltidy-region ()
    "Run perltidy on the current region."
    (interactive)
    (save-excursion
      (shell-command-on-region (point) (mark) "perltidy -q" nil t)))
(defun perltidy-defun ()
    "Run perltidy on the current defun."
    (interactive)
    (save-excursion (mark-defun)
    (perltidy-region)))
(global-set-key "M-p" 'perltidy-region)

相关内容

  • 没有找到相关文章

最新更新