Обычно, редактируя JavaScript на emacs, я использую flycheck с jshint для проверки синтаксических ошибок. Так что я jshint установленный по всему миру, и следующая команда в файле .emacs
использовать flycheck в JS-режиме:Использовать flycheck с eslint на emacs при редактировании файлов из определенного проекта
(require 'flycheck)
(add-hook 'js-mode-hook
(lambda() (flycheck-mode t)))
Но я также внести свой вклад в проект, где они используют eslint определить правила синтаксиса. У меня есть .dir-locals.el
файла в этой папке проекта, которая в данный момент только определяет необходимое подведение:
((nil . ((tab-width . 4)
(js-indent-level . 4)))
(js-mode . ((tab-width . 4)
(js-indent-level . 4)))
(html-mode . ((tab-width . 4)
(sgml-basic-offset . 4))))
возможно ли это, возможно, с помощью .dir-locals.el
файла, чтобы сообщить Emacs использовать flycheck с eslint в этще когда вы продолжаете использовать flycheck с jshint в остальных проектах? Я слышал, следующие строки должны сделать трюк для переключения с jshint на eslint, но я не совсем уверен, куда добавить их:
(setq flycheck-disabled-checkers '(javascript-jshint))
(setq flycheck-checkers '(javascript-eslint))
(Как вы можете догадаться, я не совсем хорошо с настройкой emacs, поэтому я буду очень благодарен за конкретные инструкции.)
Извините за поздний ответ. Я попробовал ваше предложение, но мой emacs все еще, кажется, продолжает использовать jshint, несмотря на код выше. Я могу переопределить это, находясь в js-файле, нажав «Мета-X», а затем набрав «flycheck-select-checker» и выбрав «javascript-eslint», но когда я отредактировал код на '((js-mode. ((Flycheck- select-checker. (javascript-eslint))))) 'и поместил его в' .dir-locals.el', это не сработало. Отсутствие знаний о elisp, я полностью исключаю идеи :-( – azangru
flycheck-select-checker - это функция, тогда как две другие вещи являются переменными. .dir-locals.el будет принимать только атрибут переменных для сопоставления значений, который объясняет, почему это не работает. У меня есть '(flycheck-add-mode 'javascript-eslint' javascript-mode)' в моем .emacs, возможно, вы этого не сделали? Это объясняет, почему отключение jshint не вызовет eslint быть выбранным. – sjamaan