4

我已经在 vim中安装了syntastic 插件,并在全局 npm 中安装了 eslint。下面是我的 .vimrc 用于合成配置的片段:

set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

let g:syntastic_javascript_checkers = ["eslint"]
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0

这是我运行 :SyntasticInfo javascript 时的结果,

Syntastic version: 3.6.0-64 (Vim 704, CYGWIN_NT-6.3)
Info for filetype: javascript
Global mode: active
Filetype javascript is active
Available checker: eslint
Currently enabled checker: eslint

假设我有以下项目结构,在 中激活了一些自定义规则.eslintrc,并且这些规则的定义在.eslintrulesdir 中:

xxx_project:
   |--.eslintrc
   |--.eslintrules
        |-- rule1.js
        |-- rule2.js
        |-- ...
   |-- src
        |-- abc.js

每次我在某个源文件上运行 :SyntasticCheck 时,什么都没有发生。所以我尝试直接在命令行中对一些 js 文件运行 eslint。有一些错误提示找不到某些自定义规则的定义。

所以我认为eslint找到了配置文件,但是不知道--rulesdir在哪里。

有人可以帮忙吗?据我所知, --rulesdir 选项仅在命令行中可用。

4

1 回答 1

6

编辑:

function! ESLintArgs()
    let rules = findfile('.eslintrules', '.;')
    return rules != '' ? '--rulesdir ' . shellescape(fnamemodify(rules, ':p:h')) : ''
endfunction

autocmd FileType javascript let b:syntastic_javascript_eslint_args = ESLintArgs()

这试图找到一个名为.eslintrules并设置--ruledir为其基本目录的文件。

于 2015-03-30T10:40:21.923 回答