首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编辑特定项目中的文件时,在emacs上使用flycheck和eslint

编辑特定项目中的文件时,在emacs上使用flycheck和eslint
EN

Stack Overflow用户
提问于 2015-03-16 05:59:05
回答 1查看 2K关注 0票数 6

通常,在emacs上编辑JavaScript时,我会结合使用flycheck和jshint来检查语法错误。因此,我全局安装了jshint,并在.emacs文件中使用以下命令在js模式下使用flycheck:

代码语言:javascript
复制
(require 'flycheck)
(add-hook 'js-mode-hook
          (lambda () (flycheck-mode t)))

但我也参与了一个项目,他们使用eslint来定义语法规则。我在该项目文件夹中有一个.dir-locals.el文件,目前它只定义了所需的表格:

代码语言:javascript
复制
((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,但不完全确定在哪里添加它们:

代码语言:javascript
复制
(setq flycheck-disabled-checkers '(javascript-jshint))
(setq flycheck-checkers '(javascript-eslint))

(正如您所猜到的,我根本不擅长设置emacs,因此如果有具体的说明,我将非常感激。)

EN

回答 1

Stack Overflow用户

发布于 2015-07-29 16:56:31

我也处于同样的情况,只是我希望eslint成为默认设置,并在一些较旧的“遗留”项目中使用jshint。

dir-locals只是包含一个嵌套的列表,它将模式映射到需要在该模式中设置的变量/值对。因此,您的setq可以简单地转换为这样一个列表:

代码语言:javascript
复制
((js-mode . ((flycheck-disabled-checkers . (javascript-jshint))
             (flycheck-checkers . (javascript-eslint)))))

实际上,只设置flycheck-disabled-checkers会更好,因为检查器已经包含了javascript-jshintjavascript-eslint (只是在您的配置中禁用了它),并且flycheck-checkers被标记为一个“危险”变量(因为这将导致在输入上运行任意程序),所以每当您打开目录中的JS文件时,它都会引起一个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29066675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档