如何根据root中的文件存在使Syntastic加载不同的检查器?

Yos*_*yts 5 vim vim-plugin jshint syntastic eslint

在工作中,我们使用与在开源上工作时不同的语法检查器.有没有办法Syntastic指定默认检查器,如果rc在项目根目录中找到文件,则更改检查器?

示例:如果.eslintrc找到使用eslint.如果.eslintrc找不到,请使用standard.

谢谢!

编辑:还在scrooloose/syntastic上打开了一个问题.

lcd*_*047 15

是的,你可以这样做:

autocmd FileType javascript let b:syntastic_checkers = findfile('.eslintrc', '.;') != '' ? ['eslint'] : ['standard']
Run Code Online (Sandbox Code Playgroud)

编辑:根据要求,说明其工作原理:

  • autocmd FileType javascript- 每次filetype设置缓冲区时运行以下内容javascript(通常每个缓冲区一次)
  • b:syntastic_checkers 为当前缓冲区启用的检查器列表,覆盖 g:syntastic_javascript_checkers
  • findfile('.eslintrc', ...)- 找到一个名为.eslintrc... 的文件
  • .; - ...在当前目录中及以上
  • != '' ? - 如果发现......
  • ['eslint']- ...设置b:syntastic_checkers['eslint']
  • : ['standard'] - ...否则设置为 ['standard']

魔术,我告诉你.