Fix #922 - Prefer nearer ESLint configuration files with lower precedence filenames for eslint --fix
This commit is contained in:
		
							parent
							
								
									b6a487ccf9
								
							
						
					
					
						commit
						8eb99c3cec
					
				@ -2,7 +2,8 @@
 | 
				
			|||||||
" Description: Fixing files with eslint.
 | 
					" Description: Fixing files with eslint.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function! s:FindConfig(buffer) abort
 | 
					function! s:FindConfig(buffer) abort
 | 
				
			||||||
    for l:filename in [
 | 
					    for l:path in ale#path#Upwards(expand('#' . a:buffer . ':p:h'))
 | 
				
			||||||
 | 
					        for l:basename in [
 | 
				
			||||||
        \   '.eslintrc.js',
 | 
					        \   '.eslintrc.js',
 | 
				
			||||||
        \   '.eslintrc.yaml',
 | 
					        \   '.eslintrc.yaml',
 | 
				
			||||||
        \   '.eslintrc.yml',
 | 
					        \   '.eslintrc.yml',
 | 
				
			||||||
@ -10,12 +11,13 @@ function! s:FindConfig(buffer) abort
 | 
				
			|||||||
        \   '.eslintrc',
 | 
					        \   '.eslintrc',
 | 
				
			||||||
        \   'package.json',
 | 
					        \   'package.json',
 | 
				
			||||||
        \]
 | 
					        \]
 | 
				
			||||||
        let l:config = ale#path#FindNearestFile(a:buffer, l:filename)
 | 
					            let l:config = ale#path#Simplify(l:path . '/' . l:basename)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if !empty(l:config)
 | 
					            if filereadable(l:config)
 | 
				
			||||||
                return l:config
 | 
					                return l:config
 | 
				
			||||||
            endif
 | 
					            endif
 | 
				
			||||||
        endfor
 | 
					        endfor
 | 
				
			||||||
 | 
					    endfor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return ''
 | 
					    return ''
 | 
				
			||||||
endfunction
 | 
					endfunction
 | 
				
			||||||
 | 
				
			|||||||
@ -17,18 +17,16 @@ Execute(The path to eslint.js should be run on Unix):
 | 
				
			|||||||
  \     . ' --fix %t',
 | 
					  \     . ' --fix %t',
 | 
				
			||||||
  \ },
 | 
					  \ },
 | 
				
			||||||
  \ ale#fixers#eslint#Fix(bufnr(''))
 | 
					  \ 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
 | 
					  AssertEqual
 | 
				
			||||||
  \ {
 | 
					  \ {
 | 
				
			||||||
  \   'read_temporary_file': 1,
 | 
					  \   'read_temporary_file': 1,
 | 
				
			||||||
  \   'command': ale#Escape('node.exe') . ' '
 | 
					  \   'command':
 | 
				
			||||||
  \     . ale#Escape(simplify(g:dir . '/../eslint-test-files/react-app/node_modules/eslint/bin/eslint.js'))
 | 
					  \     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'))
 | 
					  \     . ' --config ' . ale#Escape(simplify(g:dir . '/../eslint-test-files/react-app/subdir-with-config/.eslintrc'))
 | 
				
			||||||
  \     . ' --fix %t',
 | 
					  \     . ' --fix %t',
 | 
				
			||||||
  \ },
 | 
					  \ },
 | 
				
			||||||
  \ ale#fixers#eslint#Fix(bufnr(''))
 | 
					  \ ale#fixers#eslint#Fix(bufnr(''))
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user