通常在emacs中编辑JavaScript时,我使用flycheck和jshint来检查语法错误。因此,我已经全局安装了jshint,并在.emacs
文件中使用以下命令在js-mode中使用flycheck:
(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在这个特定的项目文件夹中使用eslint以及保持在其余项目中使用jshint的情况下使用flycheck吗?我听说以下几行代码可以实现从jshint切换到eslint,但我不太确定应该在哪里添加它们:
(setq flycheck-disabled-checkers '(javascript-jshint))
(setq flycheck-checkers '(javascript-eslint))
(你可以猜到,我对于设置emacs非常不擅长,所以如果能提供具体的操作说明,我将非常感激。)
flycheck-select-checker
并选择javascript-eslint
时,我可以覆盖它,但是当我编辑你的代码为((js-mode . ((flycheck-select-checker . (javascript-eslint)))))
并将其放置在.dir-locals.el
中时,这并没有起作用。由于缺乏elisp知识,我完全没有主意 :-( - azangru