mirror of
https://github.com/dense-analysis/ale
synced 2024-12-22 22:23:43 +00:00
Add support for formatting filenames into commands, and use it to fix linting with older eslint versions.
This commit is contained in:
parent
6269ffa0b2
commit
705f4232c0
@ -10,9 +10,9 @@ let g:loaded_ale_linters_javascript_eslint = 1
|
||||
function! ale_linters#javascript#eslint#Handle(buffer, lines)
|
||||
" Matches patterns line the following:
|
||||
"
|
||||
" <text>:47:14: Missing trailing comma. [Warning/comma-dangle]
|
||||
" <text>:56:41: Missing semicolon. [Error/semi]
|
||||
let pattern = '^<text>:\(\d\+\):\(\d\+\): \(.\+\) \[\(.\+\)\]'
|
||||
" /path/to/some-filename.js:47:14: Missing trailing comma. [Warning/comma-dangle]
|
||||
" /path/to/some-filename.js:56:41: Missing semicolon. [Error/semi]
|
||||
let pattern = '^.*:\(\d\+\):\(\d\+\): \(.\+\) \[\(.\+\)\]$'
|
||||
let output = []
|
||||
|
||||
for line in a:lines
|
||||
@ -48,13 +48,13 @@ endfunction
|
||||
call ALEAddLinter('javascript', {
|
||||
\ 'name': 'eslint',
|
||||
\ 'executable': 'eslint',
|
||||
\ 'command': 'eslint -f unix --stdin',
|
||||
\ 'command': 'eslint -f unix --stdin --stdin-filename %s',
|
||||
\ 'callback': 'ale_linters#javascript#eslint#Handle',
|
||||
\})
|
||||
|
||||
call ALEAddLinter('javascript.jsx', {
|
||||
\ 'name': 'eslint',
|
||||
\ 'executable': 'eslint',
|
||||
\ 'command': 'eslint -f unix --stdin',
|
||||
\ 'command': 'eslint -f unix --stdin --stdin-filename %s',
|
||||
\ 'callback': 'ale_linters#javascript#eslint#Handle',
|
||||
\})
|
||||
|
@ -154,6 +154,12 @@ function! s:ApplyLinter(buffer, linter)
|
||||
let command = a:linter.command
|
||||
endif
|
||||
|
||||
if command =~# '%s'
|
||||
" If there is a '%s' in the command string, replace it with the name
|
||||
" of the file.
|
||||
let command = printf(command, shellescape(getbufinfo(a:buffer)[0].name))
|
||||
endif
|
||||
|
||||
if has('nvim')
|
||||
if a:linter.output_stream ==# 'stderr'
|
||||
" Read from stderr instead of stdout.
|
||||
|
Loading…
Reference in New Issue
Block a user