Как я могу использовать режим Emacs Flymake для Python с pyflakes и pylint, проверяющим код?

У Вас должен быть уникальный UserID в таком szenario. Другая опция могла быть адресом действующего адреса электронной почты, но что со спамом тогда.

Поэтому я предпочитаю ОСНОВАННЫЙ НА URL UserID. И для меня, удобство использования с OpenID (в моем случае myOpenId) является большим.

22
задан Mirzhan Irkegulov 9 March 2013 в 17:48
поделиться

3 ответа

Что ж, flymake просто ищет исполняемую команду, которая выводит строки в заранее определенном формате. Вы можете, например, создать сценарий оболочки, который будет последовательно вызывать все необходимые вам средства проверки ...

Вы также должны убедиться, что ваш сценарий завершается возвратом уровня ошибки 0. Итак, это пример:

Это то, что я сделано в скрипте "pycheckers":

#!/bin/bash

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

Для части emacs lisp:

(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)))
35
ответ дан 29 November 2019 в 04:40
поделиться

Вы можете проверить скрипт Lisp здесь ( http://charlie137-2.blogspot.com/2009/08/check-python-coding-style-on- fly-with.html ), который должен помочь с проверкой PEP8 а-ля pep8.py. Я не использую пилинт или пилинт, но полагаю, вы могли бы легко настроить это для работы с другими шашками.

0
ответ дан 29 November 2019 в 04:40
поделиться

Обычно можно включить режим flymake в python-mode-hook. К сожалению, это вызывает проблемы с такими вещами, как py-execute-buffer, которые создают временные буферы, которые вызывают перехватчик, а затем вызывают сбой режима flymake из-за отсутствия «реального файла». Решение состоит в том, чтобы изменить условия, при которых вы добавляете перехватчик: - например, мой:

(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)
        ))
7
ответ дан 29 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: