7

To pytanie nie tyle techniczne, co szukanie porady, co do właściwego podejścia, które nie zaszkodzi.Jak zastosować/użyć Perl :: Tidy z istniejącym projektem Perla?

Zakładając następujące:

  1. Mamy duży aplikacja opracowana w Perlu.
  2. Chcemy rozpocząć korzystanie perltidy w linii poleceń, aby nałożyć jednolitych Styl/zasady formatowania
  3. Mamy wiele oddziałów, które nie wiemy dokładnie, kiedy będzie scalane do gałęzi master. Powinny być również uporządkowane w jakiś sposób przed lub po scaleniu. Chcemy uniknąć konfliktów w zatwierdzeniach spowodowanych formatowaniem.

Myślałem o rozpoczęciu formatowania na poziomie podprocedury, ale nie znajduję takiej funkcji w perltidy. Jest jeszcze jedna funkcja "Skipping Selected Sections of Code", ale teraz mogę chcieć tylko przeciwnej - formatować tylko wybrane sekcje kodu. Chodzi o to, że gdy programista dotknie części kodu, będzie on sprzątał tylko zmodyfikowaną część.

Najlepiej byłoby znaleźć sposób na sformatowanie całego projektu tylko bez przerywania cyklu programowania i upewnienia się, że nie złamiemy żadnej części kodu (podczas łączenia). Mamy testy jednostkowe, ale niektóre części kodu mogą być nadal odkryte.

Pozwolę sobie również wyjaśnić, że wszyscy w zespole używają potencjalnie innego edytora. Na przykład używam Sublime Text 3 z SublimePerlTidy. Inne osoby używają Kate lub Atom lub VIM. Właściwe podejście wydaje się być formatować tylko fragmenty kodu, które dotykamy jak wskazał przez @xxfelixxx (Dziękujemy!)

+3

Highlight in vim, wykonanie powłoki 'perltidy' na selekcji wizualnej –

+1

Oh widzę? teraz jest https://github.com/kraih/atom-perltidy i https://github.com/Glavin001/atom- beautify, które warto rozważyć. –

Odpowiedz

9
  1. Definiowanie standard kodowania i stworzyć .perltidyrc podzielić się ze wszystkimi deweloperami.
  2. Czyszczenie jest jednym z zadań, które zespoły wykonują dla swoich projektów (wraz z testowaniem i sprawdzaniem kodu), więc oczyszczają/testują/sprawdzają kod, który dotykają.
  3. Przetestuj kod bardzo dobrze. Tidying może wprowadzać subtelne błędy, więc lepiej jest w małych, zarządzalnych ilościach (w przeciwieństwie do porządkowania całego kodu źródłowego i zastanawiania się, dlaczego wszystko przestało działać ...)
  4. Uproszczone zatwierdzenia powinny być same, bez żadnych innych zmian, aby regresje mogły być powiązane odpowiednio ze zmianami kodu lub uporządkowanymi zmianami. git bisect doskonale nadaje się do wyszukiwania naruszających prawa autorskie.

Co do mojego własnego perltidy użytkowania, stosując emacsowi, staram się posprzątać małe kawałki kodu w czasie, podkreślając region (tworzenie znaku z C-space, nawigacyjnych, aby zaznaczyć obszar, a następnie uruchomiony M-p który mam zmapowany do perltidy-region aby uzyskać to do pracy, zainstaluj perltidy i dodać następujące do pliku .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) 
+1

Tak więc @xxfelixxx wygląda na to, że najlepszym rozwiązaniem byłoby użycie wtyczki do edytora, którego używają. Omówimy sugerowane podejście. –