Emacs flymake pylint

data dodania: 2008-04-26 14:43:58
etykiety: emacs flymake pylint python

Jak połączyć te trzy programy? Instalujemy emacsa i pylint wykonanie tego kroku zależy od tego jakiego systemu używasz, na debianie wydajemy polecenie apt-get install emacs pylint Najpierw tworzymy katalog w ktorym będziemy trzymać pliki ze skryptami elispa mkdir ~/.elisp<

Do pliku konfiguracyjnego emacsa (~/.emacs) dodajemy taką linijkę (add-to-list 'load-path "~/.elisp") więcej na ten temat tu. W katalogu ~/.elisp tworzymy plik epylint o zawartości

!/usr/bin/env python
import re
import sys

from subprocess import *

p = Popen("pylint -f parseable -r n --disable-msg-cat=C,R --disable-msg=E1101 %s" %
      sys.argv[1], shell = True, stdout = PIPE).stdout

for line in p:
    match = re.search("\\[([WE])(, (.+?))?\\]", line)
    if match:
        kind = match.group(1)
        func = match.group(3)
        if kind == "W":
            msg = "Warning"
        else:
            msg = "Error"
        if func:
            line = re.sub("\\[([WE])(, (.+?))?\\]", "%s (%s):" % (msg, func), line)
        else:
            line = re.sub("\\[([WE])?\\]", "%s:" % msg, line)
    print line,
p.close()

Nadajemy plikowi atrybut wykonywalności

chmod u+x epylint

Do pliku ~/.emacs dodajemy

(when (load "flymake" t)
      (defun flymake-pylint-init ()
        (let* ((temp-file (flymake-init-create-temp-buffer-copy
        'flymake-create-temp-inplace))
           (local-file (file-relative-name
           temp-file
           (file-name-directory buffer-file-name))))
           (list "~/.elisp/epylint" (list local-file))))

      (add-to-list 'flymake-allowed-file-name-masks
               '("\\.py\\'" flymake-pylint-init)))

Flymake domyślnie używa niezbyt ładnych kolorów, dlatego warto je zmienić, do pliku ~/.emacs dodajemy

(custom-set-faces
 '(flymake-errline ((((class color)) (:underline "OrangeRed"))))
 '(flymake-warnline ((((class color)) (:underline "yellow")))))

Teraz aby to uruchomić wystarczy M-x flymake-mode

Efekt końcowy

Na żółto mamy podkreślone ostrzeżenia, na czerwono błędy, po najechaniu kursorem zobaczymy tekst komunikatu.

Wpis opiera się na informacjach zawartych na tych stronach

http://www.emacswiki.org/cgi-bin/wiki/PythonMode#toc8

http://www.credmp.org/index.php/2007/07/18/flymake-in-emacs/


Dodaj komentarz: