У Вас должен быть уникальный UserID в таком szenario. Другая опция могла быть адресом действующего адреса электронной почты, но что со спамом тогда.
Поэтому я предпочитаю ОСНОВАННЫЙ НА URL UserID. И для меня, удобство использования с OpenID (в моем случае myOpenId) является большим.
Что ж, 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)))
Вы можете проверить скрипт Lisp здесь ( http://charlie137-2.blogspot.com/2009/08/check-python-coding-style-on- fly-with.html ), который должен помочь с проверкой PEP8 а-ля pep8.py. Я не использую пилинт или пилинт, но полагаю, вы могли бы легко настроить это для работы с другими шашками.
Обычно можно включить режим 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)
))