From ea9d8327896df145d25620ab41efa01be55c5f44 Mon Sep 17 00:00:00 2001 From: zhujinxuan Date: Mon, 8 Jan 2018 14:10:35 -0500 Subject: [PATCH] option to use local eslint rather than global eslint --- autoload/SpaceVim/layers/lang/javascript.vim | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/autoload/SpaceVim/layers/lang/javascript.vim b/autoload/SpaceVim/layers/lang/javascript.vim index 41accb9a6..d32d01dd0 100644 --- a/autoload/SpaceVim/layers/lang/javascript.vim +++ b/autoload/SpaceVim/layers/lang/javascript.vim @@ -24,9 +24,27 @@ function! SpaceVim#layers#lang#javascript#plugins() abort endfunction let s:auto_fix = 0 +let s:use_local_eslint = 0 function! SpaceVim#layers#lang#javascript#set_variable(var) abort let s:auto_fix = get(a:var, 'auto_fix', 0) + let s:use_local_eslint = get(a:var, 'use_local_eslint', 0) +endfunction + +function! s:preferLocalEslint() + let dir = expand('%:p:h') + while finddir('node_modules' ,dir ) is '' + let next_dir = fnamemodify(dir, ':h') + if dir == next_dir + break + endif + let dir = next_dir + endwhile + let node_modules_path = dir . '/node_modules' + let eslint_bin = node_modules_path . '/.bin/eslint' + if (executable(eslint_bin)) + let b:neomake_javascript_eslint_exe = eslint_bin + endif endfunction function! SpaceVim#layers#lang#javascript#config() abort @@ -62,6 +80,13 @@ function! SpaceVim#layers#lang#javascript#config() abort autocmd FocusGained * checktime augroup END endif + + if s:use_local_eslint + augroup Spacevim_lang_javascript + autocmd BufNewFile,BufRead *.js call s:preferLocalEslint() + augroup END + endif + endfunction function! s:on_ft() abort