#1459 Always run ESLint in the directory of the file being checked

This commit is contained in:
w0rp 2018-08-09 08:51:27 +01:00
parent fc94fd4deb
commit 634bf73f52
No known key found for this signature in database
GPG Key ID: 0FC1ECAA8C81CD83
5 changed files with 33 additions and 7 deletions

View File

@ -1,6 +1,8 @@
" Author: w0rp <devw0rp@gmail.com>
" Description: eslint for JavaScript files
call ale#handlers#eslint#InitVariables()
call ale#linter#Define('javascript', {
\ 'name': 'eslint',
\ 'output_stream': 'both',

View File

@ -3,11 +3,15 @@
let s:sep = has('win32') ? '\' : '/'
call ale#Set('javascript_eslint_options', '')
call ale#Set('javascript_eslint_executable', 'eslint')
call ale#Set('javascript_eslint_use_global', get(g:, 'ale_use_global_executables', 0))
call ale#Set('javascript_eslint_suppress_eslintignore', 0)
call ale#Set('javascript_eslint_suppress_missing_config', 0)
function! ale#handlers#eslint#InitVariables() abort
call ale#Set('javascript_eslint_options', '')
call ale#Set('javascript_eslint_executable', 'eslint')
call ale#Set('javascript_eslint_use_global', get(g:, 'ale_use_global_executables', 0))
call ale#Set('javascript_eslint_suppress_eslintignore', 0)
call ale#Set('javascript_eslint_suppress_missing_config', 0)
endfunction
call ale#handlers#eslint#InitVariables()
function! ale#handlers#eslint#FindConfig(buffer) abort
for l:path in ale#path#Upwards(expand('#' . a:buffer . ':p:h'))
@ -42,7 +46,8 @@ function! ale#handlers#eslint#GetCommand(buffer) abort
let l:options = ale#Var(a:buffer, 'javascript_eslint_options')
return ale#node#Executable(a:buffer, l:executable)
return ale#path#BufferCdString(a:buffer)
\ . ale#node#Executable(a:buffer, l:executable)
\ . (!empty(l:options) ? ' ' . l:options : '')
\ . ' -f unix --stdin --stdin-filename %s'
endfunction

View File

@ -0,0 +1,9 @@
Before:
call ale#assert#SetUpLinterTest('javascript', 'eslint')
After:
call ale#assert#TearDownLinterTest()
Execute(The default command should be correct):
AssertLinter 'eslint', 'cd ' . ale#Escape(g:dir) . ' && '
\ . ale#Escape('eslint') . ' -f unix --stdin --stdin-filename %s'

View File

@ -0,0 +1,9 @@
Before:
call ale#assert#SetUpLinterTest('typescript', 'eslint')
After:
call ale#assert#TearDownLinterTest()
Execute(The default command should be correct):
AssertLinter 'eslint', 'cd ' . ale#Escape(g:dir) . ' && '
\ . ale#Escape('eslint') . ' -f unix --stdin --stdin-filename %s'

View File

@ -58,7 +58,8 @@ Execute(eslint.js executables should be run with node on Windows):
" We have to execute the file with node.
AssertEqual
\ ale#Escape('node.exe') . ' '
\ 'cd ' . ale#Escape(ale#path#Simplify(g:dir . '/eslint-test-files/react-app/subdir')) . ' && '
\ . ale#Escape('node.exe') . ' '
\ . ale#Escape(ale#path#Simplify(g:dir . '/eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
\ . ' -f unix --stdin --stdin-filename %s',
\ ale#handlers#eslint#GetCommand(bufnr(''))