Соответствие на лету PEP8 с помощью flycheck на emacs
Я распаковываю флайчек в ~/.
и поместите следующие строки в ~/.emacs
:
;; (package-initialize)
(setq load-path (cons "~/flycheck-20170415.1006" load-path))
(require 'flycheck)
(add-hook 'after-init-hook #'global-flycheck-mode)
Начиная Emacs 24.5.1 я получаю:
File error: Cannot open load file, no such file or directory, let-alist
С Emacs 25.1.1 я получаю:
File error: Cannot open load file, No such file or directory, dash
(Эти ошибки не меняются, если я раскомментирую (package-initialize)
, Emacs 25 теперь вставляет (package-initialize)
, подталкивая тех из нас с длинной настройкой, чтобы приспособиться.)
Моя (последующая) цель состоит в том, чтобы на лету согласовать код Python с PEP8. Как только проблема выше решена, я добавлю
(setq exec-path (append exec-path '("/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin")))
к этому брифу ~/.emacs
(/opt/..2.7/bin
где MacPorts поставить flake8
), но, по-видимому, существует проблема еще до того, как я укажу язык программирования.
Обновить
Это гораздо более болезненно, чем я ожидал. Flycheck жестко обходится установкой через пакеты и включением описанных здесь шагов в мой обычный ~/.emacs
приводит к пресловутой
load-with-code-conversion: Symbol’s value as variable is void: <!DOCTYPE
ошибка. (Я почти уверен, что у меня нет файлов HTML, скрывающихся под .el
расширение.)
Update2
Э-э... Я исправлюсь! Немного dash.el
пробрался в мой обычный каталог elisp, и flycheck зависит от него, но это действительно был HTML-файл.
1 ответ
Flycheck
зависит от dash
, let-alist
, а также seq
,
Скачать файлы
84766 dash.el
381142 flycheck.el
6136 let-alist.el
17589 seq-24.el
17684 seq-25.el
1540 seq.el
и положить их в ~/.concise-elisp
, Вам нужны три файла для seq, потому что он имеет альтернативные реализации для Emacs 24 и 25.
Вставьте следующие строки в ваш ~/.emacs
:
;; Even if you are not using packages, you need the following
;; commented-out line, or else Emacs 25 will insert one for you.
;; (package-initialize)
(setq load-path (cons "~/.concise-elisp" load-path))
(require 'flycheck)
(add-hook 'after-init-hook #'global-flycheck-mode)
(setq exec-path (append exec-path '("/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin")))
Последняя строка указывает, куда MacPorts положил бы flake8
, Flake8 - одна из программ, которым flycheck делегирует проверку PEP8.
Следующее упражнение: крюк flycheck
только для Python (и, возможно, C/C++/Java/JS/..). В частности, не беспокойтесь о том, чтобы сделать файлы elisp кошерными. Выборочно активировать flycheck
для языков по мере необходимости.