Comment puis-je utiliser le mode Emacs Flymake pour python avec pyflakes et pylint code de vérification?

StackOverflow https://stackoverflow.com/questions/1259873

Question

Pour le code de vérification en mode python J'utilise flymake avec pyflakes

Aussi je veux vérifier le style de code (pep8) avec pylint (description sur la même page avec pyflakes)

Cette solution fonctionne. Mais je ne peux pas configurer flymake pour travailler avec pyflakes et pylint ensemble. Comment puis-je faire?

Était-ce utile?

La solution

Eh bien, flymake cherche juste une commande exécutable des thats lignes de sortie dans un format prédéfini. Vous pouvez faire un script shell par exemple qui appellera successivement tous les pions que vous voulez ...

Vous devez également vous assurer que la fin du script en retournant errorlevel 0. Donc, voici un exemple:

est ce que je l'ai fait dans un script de "pycheckers":

#!/bin/bash

epylint "$1" 2>/dev/null
pyflakes "$1"
pep8 --ignore=E221,E701,E202 --repeat "$1"
true

Pour les Lisp partie:

(when (load "flymake" t)
  (defun flymake-pyflakes-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 "pycheckers"  (list local-file))))
   (add-to-list 'flymake-allowed-file-name-masks
             '("\\.py\\'" flymake-pyflakes-init)))

Autres conseils

Généralement, on peut activer le mode flymake dans le mode de décrochage de python. Malheureusement, cela provoque des problèmes avec des choses comme py-execute-tampon qui créent des tampons temporaires qui invoquent le crochet et le mode provoquent flymake hoquet à cause du manque de « fichier réel ». La solution est de modifier les conditions dans lesquelles vous ajoutez le crochet: - est à moi par exemple:

(add-hook 'python-mode-hook 
      (lambda () 
        (unless (eq buffer-file-name nil) (flymake-mode 1)) ;dont invoke flymake on temporary buffers for the interpreter
        (local-set-key [f2] 'flymake-goto-prev-error)
        (local-set-key [f3] 'flymake-goto-next-error)
        ))

Vous pouvez consulter ici le script Lisp ( http://charlie137-2.blogspot.com/2009/08/check-python-coding-style-on-fly-with.html ), ce qui devrait aider à vérifier pep8 a la pep8.py. Je ne me pyflakes ou pylint, mais je suppose que vous pouvez régler facilement que cela fonctionne avec d'autres dames.

version batch de Windows de pychechker de vaab

@echo on
pylint %1
pep8 --ignore=E221,E701,E202 --repeat %1
pyflakes %1
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top