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

Бер*_*ров 7 git perl continuous-integration project-management perl-tidy

这个问题并不是在寻找建议来找到不会受到伤害的正确方法.

假设如下:

  1. 我们在Perl中开发了一个很大的应用程序.
  2. 我们希望在命令行上使用perltidy来为格式化强加统一的样式/规则
  3. 我们有许多分支,我们不知道什么时候将合并到主分支.它们应该在合并之前或之后以某种方式整理
  4. 我们希望避免因格式化而导致的任何提交冲突.

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

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

我还要澄清一下,团队中的每个人都使用可能不同的编辑器.例如,我使用Sublime Text 3和SublimePerlTidy.其他人使用KateAtomVIM.一个正确的方法似乎是只格式化我们触摸的代码片段@xxfelixxx(谢谢!)

xxf*_*xxx 10

  1. 定义编码标准并创建一个.perltidyrc与所有开发人员共享的内容.
  2. 整理是团队为他们的项目执行的任务之一(以及测试和代码审查),因此他们整理/测试/审查他们触摸的代码.
  3. 很好地测试代码.整理可以引入微妙的错误,因此在可管理的小数量上更好(而不是整理整个代码库,并且想知道为什么事情停止工作......)
  4. 整洁提交应该是独立的,没有其他更改,因此回归可以分别与代码更改或整洁更改相关联. git bisect非常适合查找违规提交.

至于我自己的perltidy用法,使用emacs,我倾向于通过突出显示一个区域(创建一个标记C-space,导航以突出显示一个区域,然后运行M-p我已映射到的区域)来一次整理一小块代码perltidy-region.要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)
Run Code Online (Sandbox Code Playgroud)