在工作中,我们使用的语法检查器与我在开源项目上工作时使用的不同。是否有一种方法可以让Syntastic
指定一个默认的检查器,并且如果在项目根目录下发现了rc
文件,则更改检查器?
例如:如果发现.eslintrc
,则使用eslint
。如果没有发现.eslintrc
,则使用standard
。
谢谢!
编辑:还在scrooloose/syntastic上开了一个问题。
在工作中,我们使用的语法检查器与我在开源项目上工作时使用的不同。是否有一种方法可以让Syntastic
指定一个默认的检查器,并且如果在项目根目录下发现了rc
文件,则更改检查器?
例如:如果发现.eslintrc
,则使用eslint
。如果没有发现.eslintrc
,则使用standard
。
谢谢!
编辑:还在scrooloose/syntastic上开了一个问题。
是的,你可以像这样做:
autocmd FileType javascript let b:syntastic_checkers = findfile('.eslintrc', '.;') != '' ? ['eslint'] : ['standard']
编辑:根据要求,以下是其工作原理的解释:
autocmd FileType javascript
- 每次将缓冲区的filetype
设置为javascript
时(通常一次每个缓冲区),运行以下内容。b:syntastic_checkers
- 列出当前缓冲区启用的检查器,覆盖g:syntastic_javascript_checkers
findfile('.eslintrc', ...)
- 查找名为.eslintrc
的文件....;
- 在当前目录和上层目录中!= '' ?
- 如果找到了...['eslint']
- ...将b:syntastic_checkers
设置为['eslint']
: ['standard']
- ...否则将其设置为['standard']
我告诉你,这真是魔法。
if findfile('.lvimrc','.') != ''
source .lvimrc
endif
然后,在你希望实现不同行为的目录中,只需添加一个名为'.lvimrc'的文件,并在其中设置你想要的Syntastic选项。
standard
? - deceleratedcaviar