Fix #922 - Prefer nearer ESLint configuration files with lower precedence filenames for eslint --fix
This commit is contained in:
		
							parent
							
								
									b6a487ccf9
								
							
						
					
					
						commit
						8eb99c3cec
					
				@ -2,19 +2,21 @@
 | 
			
		||||
" Description: Fixing files with eslint.
 | 
			
		||||
 | 
			
		||||
function! s:FindConfig(buffer) abort
 | 
			
		||||
    for l:filename in [
 | 
			
		||||
    \   '.eslintrc.js',
 | 
			
		||||
    \   '.eslintrc.yaml',
 | 
			
		||||
    \   '.eslintrc.yml',
 | 
			
		||||
    \   '.eslintrc.json',
 | 
			
		||||
    \   '.eslintrc',
 | 
			
		||||
    \   'package.json',
 | 
			
		||||
    \]
 | 
			
		||||
        let l:config = ale#path#FindNearestFile(a:buffer, l:filename)
 | 
			
		||||
    for l:path in ale#path#Upwards(expand('#' . a:buffer . ':p:h'))
 | 
			
		||||
        for l:basename in [
 | 
			
		||||
        \   '.eslintrc.js',
 | 
			
		||||
        \   '.eslintrc.yaml',
 | 
			
		||||
        \   '.eslintrc.yml',
 | 
			
		||||
        \   '.eslintrc.json',
 | 
			
		||||
        \   '.eslintrc',
 | 
			
		||||
        \   'package.json',
 | 
			
		||||
        \]
 | 
			
		||||
            let l:config = ale#path#Simplify(l:path . '/' . l:basename)
 | 
			
		||||
 | 
			
		||||
        if !empty(l:config)
 | 
			
		||||
            return l:config
 | 
			
		||||
        endif
 | 
			
		||||
            if filereadable(l:config)
 | 
			
		||||
                return l:config
 | 
			
		||||
            endif
 | 
			
		||||
        endfor
 | 
			
		||||
    endfor
 | 
			
		||||
 | 
			
		||||
    return ''
 | 
			
		||||
 | 
			
		||||
@ -17,18 +17,16 @@ Execute(The path to eslint.js should be run on Unix):
 | 
			
		||||
  \     . ' --fix %t',
 | 
			
		||||
  \ },
 | 
			
		||||
  \ ale#fixers#eslint#Fix(bufnr(''))
 | 
			
		||||
  \
 | 
			
		||||
Execute(The lower priority configuration file in a nested directory should be preferred):
 | 
			
		||||
  call ale#test#SetFilename('../eslint-test-files/react-app/subdir-with-config/testfile.js')
 | 
			
		||||
 | 
			
		||||
Execute(The eslint fixer with eslint.js should be run with node on Windows):
 | 
			
		||||
  call ale#test#SetFilename('../eslint-test-files/react-app/subdir/testfile.js')
 | 
			
		||||
  let g:ale_has_override['win32'] = 1
 | 
			
		||||
 | 
			
		||||
  " We have to execute the file with node.
 | 
			
		||||
  AssertEqual
 | 
			
		||||
  \ {
 | 
			
		||||
  \   'read_temporary_file': 1,
 | 
			
		||||
  \   'command': ale#Escape('node.exe') . ' '
 | 
			
		||||
  \     . ale#Escape(simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
 | 
			
		||||
  \     . ' --config ' . ale#Escape(simplify(g:dir . '/../eslint-test-files/react-app/.eslintrc.js'))
 | 
			
		||||
  \   'command':
 | 
			
		||||
  \     ale#Escape(simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
 | 
			
		||||
  \     . ' --config ' . ale#Escape(simplify(g:dir . '/../eslint-test-files/react-app/subdir-with-config/.eslintrc'))
 | 
			
		||||
  \     . ' --fix %t',
 | 
			
		||||
  \ },
 | 
			
		||||
  \ ale#fixers#eslint#Fix(bufnr(''))
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user