update
This commit is contained in:
parent
446da5d8ca
commit
f42d586bf3
115 changed files with 1020 additions and 1192 deletions
|
@ -1,5 +1,13 @@
|
|||
|
||||
" Python
|
||||
"
|
||||
|
||||
" For pylint (make sure to pip3 install pylint)
|
||||
" au BufRead *.py set makeprg=pylint\ --reports=n\ --output-format=parseable\ %:p
|
||||
" au BufRead *.py set errorformat=%f:%l:\ %m
|
||||
|
||||
autocmd FileType python set makeprg=pylint\ --reports=n\ --msg-template=\"{path}:{line}:\ {msg_id}\ {symbol},\ {obj}\ {msg}\"\ %:p
|
||||
autocmd FileType python set errorformat=%f:%l:\ %m
|
||||
|
||||
highlight BadWhitespace ctermbg=red guibg=red
|
||||
|
||||
|
|
|
@ -4,15 +4,10 @@
|
|||
call ale#Set('asm_gcc_executable', 'gcc')
|
||||
call ale#Set('asm_gcc_options', '-Wall')
|
||||
|
||||
function! ale_linters#asm#gcc#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'asm_gcc_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#asm#gcc#GetCommand(buffer) abort
|
||||
return ale#Escape(ale_linters#asm#gcc#GetExecutable(a:buffer))
|
||||
\ . ' -x assembler -fsyntax-only '
|
||||
\ . '-iquote ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
|
||||
\ . ' ' . ale#Var(a:buffer, 'asm_gcc_options') . ' -'
|
||||
return '%e -x assembler -fsyntax-only '
|
||||
\ . '-iquote ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
|
||||
\ . ' ' . ale#Var(a:buffer, 'asm_gcc_options') . ' -'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#asm#gcc#Handle(buffer, lines) abort
|
||||
|
@ -33,7 +28,7 @@ endfunction
|
|||
call ale#linter#Define('asm', {
|
||||
\ 'name': 'gcc',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#asm#gcc#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('asm_gcc_executable'),
|
||||
\ 'command_callback': 'ale_linters#asm#gcc#GetCommand',
|
||||
\ 'callback': 'ale_linters#asm#gcc#Handle',
|
||||
\})
|
||||
|
|
|
@ -1,29 +1,21 @@
|
|||
" Author: kmarc <korondi.mark@gmail.com>
|
||||
" Description: This file adds support for using GNU awk with sripts.
|
||||
|
||||
let g:ale_awk_gawk_executable =
|
||||
\ get(g:, 'ale_awk_gawk_executable', 'gawk')
|
||||
|
||||
let g:ale_awk_gawk_options =
|
||||
\ get(g:, 'ale_awk_gawk_options', '')
|
||||
|
||||
function! ale_linters#awk#gawk#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'awk_gawk_executable')
|
||||
endfunction
|
||||
call ale#Set('awk_gawk_executable', 'gawk')
|
||||
call ale#Set('awk_gawk_options', '')
|
||||
|
||||
function! ale_linters#awk#gawk#GetCommand(buffer) abort
|
||||
" note the --source 'BEGIN ...' is to prevent
|
||||
" gawk from attempting to execute the body of the script
|
||||
" it is linting.
|
||||
return ale#Escape(ale_linters#awk#gawk#GetExecutable(a:buffer))
|
||||
\ . " --source 'BEGIN { exit } END { exit 1 }'"
|
||||
return '%e --source ' . ale#Escape('BEGIN { exit } END { exit 1 }')
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'awk_gawk_options'))
|
||||
\ . ' ' . '-f %t --lint /dev/null'
|
||||
\ . ' -f %t --lint /dev/null'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('awk', {
|
||||
\ 'name': 'gawk',
|
||||
\ 'executable_callback': 'ale_linters#awk#gawk#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('awk_gawk_executable'),
|
||||
\ 'command_callback': 'ale_linters#awk#gawk#GetCommand',
|
||||
\ 'callback': 'ale#handlers#gawk#HandleGawkFormat',
|
||||
\ 'output_stream': 'both'
|
||||
|
|
|
@ -4,17 +4,12 @@
|
|||
call ale#Set('c_clang_executable', 'clang')
|
||||
call ale#Set('c_clang_options', '-std=c11 -Wall')
|
||||
|
||||
function! ale_linters#c#clang#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'c_clang_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#c#clang#GetCommand(buffer, output) abort
|
||||
let l:cflags = ale#c#GetCFlags(a:buffer, a:output)
|
||||
|
||||
" -iquote with the directory the file is in makes #include work for
|
||||
" headers in the same directory.
|
||||
return ale#Escape(ale_linters#c#clang#GetExecutable(a:buffer))
|
||||
\ . ' -S -x c -fsyntax-only'
|
||||
return '%e -S -x c -fsyntax-only'
|
||||
\ . ' -iquote ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
|
||||
\ . ale#Pad(l:cflags)
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'c_clang_options')) . ' -'
|
||||
|
@ -23,7 +18,7 @@ endfunction
|
|||
call ale#linter#Define('c', {
|
||||
\ 'name': 'clang',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#c#clang#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('c_clang_executable'),
|
||||
\ 'command_chain': [
|
||||
\ {'callback': 'ale#c#GetMakeCommand', 'output_stream': 'stdout'},
|
||||
\ {'callback': 'ale_linters#c#clang#GetCommand'}
|
||||
|
|
|
@ -9,21 +9,14 @@ function! ale_linters#c#clangd#GetProjectRoot(buffer) abort
|
|||
return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : ''
|
||||
endfunction
|
||||
|
||||
function! ale_linters#c#clangd#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'c_clangd_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#c#clangd#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#c#clangd#GetExecutable(a:buffer)
|
||||
let l:options = ale#Var(a:buffer, 'c_clangd_options')
|
||||
|
||||
return ale#Escape(l:executable) . (!empty(l:options) ? ' ' . l:options : '')
|
||||
return '%e' . ale#Pad(ale#Var(a:buffer, 'c_clangd_options'))
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('c', {
|
||||
\ 'name': 'clangd',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#c#clangd#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('c_clangd_executable'),
|
||||
\ 'command_callback': 'ale_linters#c#clangd#GetCommand',
|
||||
\ 'project_root_callback': 'ale_linters#c#clangd#GetProjectRoot',
|
||||
\})
|
||||
|
|
|
@ -16,10 +16,6 @@ call ale#Set('c_clangtidy_checks', ['*'])
|
|||
call ale#Set('c_clangtidy_options', '')
|
||||
call ale#Set('c_build_dir', '')
|
||||
|
||||
function! ale_linters#c#clangtidy#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'c_clangtidy_executable')
|
||||
endfunction
|
||||
|
||||
function! s:GetBuildDirectory(buffer) abort
|
||||
" Don't include build directory for header files, as compile_commands.json
|
||||
" files don't consider headers to be translation units, and provide no
|
||||
|
@ -47,7 +43,7 @@ function! ale_linters#c#clangtidy#GetCommand(buffer) abort
|
|||
\ ? ale#Var(a:buffer, 'c_clangtidy_options')
|
||||
\ : ''
|
||||
|
||||
return ale#Escape(ale_linters#c#clangtidy#GetExecutable(a:buffer))
|
||||
return '%e'
|
||||
\ . (!empty(l:checks) ? ' -checks=' . ale#Escape(l:checks) : '')
|
||||
\ . ' %s'
|
||||
\ . (!empty(l:build_dir) ? ' -p ' . ale#Escape(l:build_dir) : '')
|
||||
|
@ -57,7 +53,7 @@ endfunction
|
|||
call ale#linter#Define('c', {
|
||||
\ 'name': 'clangtidy',
|
||||
\ 'output_stream': 'stdout',
|
||||
\ 'executable_callback': 'ale_linters#c#clangtidy#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('c_clangtidy_executable'),
|
||||
\ 'command_callback': 'ale_linters#c#clangtidy#GetCommand',
|
||||
\ 'callback': 'ale#handlers#gcc#HandleGCCFormat',
|
||||
\ 'lint_file': 1,
|
||||
|
|
|
@ -4,10 +4,6 @@
|
|||
call ale#Set('c_cppcheck_executable', 'cppcheck')
|
||||
call ale#Set('c_cppcheck_options', '--enable=style')
|
||||
|
||||
function! ale_linters#c#cppcheck#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'c_cppcheck_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#c#cppcheck#GetCommand(buffer) abort
|
||||
" Search upwards from the file for compile_commands.json.
|
||||
"
|
||||
|
@ -23,8 +19,7 @@ function! ale_linters#c#cppcheck#GetCommand(buffer) abort
|
|||
\ : ''
|
||||
|
||||
return l:cd_command
|
||||
\ . ale#Escape(ale_linters#c#cppcheck#GetExecutable(a:buffer))
|
||||
\ . ' -q --language=c '
|
||||
\ . '%e -q --language=c '
|
||||
\ . l:compile_commands_option
|
||||
\ . ale#Var(a:buffer, 'c_cppcheck_options')
|
||||
\ . ' %t'
|
||||
|
@ -33,7 +28,7 @@ endfunction
|
|||
call ale#linter#Define('c', {
|
||||
\ 'name': 'cppcheck',
|
||||
\ 'output_stream': 'both',
|
||||
\ 'executable_callback': 'ale_linters#c#cppcheck#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('c_cppcheck_executable'),
|
||||
\ 'command_callback': 'ale_linters#c#cppcheck#GetCommand',
|
||||
\ 'callback': 'ale#handlers#cppcheck#HandleCppCheckFormat',
|
||||
\})
|
||||
|
|
|
@ -9,15 +9,6 @@ function! ale_linters#c#cquery#GetProjectRoot(buffer) abort
|
|||
return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : ''
|
||||
endfunction
|
||||
|
||||
function! ale_linters#c#cquery#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'c_cquery_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#c#cquery#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#c#cquery#GetExecutable(a:buffer)
|
||||
return ale#Escape(l:executable)
|
||||
endfunction
|
||||
|
||||
function! ale_linters#c#cquery#GetInitializationOptions(buffer) abort
|
||||
return {'cacheDirectory': ale#Var(a:buffer, 'c_cquery_cache_directory')}
|
||||
endfunction
|
||||
|
@ -25,8 +16,8 @@ endfunction
|
|||
call ale#linter#Define('c', {
|
||||
\ 'name': 'cquery',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#c#cquery#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#c#cquery#GetCommand',
|
||||
\ 'executable_callback': ale#VarFunc('c_cquery_executable'),
|
||||
\ 'command': '%e',
|
||||
\ 'project_root_callback': 'ale_linters#c#cquery#GetProjectRoot',
|
||||
\ 'initialization_options_callback': 'ale_linters#c#cquery#GetInitializationOptions',
|
||||
\})
|
||||
|
|
|
@ -6,18 +6,12 @@ call ale#Set('c_flawfinder_options', '')
|
|||
call ale#Set('c_flawfinder_minlevel', 1)
|
||||
call ale#Set('c_flawfinder_error_severity', 6)
|
||||
|
||||
function! ale_linters#c#flawfinder#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'c_flawfinder_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#c#flawfinder#GetCommand(buffer) abort
|
||||
|
||||
" Set the minimum vulnerability level for flawfinder to bother with
|
||||
let l:minlevel = ' --minlevel=' . ale#Var(a:buffer, 'c_flawfinder_minlevel')
|
||||
|
||||
return ale#Escape(ale_linters#c#flawfinder#GetExecutable(a:buffer))
|
||||
\ . ' -CDQS'
|
||||
\ . ale#Var(a:buffer, 'c_flawfinder_options')
|
||||
return '%e -CDQS'
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'c_flawfinder_options'))
|
||||
\ . l:minlevel
|
||||
\ . ' %t'
|
||||
endfunction
|
||||
|
@ -25,7 +19,7 @@ endfunction
|
|||
call ale#linter#Define('c', {
|
||||
\ 'name': 'flawfinder',
|
||||
\ 'output_stream': 'stdout',
|
||||
\ 'executable_callback': 'ale_linters#c#flawfinder#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('c_flawfinder_executable'),
|
||||
\ 'command_callback': 'ale_linters#c#flawfinder#GetCommand',
|
||||
\ 'callback': 'ale#handlers#flawfinder#HandleFlawfinderFormat',
|
||||
\})
|
||||
|
|
|
@ -4,17 +4,12 @@
|
|||
call ale#Set('c_gcc_executable', 'gcc')
|
||||
call ale#Set('c_gcc_options', '-std=c11 -Wall')
|
||||
|
||||
function! ale_linters#c#gcc#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'c_gcc_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#c#gcc#GetCommand(buffer, output) abort
|
||||
let l:cflags = ale#c#GetCFlags(a:buffer, a:output)
|
||||
|
||||
" -iquote with the directory the file is in makes #include work for
|
||||
" headers in the same directory.
|
||||
return ale#Escape(ale_linters#c#gcc#GetExecutable(a:buffer))
|
||||
\ . ' -S -x c -fsyntax-only'
|
||||
return '%e -S -x c -fsyntax-only'
|
||||
\ . ' -iquote ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
|
||||
\ . ale#Pad(l:cflags)
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'c_gcc_options')) . ' -'
|
||||
|
@ -23,7 +18,7 @@ endfunction
|
|||
call ale#linter#Define('c', {
|
||||
\ 'name': 'gcc',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#c#gcc#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('c_gcc_executable'),
|
||||
\ 'command_chain': [
|
||||
\ {'callback': 'ale#c#GetMakeCommand', 'output_stream': 'stdout'},
|
||||
\ {'callback': 'ale_linters#c#gcc#GetCommand'}
|
||||
|
|
|
@ -6,17 +6,10 @@
|
|||
call ale#Set('chef_foodcritic_executable', 'foodcritic')
|
||||
call ale#Set('chef_foodcritic_options', '')
|
||||
|
||||
function! ale_linters#chef#foodcritic#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'chef_foodcritic_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#chef#foodcritic#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#chef#foodcritic#GetExecutable(a:buffer)
|
||||
let l:options = ale#Var(a:buffer, 'chef_foodcritic_options')
|
||||
|
||||
return ale#Escape(l:executable)
|
||||
\ . (!empty(l:options) ? ' ' . escape(l:options, '~') : '')
|
||||
\ . ' %s'
|
||||
return '%e' . ale#Pad(escape(l:options, '~')) . ' %s'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#chef#foodcritic#Handle(buffer, lines) abort
|
||||
|
@ -41,7 +34,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('chef', {
|
||||
\ 'name': 'foodcritic',
|
||||
\ 'executable_callback': 'ale_linters#chef#foodcritic#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('chef_foodcritic_executable'),
|
||||
\ 'command_callback': 'ale_linters#chef#foodcritic#GetCommand',
|
||||
\ 'callback': 'ale_linters#chef#foodcritic#Handle',
|
||||
\ 'lint_file': 1,
|
||||
|
|
|
@ -4,17 +4,12 @@
|
|||
call ale#Set('cpp_clang_executable', 'clang++')
|
||||
call ale#Set('cpp_clang_options', '-std=c++14 -Wall')
|
||||
|
||||
function! ale_linters#cpp#clang#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'cpp_clang_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#cpp#clang#GetCommand(buffer, output) abort
|
||||
let l:cflags = ale#c#GetCFlags(a:buffer, a:output)
|
||||
|
||||
" -iquote with the directory the file is in makes #include work for
|
||||
" headers in the same directory.
|
||||
return ale#Escape(ale_linters#cpp#clang#GetExecutable(a:buffer))
|
||||
\ . ' -S -x c++ -fsyntax-only'
|
||||
return '%e -S -x c++ -fsyntax-only'
|
||||
\ . ' -iquote ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
|
||||
\ . ale#Pad(l:cflags)
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'cpp_clang_options')) . ' -'
|
||||
|
@ -23,7 +18,7 @@ endfunction
|
|||
call ale#linter#Define('cpp', {
|
||||
\ 'name': 'clang',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#cpp#clang#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('cpp_clang_executable'),
|
||||
\ 'command_chain': [
|
||||
\ {'callback': 'ale#c#GetMakeCommand', 'output_stream': 'stdout'},
|
||||
\ {'callback': 'ale_linters#cpp#clang#GetCommand'},
|
||||
|
|
|
@ -5,10 +5,6 @@ call ale#Set('cpp_clangcheck_executable', 'clang-check')
|
|||
call ale#Set('cpp_clangcheck_options', '')
|
||||
call ale#Set('c_build_dir', '')
|
||||
|
||||
function! ale_linters#cpp#clangcheck#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'cpp_clangcheck_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#cpp#clangcheck#GetCommand(buffer) abort
|
||||
let l:user_options = ale#Var(a:buffer, 'cpp_clangcheck_options')
|
||||
|
||||
|
@ -22,17 +18,16 @@ function! ale_linters#cpp#clangcheck#GetCommand(buffer) abort
|
|||
" The extra arguments in the command are used to prevent .plist files from
|
||||
" being generated. These are only added if no build directory can be
|
||||
" detected.
|
||||
return ale#Escape(ale_linters#cpp#clangcheck#GetExecutable(a:buffer))
|
||||
\ . ' -analyze %s'
|
||||
return '%e -analyze %s'
|
||||
\ . (empty(l:build_dir) ? ' -extra-arg -Xclang -extra-arg -analyzer-output=text' : '')
|
||||
\ . (!empty(l:user_options) ? ' ' . l:user_options : '')
|
||||
\ . ale#Pad(l:user_options)
|
||||
\ . (!empty(l:build_dir) ? ' -p ' . ale#Escape(l:build_dir) : '')
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('cpp', {
|
||||
\ 'name': 'clangcheck',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#cpp#clangcheck#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('cpp_clangcheck_executable'),
|
||||
\ 'command_callback': 'ale_linters#cpp#clangcheck#GetCommand',
|
||||
\ 'callback': 'ale#handlers#gcc#HandleGCCFormat',
|
||||
\ 'lint_file': 1,
|
||||
|
|
|
@ -10,10 +10,6 @@ call ale#Set('cpp_clangtidy_checks', ['*'])
|
|||
call ale#Set('cpp_clangtidy_options', '')
|
||||
call ale#Set('c_build_dir', '')
|
||||
|
||||
function! ale_linters#cpp#clangtidy#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'cpp_clangtidy_executable')
|
||||
endfunction
|
||||
|
||||
function! s:GetBuildDirectory(buffer) abort
|
||||
" Don't include build directory for header files, as compile_commands.json
|
||||
" files don't consider headers to be translation units, and provide no
|
||||
|
@ -41,7 +37,7 @@ function! ale_linters#cpp#clangtidy#GetCommand(buffer) abort
|
|||
\ ? ale#Var(a:buffer, 'cpp_clangtidy_options')
|
||||
\ : ''
|
||||
|
||||
return ale#Escape(ale_linters#cpp#clangtidy#GetExecutable(a:buffer))
|
||||
return '%e'
|
||||
\ . (!empty(l:checks) ? ' -checks=' . ale#Escape(l:checks) : '')
|
||||
\ . ' %s'
|
||||
\ . (!empty(l:build_dir) ? ' -p ' . ale#Escape(l:build_dir) : '')
|
||||
|
@ -51,7 +47,7 @@ endfunction
|
|||
call ale#linter#Define('cpp', {
|
||||
\ 'name': 'clangtidy',
|
||||
\ 'output_stream': 'stdout',
|
||||
\ 'executable_callback': 'ale_linters#cpp#clangtidy#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('cpp_clangtidy_executable'),
|
||||
\ 'command_callback': 'ale_linters#cpp#clangtidy#GetCommand',
|
||||
\ 'callback': 'ale#handlers#gcc#HandleGCCFormat',
|
||||
\ 'lint_file': 1,
|
||||
|
|
|
@ -4,10 +4,6 @@
|
|||
call ale#Set('cpp_cppcheck_executable', 'cppcheck')
|
||||
call ale#Set('cpp_cppcheck_options', '--enable=style')
|
||||
|
||||
function! ale_linters#cpp#cppcheck#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'cpp_cppcheck_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#cpp#cppcheck#GetCommand(buffer) abort
|
||||
" Search upwards from the file for compile_commands.json.
|
||||
"
|
||||
|
@ -23,8 +19,7 @@ function! ale_linters#cpp#cppcheck#GetCommand(buffer) abort
|
|||
\ : ''
|
||||
|
||||
return l:cd_command
|
||||
\ . ale#Escape(ale_linters#cpp#cppcheck#GetExecutable(a:buffer))
|
||||
\ . ' -q --language=c++ '
|
||||
\ . '%e -q --language=c++ '
|
||||
\ . l:compile_commands_option
|
||||
\ . ale#Var(a:buffer, 'cpp_cppcheck_options')
|
||||
\ . ' %t'
|
||||
|
@ -33,7 +28,7 @@ endfunction
|
|||
call ale#linter#Define('cpp', {
|
||||
\ 'name': 'cppcheck',
|
||||
\ 'output_stream': 'both',
|
||||
\ 'executable_callback': 'ale_linters#cpp#cppcheck#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('cpp_cppcheck_executable'),
|
||||
\ 'command_callback': 'ale_linters#cpp#cppcheck#GetCommand',
|
||||
\ 'callback': 'ale#handlers#cppcheck#HandleCppCheckFormat',
|
||||
\})
|
||||
|
|
|
@ -4,22 +4,16 @@
|
|||
call ale#Set('cpp_cpplint_executable', 'cpplint')
|
||||
call ale#Set('cpp_cpplint_options', '')
|
||||
|
||||
function! ale_linters#cpp#cpplint#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'cpp_cpplint_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#cpp#cpplint#GetCommand(buffer) abort
|
||||
let l:options = ale#Var(a:buffer, 'cpp_cpplint_options')
|
||||
|
||||
return ale#Escape(ale_linters#cpp#cpplint#GetExecutable(a:buffer))
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||
\ . ' %s'
|
||||
return '%e' . ale#Pad(l:options) . ' %s'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('cpp', {
|
||||
\ 'name': 'cpplint',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#cpp#cpplint#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('cpp_cpplint_executable'),
|
||||
\ 'command_callback': 'ale_linters#cpp#cpplint#GetCommand',
|
||||
\ 'callback': 'ale#handlers#cpplint#HandleCppLintFormat',
|
||||
\ 'lint_file': 1,
|
||||
|
|
|
@ -10,15 +10,6 @@ function! ale_linters#cpp#cquery#GetProjectRoot(buffer) abort
|
|||
return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : ''
|
||||
endfunction
|
||||
|
||||
function! ale_linters#cpp#cquery#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'cpp_cquery_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#cpp#cquery#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#cpp#cquery#GetExecutable(a:buffer)
|
||||
return ale#Escape(l:executable)
|
||||
endfunction
|
||||
|
||||
function! ale_linters#cpp#cquery#GetInitializationOptions(buffer) abort
|
||||
return {'cacheDirectory': ale#Var(a:buffer, 'cpp_cquery_cache_directory')}
|
||||
endfunction
|
||||
|
@ -26,8 +17,8 @@ endfunction
|
|||
call ale#linter#Define('cpp', {
|
||||
\ 'name': 'cquery',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#cpp#cquery#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#cpp#cquery#GetCommand',
|
||||
\ 'executable_callback': ale#VarFunc('cpp_cquery_executable'),
|
||||
\ 'command': '%e',
|
||||
\ 'project_root_callback': 'ale_linters#cpp#cquery#GetProjectRoot',
|
||||
\ 'initialization_options_callback': 'ale_linters#cpp#cquery#GetInitializationOptions',
|
||||
\})
|
||||
|
|
|
@ -6,17 +6,11 @@ call ale#Set('cpp_flawfinder_options', '')
|
|||
call ale#Set('cpp_flawfinder_minlevel', 1)
|
||||
call ale#Set('c_flawfinder_error_severity', 6)
|
||||
|
||||
function! ale_linters#cpp#flawfinder#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'cpp_flawfinder_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#cpp#flawfinder#GetCommand(buffer) abort
|
||||
|
||||
" Set the minimum vulnerability level for flawfinder to bother with
|
||||
let l:minlevel = ' --minlevel=' . ale#Var(a:buffer, 'cpp_flawfinder_minlevel')
|
||||
|
||||
return ale#Escape(ale_linters#cpp#flawfinder#GetExecutable(a:buffer))
|
||||
\ . ' -CDQS'
|
||||
return '%e -CDQS'
|
||||
\ . ale#Var(a:buffer, 'cpp_flawfinder_options')
|
||||
\ . l:minlevel
|
||||
\ . ' %t'
|
||||
|
@ -25,7 +19,7 @@ endfunction
|
|||
call ale#linter#Define('cpp', {
|
||||
\ 'name': 'flawfinder',
|
||||
\ 'output_stream': 'stdout',
|
||||
\ 'executable_callback': 'ale_linters#cpp#flawfinder#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('cpp_flawfinder_executable'),
|
||||
\ 'command_callback': 'ale_linters#cpp#flawfinder#GetCommand',
|
||||
\ 'callback': 'ale#handlers#flawfinder#HandleFlawfinderFormat',
|
||||
\})
|
||||
|
|
|
@ -4,17 +4,12 @@
|
|||
call ale#Set('cpp_gcc_executable', 'gcc')
|
||||
call ale#Set('cpp_gcc_options', '-std=c++14 -Wall')
|
||||
|
||||
function! ale_linters#cpp#gcc#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'cpp_gcc_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#cpp#gcc#GetCommand(buffer, output) abort
|
||||
let l:cflags = ale#c#GetCFlags(a:buffer, a:output)
|
||||
|
||||
" -iquote with the directory the file is in makes #include work for
|
||||
" headers in the same directory.
|
||||
return ale#Escape(ale_linters#cpp#gcc#GetExecutable(a:buffer))
|
||||
\ . ' -S -x c++ -fsyntax-only'
|
||||
return '%e -S -x c++ -fsyntax-only'
|
||||
\ . ' -iquote ' . ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
|
||||
\ . ale#Pad(l:cflags)
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'cpp_gcc_options')) . ' -'
|
||||
|
@ -24,7 +19,7 @@ call ale#linter#Define('cpp', {
|
|||
\ 'name': 'gcc',
|
||||
\ 'aliases': ['g++'],
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#cpp#gcc#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('cpp_gcc_executable'),
|
||||
\ 'command_chain': [
|
||||
\ {'callback': 'ale#c#GetMakeCommand', 'output_stream': 'stdout'},
|
||||
\ {'callback': 'ale_linters#cpp#gcc#GetCommand'},
|
||||
|
|
|
@ -4,21 +4,16 @@ call ale#Set('css_stylelint_executable', 'stylelint')
|
|||
call ale#Set('css_stylelint_options', '')
|
||||
call ale#Set('css_stylelint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#css#stylelint#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'css_stylelint', [
|
||||
\ 'node_modules/.bin/stylelint',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#css#stylelint#GetCommand(buffer) abort
|
||||
return ale_linters#css#stylelint#GetExecutable(a:buffer)
|
||||
\ . ' ' . ale#Var(a:buffer, 'css_stylelint_options')
|
||||
return '%e ' . ale#Pad(ale#Var(a:buffer, 'css_stylelint_options'))
|
||||
\ . ' --stdin-filename %s'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('css', {
|
||||
\ 'name': 'stylelint',
|
||||
\ 'executable_callback': 'ale_linters#css#stylelint#GetExecutable',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('css_stylelint', [
|
||||
\ 'node_modules/.bin/stylelint',
|
||||
\ ]),
|
||||
\ 'command_callback': 'ale_linters#css#stylelint#GetCommand',
|
||||
\ 'callback': 'ale#handlers#css#HandleStyleLintFormat',
|
||||
\})
|
||||
|
|
|
@ -4,20 +4,15 @@
|
|||
call ale#Set('cuda_nvcc_executable', 'nvcc')
|
||||
call ale#Set('cuda_nvcc_options', '-std=c++11')
|
||||
|
||||
function! ale_linters#cuda#nvcc#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'cuda_nvcc_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#cuda#nvcc#GetCommand(buffer) abort
|
||||
" Unused: use ale#util#nul_file
|
||||
" let l:output_file = ale#util#Tempname() . '.ii'
|
||||
" call ale#engine#ManageFile(a:buffer, l:output_file)
|
||||
|
||||
return ale#Escape(ale_linters#cuda#nvcc#GetExecutable(a:buffer))
|
||||
\ . ' -cuda '
|
||||
\ . ale#c#IncludeOptions(ale#c#FindLocalHeaderPaths(a:buffer))
|
||||
\ . ale#Var(a:buffer, 'cuda_nvcc_options') . ' %s'
|
||||
\ . ' -o ' . g:ale#util#nul_file
|
||||
return '%e -cuda'
|
||||
\ . ale#Pad(ale#c#IncludeOptions(ale#c#FindLocalHeaderPaths(a:buffer)))
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'cuda_nvcc_options'))
|
||||
\ . ' %s -o ' . g:ale#util#nul_file
|
||||
endfunction
|
||||
|
||||
function! ale_linters#cuda#nvcc#HandleNVCCFormat(buffer, lines) abort
|
||||
|
@ -49,7 +44,7 @@ endfunction
|
|||
call ale#linter#Define('cuda', {
|
||||
\ 'name': 'nvcc',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#cuda#nvcc#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('cuda_nvcc_executable'),
|
||||
\ 'command_callback': 'ale_linters#cuda#nvcc#GetCommand',
|
||||
\ 'callback': 'ale_linters#cuda#nvcc#HandleNVCCFormat',
|
||||
\ 'lint_file': 1,
|
||||
|
|
|
@ -3,15 +3,10 @@
|
|||
|
||||
call ale#Set('dart_dartanalyzer_executable', 'dartanalyzer')
|
||||
|
||||
function! ale_linters#dart#dartanalyzer#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'dart_dartanalyzer_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#dart#dartanalyzer#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#dart#dartanalyzer#GetExecutable(a:buffer)
|
||||
let l:path = ale#path#FindNearestFile(a:buffer, '.packages')
|
||||
|
||||
return ale#Escape(l:executable)
|
||||
return '%e'
|
||||
\ . (!empty(l:path) ? ' --packages ' . ale#Escape(l:path) : '')
|
||||
\ . ' %s'
|
||||
endfunction
|
||||
|
@ -34,7 +29,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('dart', {
|
||||
\ 'name': 'dartanalyzer',
|
||||
\ 'executable_callback': 'ale_linters#dart#dartanalyzer#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('dart_dartanalyzer_executable'),
|
||||
\ 'command_callback': 'ale_linters#dart#dartanalyzer#GetCommand',
|
||||
\ 'callback': 'ale_linters#dart#dartanalyzer#Handle',
|
||||
\ 'lint_file': 1,
|
||||
|
|
|
@ -3,10 +3,6 @@
|
|||
|
||||
call ale#Set('dart_language_server_executable', 'dart_language_server')
|
||||
|
||||
function! ale_linters#dart#language_server#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'dart_language_server_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#dart#language_server#GetProjectRoot(buffer) abort
|
||||
" Note: pub only looks for pubspec.yaml, there's no point in adding
|
||||
" support for pubspec.yml
|
||||
|
@ -18,7 +14,7 @@ endfunction
|
|||
call ale#linter#Define('dart', {
|
||||
\ 'name': 'language_server',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#dart#language_server#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('dart_language_server_executable'),
|
||||
\ 'command_callback': 'ale_linters#dart#language_server#GetExecutable',
|
||||
\ 'project_root_callback': 'ale_linters#dart#language_server#GetProjectRoot',
|
||||
\})
|
||||
|
|
|
@ -4,12 +4,6 @@
|
|||
call ale#Set('elm_make_executable', 'elm')
|
||||
call ale#Set('elm_make_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#elm#make#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'elm_make', [
|
||||
\ 'node_modules/.bin/elm',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#elm#make#Handle(buffer, lines) abort
|
||||
let l:output = []
|
||||
let l:unparsed_lines = []
|
||||
|
@ -147,7 +141,6 @@ endfunction
|
|||
" If it doesn't, then this will fail when imports are needed.
|
||||
function! ale_linters#elm#make#GetCommand(buffer) abort
|
||||
let l:elm_json = ale#path#FindNearestFile(a:buffer, 'elm.json')
|
||||
let l:elm_exe = ale_linters#elm#make#GetExecutable(a:buffer)
|
||||
|
||||
if empty(l:elm_json)
|
||||
" Fallback to Elm 0.18
|
||||
|
@ -165,18 +158,15 @@ function! ale_linters#elm#make#GetCommand(buffer) abort
|
|||
" a sort of flag to tell the compiler not to generate an output file,
|
||||
" which is why this is hard coded here.
|
||||
" Source: https://github.com/elm-lang/elm-compiler/blob/19d5a769b30ec0b2fc4475985abb4cd94cd1d6c3/builder/src/Generate/Output.hs#L253
|
||||
let l:elm_cmd = ale#Escape(l:elm_exe)
|
||||
\ . ' make'
|
||||
\ . ' --report=json'
|
||||
\ . ' --output=/dev/null'
|
||||
|
||||
return l:dir_set_cmd . ' ' . l:elm_cmd . ' %t'
|
||||
return l:dir_set_cmd . '%e make --report=json --output=/dev/null %t'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('elm', {
|
||||
\ 'name': 'make',
|
||||
\ 'executable_callback': 'ale_linters#elm#make#GetExecutable',
|
||||
\ 'output_stream': 'both',
|
||||
\ 'command_callback': 'ale_linters#elm#make#GetCommand',
|
||||
\ 'callback': 'ale_linters#elm#make#Handle'
|
||||
\ 'name': 'make',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('elm_make', [
|
||||
\ 'node_modules/.bin/elm',
|
||||
\ ]),
|
||||
\ 'output_stream': 'both',
|
||||
\ 'command_callback': 'ale_linters#elm#make#GetCommand',
|
||||
\ 'callback': 'ale_linters#elm#make#Handle'
|
||||
\})
|
||||
|
|
|
@ -3,24 +3,12 @@
|
|||
|
||||
call ale#Set('erlang_syntaxerl_executable', 'syntaxerl')
|
||||
|
||||
|
||||
function! ale_linters#erlang#syntaxerl#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'erlang_syntaxerl_executable')
|
||||
endfunction
|
||||
|
||||
|
||||
function! ale_linters#erlang#syntaxerl#FeatureCheck(buffer) abort
|
||||
return s:GetEscapedExecutable(a:buffer) . ' -h'
|
||||
endfunction
|
||||
|
||||
|
||||
function! ale_linters#erlang#syntaxerl#GetCommand(buffer, output) abort
|
||||
let l:use_b_option = match(a:output, '\C\V-b, --base\>') > -1
|
||||
|
||||
return s:GetEscapedExecutable(a:buffer) . (l:use_b_option ? ' -b %s %t' : ' %t')
|
||||
return '%e' . (l:use_b_option ? ' -b %s %t' : ' %t')
|
||||
endfunction
|
||||
|
||||
|
||||
function! ale_linters#erlang#syntaxerl#Handle(buffer, lines) abort
|
||||
let l:pattern = '\v\C:(\d+):( warning:)? (.+)'
|
||||
let l:loclist = []
|
||||
|
@ -36,17 +24,11 @@ function! ale_linters#erlang#syntaxerl#Handle(buffer, lines) abort
|
|||
return l:loclist
|
||||
endfunction
|
||||
|
||||
|
||||
function! s:GetEscapedExecutable(buffer) abort
|
||||
return ale#Escape(ale_linters#erlang#syntaxerl#GetExecutable(a:buffer))
|
||||
endfunction
|
||||
|
||||
|
||||
call ale#linter#Define('erlang', {
|
||||
\ 'name': 'syntaxerl',
|
||||
\ 'executable_callback': 'ale_linters#erlang#syntaxerl#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('erlang_syntaxerl_executable'),
|
||||
\ 'command_chain': [
|
||||
\ {'callback': 'ale_linters#erlang#syntaxerl#FeatureCheck'},
|
||||
\ {'callback': {-> '%e -h'}},
|
||||
\ {'callback': 'ale_linters#erlang#syntaxerl#GetCommand'},
|
||||
\ ],
|
||||
\ 'callback': 'ale_linters#erlang#syntaxerl#Handle',
|
||||
|
|
|
@ -2,18 +2,10 @@
|
|||
" Description: gcc for Fortran files
|
||||
|
||||
" This option can be set to 0 to use -ffixed-form
|
||||
if !exists('g:ale_fortran_gcc_use_free_form')
|
||||
let g:ale_fortran_gcc_use_free_form = 1
|
||||
endif
|
||||
|
||||
if !exists('g:ale_fortran_gcc_executable')
|
||||
let g:ale_fortran_gcc_executable = 'gcc'
|
||||
endif
|
||||
|
||||
call ale#Set('fortran_gcc_use_free_form', 1)
|
||||
call ale#Set('fortran_gcc_executable', 'gcc')
|
||||
" Set this option to change the GCC options for warnings for Fortran.
|
||||
if !exists('g:ale_fortran_gcc_options')
|
||||
let g:ale_fortran_gcc_options = '-Wall'
|
||||
endif
|
||||
call ale#Set('fortran_gcc_options', '-Wall')
|
||||
|
||||
function! ale_linters#fortran#gcc#Handle(buffer, lines) abort
|
||||
" We have to match a starting line and a later ending line together,
|
||||
|
@ -61,26 +53,20 @@ function! ale_linters#fortran#gcc#Handle(buffer, lines) abort
|
|||
return l:output
|
||||
endfunction
|
||||
|
||||
function! ale_linters#fortran#gcc#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'fortran_gcc_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#fortran#gcc#GetCommand(buffer) abort
|
||||
let l:layout_option = ale#Var(a:buffer, 'fortran_gcc_use_free_form')
|
||||
\ ? '-ffree-form'
|
||||
\ : '-ffixed-form'
|
||||
|
||||
return ale_linters#fortran#gcc#GetExecutable(a:buffer)
|
||||
\ . ' -S -x f95 -fsyntax-only '
|
||||
\ . l:layout_option . ' '
|
||||
\ . ale#Var(a:buffer, 'fortran_gcc_options') . ' '
|
||||
\ . '-'
|
||||
return '%e -S -x f95 -fsyntax-only ' . l:layout_option
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'fortran_gcc_options'))
|
||||
\ . ' -'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('fortran', {
|
||||
\ 'name': 'gcc',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#fortran#gcc#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('fortran_gcc_executable'),
|
||||
\ 'command_callback': 'ale_linters#fortran#gcc#GetCommand',
|
||||
\ 'callback': 'ale_linters#fortran#gcc#Handle',
|
||||
\})
|
||||
|
|
|
@ -4,14 +4,6 @@
|
|||
call ale#Set('fortran_language_server_executable', 'fortls')
|
||||
call ale#Set('fortran_language_server_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#fortran#language_server#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'fortran_language_server_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#fortran#language_server#GetCommand(buffer) abort
|
||||
return ale#Escape(ale_linters#fortran#language_server#GetExecutable(a:buffer))
|
||||
endfunction
|
||||
|
||||
function! ale_linters#fortran#language_server#GetProjectRoot(buffer) abort
|
||||
let l:fortls_file = ale#path#FindNearestFile(a:buffer, '.fortls')
|
||||
|
||||
|
@ -21,7 +13,7 @@ endfunction
|
|||
call ale#linter#Define('fortran', {
|
||||
\ 'name': 'language_server',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#fortran#language_server#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#fortran#language_server#GetCommand',
|
||||
\ 'executable_callback': ale#VarFunc('fortran_language_server_executable'),
|
||||
\ 'command': '%e',
|
||||
\ 'project_root_callback': 'ale_linters#fortran#language_server#GetProjectRoot',
|
||||
\})
|
||||
|
|
|
@ -4,13 +4,8 @@
|
|||
call ale#Set('fuse_fusionlint_executable', 'fusion-lint')
|
||||
call ale#Set('fuse_fusionlint_options', '')
|
||||
|
||||
function! ale_linters#fuse#fusionlint#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'fuse_fusionlint_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#fuse#fusionlint#GetCommand(buffer) abort
|
||||
return ale#Escape(ale_linters#fuse#fusionlint#GetExecutable(a:buffer))
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'fuse_fusionlint_options'))
|
||||
return '%e' . ale#Pad(ale#Var(a:buffer, 'fuse_fusionlint_options'))
|
||||
\ . ' --filename %s -i'
|
||||
endfunction
|
||||
|
||||
|
@ -32,7 +27,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('fuse', {
|
||||
\ 'name': 'fusionlint',
|
||||
\ 'executable_callback': 'ale_linters#fuse#fusionlint#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('fuse_fusionlint_executable'),
|
||||
\ 'command_callback': 'ale_linters#fuse#fusionlint#GetCommand',
|
||||
\ 'callback': 'ale_linters#fuse#fusionlint#Handle',
|
||||
\})
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
" Author: Nick Yamane <nick.diego@gmail.com>
|
||||
" Description: gitlint for git commit message files
|
||||
|
||||
let g:ale_gitcommit_gitlint_executable =
|
||||
\ get(g:, 'ale_gitcommit_gitlint_executable', 'gitlint')
|
||||
let g:ale_gitcommit_gitlint_options = get(g:, 'ale_gitcommit_gitlint_options', '')
|
||||
let g:ale_gitcommit_gitlint_use_global = get(g:, 'ale_gitcommit_gitlint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
call ale#Set('gitcommit_gitlint_executable', 'gitlint')
|
||||
call ale#Set('gitcommit_gitlint_options', '')
|
||||
call ale#Set('gitcommit_gitlint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#gitcommit#gitlint#GetExecutable(buffer) abort
|
||||
return ale#python#FindExecutable(a:buffer, 'gitcommit_gitlint', ['gitlint'])
|
||||
|
@ -13,12 +11,9 @@ endfunction
|
|||
|
||||
function! ale_linters#gitcommit#gitlint#GetCommand(buffer) abort
|
||||
let l:options = ale#Var(a:buffer, 'gitcommit_gitlint_options')
|
||||
let l:executable = ale_linters#gitcommit#gitlint#GetExecutable(a:buffer)
|
||||
return ale#Escape(l:executable)
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||
\ . ' lint'
|
||||
endfunction
|
||||
|
||||
return '%e' . ale#Pad(l:options) . ' lint'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#gitcommit#gitlint#Handle(buffer, lines) abort
|
||||
" Matches patterns line the following:
|
||||
|
@ -45,7 +40,6 @@ function! ale_linters#gitcommit#gitlint#Handle(buffer, lines) abort
|
|||
return l:output
|
||||
endfunction
|
||||
|
||||
|
||||
call ale#linter#Define('gitcommit', {
|
||||
\ 'name': 'gitlint',
|
||||
\ 'output_stream': 'stderr',
|
||||
|
@ -53,4 +47,3 @@ call ale#linter#Define('gitcommit', {
|
|||
\ 'command_callback': 'ale_linters#gitcommit#gitlint#GetCommand',
|
||||
\ 'callback': 'ale_linters#gitcommit#gitlint#Handle',
|
||||
\})
|
||||
|
||||
|
|
|
@ -4,17 +4,11 @@
|
|||
" TODO: Once https://github.com/KhronosGroup/glslang/pull/1047 is accepted,
|
||||
" we can use stdin.
|
||||
|
||||
let g:ale_glsl_glslang_executable =
|
||||
\ get(g:, 'ale_glsl_glslang_executable', 'glslangValidator')
|
||||
|
||||
let g:ale_glsl_glslang_options = get(g:, 'ale_glsl_glslang_options', '')
|
||||
|
||||
function! ale_linters#glsl#glslang#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'glsl_glslang_executable')
|
||||
endfunction
|
||||
call ale#Set('glsl_glslang_executable', 'glslangValidator')
|
||||
call ale#Set('glsl_glslang_options', '')
|
||||
|
||||
function! ale_linters#glsl#glslang#GetCommand(buffer) abort
|
||||
return ale#Escape(ale_linters#glsl#glslang#GetExecutable(a:buffer))
|
||||
return '%e'
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'glsl_glslang_options'))
|
||||
\ . ' -C %t'
|
||||
endfunction
|
||||
|
@ -40,7 +34,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('glsl', {
|
||||
\ 'name': 'glslang',
|
||||
\ 'executable_callback': 'ale_linters#glsl#glslang#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('glsl_glslang_executable'),
|
||||
\ 'command_callback': 'ale_linters#glsl#glslang#GetCommand',
|
||||
\ 'callback': 'ale_linters#glsl#glslang#Handle',
|
||||
\})
|
||||
|
|
|
@ -4,18 +4,15 @@
|
|||
call ale#Set('glsl_glslls_executable', 'glslls')
|
||||
call ale#Set('glsl_glslls_logfile', '')
|
||||
|
||||
function! ale_linters#glsl#glslls#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'glsl_glslls_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#glsl#glslls#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#glsl#glslls#GetExecutable(a:buffer)
|
||||
let l:logfile = ale#Var(a:buffer, 'glsl_glslls_logfile')
|
||||
let l:logfile_args = ''
|
||||
|
||||
if l:logfile isnot# ''
|
||||
let l:logfile_args = ' --verbose -l ' . l:logfile
|
||||
endif
|
||||
return ale#Escape(l:executable) . l:logfile_args . ' --stdin'
|
||||
|
||||
return '%e' . l:logfile_args . ' --stdin'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#glsl#glslls#GetProjectRoot(buffer) abort
|
||||
|
@ -27,7 +24,7 @@ endfunction
|
|||
call ale#linter#Define('glsl', {
|
||||
\ 'name': 'glslls',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#glsl#glslls#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('glsl_glslls_executable'),
|
||||
\ 'command_callback': 'ale_linters#glsl#glslls#GetCommand',
|
||||
\ 'project_root_callback': 'ale_linters#glsl#glslls#GetProjectRoot',
|
||||
\})
|
||||
|
|
|
@ -5,12 +5,7 @@ call ale#Set('go_gometalinter_options', '')
|
|||
call ale#Set('go_gometalinter_executable', 'gometalinter')
|
||||
call ale#Set('go_gometalinter_lint_package', 0)
|
||||
|
||||
function! ale_linters#go#gometalinter#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'go_gometalinter_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#go#gometalinter#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#go#gometalinter#GetExecutable(a:buffer)
|
||||
let l:filename = expand('#' . a:buffer . ':t')
|
||||
let l:options = ale#Var(a:buffer, 'go_gometalinter_options')
|
||||
let l:lint_package = ale#Var(a:buffer, 'go_gometalinter_lint_package')
|
||||
|
@ -19,12 +14,12 @@ function! ale_linters#go#gometalinter#GetCommand(buffer) abort
|
|||
" be calculated to absolute paths in the Handler
|
||||
if l:lint_package
|
||||
return ale#path#BufferCdString(a:buffer)
|
||||
\ . ale#Escape(l:executable)
|
||||
\ . '%e'
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '') . ' .'
|
||||
endif
|
||||
|
||||
return ale#path#BufferCdString(a:buffer)
|
||||
\ . ale#Escape(l:executable)
|
||||
\ . '%e'
|
||||
\ . ' --include=' . ale#Escape(ale#util#EscapePCRE(l:filename))
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '') . ' .'
|
||||
endfunction
|
||||
|
@ -55,7 +50,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('go', {
|
||||
\ 'name': 'gometalinter',
|
||||
\ 'executable_callback': 'ale_linters#go#gometalinter#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('go_gometalinter_executable'),
|
||||
\ 'command_callback': 'ale_linters#go#gometalinter#GetCommand',
|
||||
\ 'callback': 'ale_linters#go#gometalinter#Handler',
|
||||
\ 'lint_file': 1,
|
||||
|
|
22
sources_non_forked/ale/ale_linters/hack/hack.vim
Normal file
22
sources_non_forked/ale/ale_linters/hack/hack.vim
Normal file
|
@ -0,0 +1,22 @@
|
|||
" Author: Fred Emmott <fe@fb.com>
|
||||
" Description: Hack support via `hack lsp`
|
||||
|
||||
call ale#Set('hack_hack_executable', 'hh_client')
|
||||
|
||||
function! ale_linters#hack#hack#GetProjectRoot(buffer) abort
|
||||
let l:hhconfig = ale#path#FindNearestFile(a:buffer, '.hhconfig')
|
||||
|
||||
return !empty(l:hhconfig) ? fnamemodify(l:hhconfig, ':h') : ''
|
||||
endfunction
|
||||
|
||||
function! ale_linters#hack#hack#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'hack_hack_executable')
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('hack', {
|
||||
\ 'name': 'hack',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#hack#hack#GetExecutable',
|
||||
\ 'command': '%e lsp --from vim-ale',
|
||||
\ 'project_root_callback': 'ale_linters#hack#hack#GetProjectRoot',
|
||||
\})
|
40
sources_non_forked/ale/ale_linters/hack/hhast.vim
Normal file
40
sources_non_forked/ale/ale_linters/hack/hhast.vim
Normal file
|
@ -0,0 +1,40 @@
|
|||
" Author: Fred Emmott <fe@fb.com>
|
||||
" Description: Hack support via `hhast lsp`
|
||||
|
||||
call ale#Set('hack_hhast_executable', 'vendor/bin/hhast-lint')
|
||||
|
||||
function! ale_linters#hack#hhast#GetProjectRoot(buffer) abort
|
||||
" Find the hack root, then figure out if it's also an HHAST root.
|
||||
" Don't try to use lint configurations from vendor/foo/bar/hhast-lint.json
|
||||
let l:hhconfig = ale#path#FindNearestFile(a:buffer, '.hhconfig')
|
||||
|
||||
if empty(l:hhconfig)
|
||||
return ''
|
||||
endif
|
||||
|
||||
let l:root = fnamemodify(l:hhconfig, ':h')
|
||||
let l:hhast_config = findfile('hhast-lint.json', l:root)
|
||||
|
||||
return !empty(l:hhast_config) ? l:root : ''
|
||||
endfunction
|
||||
|
||||
function! ale_linters#hack#hhast#GetExecutable(buffer) abort
|
||||
let l:root = ale_linters#hack#hhast#GetProjectRoot(a:buffer)
|
||||
let l:relative = ale#Var(a:buffer, 'hack_hhast_executable')
|
||||
let l:absolute = findfile(l:relative, l:root)
|
||||
|
||||
return !empty(l:absolute) ? l:absolute : ''
|
||||
endfunction
|
||||
|
||||
function! ale_linters#hack#hhast#GetInitializationOptions(buffer) abort
|
||||
return {'lintMode': 'open-files'}
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('hack', {
|
||||
\ 'name': 'hhast',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#hack#hhast#GetExecutable',
|
||||
\ 'command': '%e --mode lsp --from vim-ale',
|
||||
\ 'project_root_callback': 'ale_linters#hack#hhast#GetProjectRoot',
|
||||
\ 'initialization_options_callback': 'ale_linters#hack#hhast#GetInitializationOptions',
|
||||
\})
|
|
@ -4,17 +4,6 @@
|
|||
call ale#Set('handlebars_embertemplatelint_executable', 'ember-template-lint')
|
||||
call ale#Set('handlebars_embertemplatelint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#handlebars#embertemplatelint#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'handlebars_embertemplatelint', [
|
||||
\ 'node_modules/.bin/ember-template-lint',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#handlebars#embertemplatelint#GetCommand(buffer) abort
|
||||
return ale_linters#handlebars#embertemplatelint#GetExecutable(a:buffer)
|
||||
\ . ' --json %t'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#handlebars#embertemplatelint#Handle(buffer, lines) abort
|
||||
let l:output = []
|
||||
let l:json = ale#util#FuzzyJSONDecode(a:lines, {})
|
||||
|
@ -42,7 +31,9 @@ endfunction
|
|||
|
||||
call ale#linter#Define('handlebars', {
|
||||
\ 'name': 'ember-template-lint',
|
||||
\ 'executable_callback': 'ale_linters#handlebars#embertemplatelint#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#handlebars#embertemplatelint#GetCommand',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('handlebars_embertemplatelint', [
|
||||
\ 'node_modules/.bin/ember-template-lint',
|
||||
\ ]),
|
||||
\ 'command': '%e --json %t',
|
||||
\ 'callback': 'ale_linters#handlebars#embertemplatelint#Handle',
|
||||
\})
|
||||
|
|
|
@ -4,19 +4,14 @@
|
|||
call ale#Set('haskell_hdevtools_executable', 'hdevtools')
|
||||
call ale#Set('haskell_hdevtools_options', get(g:, 'hdevtools_options', '-g -Wall'))
|
||||
|
||||
function! ale_linters#haskell#hdevtools#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'haskell_hdevtools_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#haskell#hdevtools#GetCommand(buffer) abort
|
||||
return ale#Escape(ale_linters#haskell#hdevtools#GetExecutable(a:buffer))
|
||||
\ . ' check ' . ale#Var(a:buffer, 'haskell_hdevtools_options')
|
||||
\ . ' -p %s %t'
|
||||
return '%e check' . ale#Pad(ale#Var(a:buffer, 'haskell_hdevtools_options'))
|
||||
\ . ' -p %s %t'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('haskell', {
|
||||
\ 'name': 'hdevtools',
|
||||
\ 'executable_callback': 'ale_linters#haskell#hdevtools#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('haskell_hdevtools_executable'),
|
||||
\ 'command_callback': 'ale_linters#haskell#hdevtools#GetCommand',
|
||||
\ 'callback': 'ale#handlers#haskell#HandleGHCFormat',
|
||||
\})
|
||||
|
|
44
sources_non_forked/ale/ale_linters/haskell/hie.vim
Normal file
44
sources_non_forked/ale/ale_linters/haskell/hie.vim
Normal file
|
@ -0,0 +1,44 @@
|
|||
" Author: Luxed <devildead13@gmail.com>
|
||||
" Description: A language server for Haskell
|
||||
|
||||
call ale#Set('haskell_hie_executable', 'hie')
|
||||
|
||||
function! ale_linters#haskell#hie#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'haskell_hie_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#haskell#hie#GetProjectRoot(buffer) abort
|
||||
" Search for the stack file first
|
||||
let l:project_file = ale#path#FindNearestFile(a:buffer, 'stack.yaml')
|
||||
|
||||
" If it's empty, search for the cabal file
|
||||
if empty(l:project_file)
|
||||
let l:cabal_file = fnamemodify(bufname(a:buffer), ':p:h')
|
||||
let l:paths = ''
|
||||
|
||||
while empty(matchstr(l:cabal_file, '^\(\/\|\(\w:\\\)\)$'))
|
||||
let l:cabal_file = fnamemodify(l:cabal_file, ':h')
|
||||
let l:paths = l:paths . l:cabal_file . ','
|
||||
endwhile
|
||||
|
||||
let l:project_file = globpath(l:paths, '*.cabal')
|
||||
endif
|
||||
|
||||
" Either extract the project directory or take the current working
|
||||
" directory
|
||||
if !empty(l:project_file)
|
||||
let l:project_file = fnamemodify(l:project_file, ':h')
|
||||
else
|
||||
let l:project_file = expand('#' . a:buffer . ':p:h')
|
||||
endif
|
||||
|
||||
return l:project_file
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('haskell', {
|
||||
\ 'name': 'hie',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'command': '%e --lsp',
|
||||
\ 'executable_callback': 'ale_linters#haskell#hie#GetExecutable',
|
||||
\ 'project_root_callback': 'ale_linters#haskell#hie#GetProjectRoot',
|
||||
\})
|
|
@ -5,12 +5,6 @@ call ale#Set('html_htmlhint_options', '')
|
|||
call ale#Set('html_htmlhint_executable', 'htmlhint')
|
||||
call ale#Set('html_htmlhint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#html#htmlhint#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'html_htmlhint', [
|
||||
\ 'node_modules/.bin/htmlhint',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#html#htmlhint#GetCommand(buffer) abort
|
||||
let l:options = ale#Var(a:buffer, 'html_htmlhint_options')
|
||||
let l:config = l:options !~# '--config'
|
||||
|
@ -25,14 +19,14 @@ function! ale_linters#html#htmlhint#GetCommand(buffer) abort
|
|||
let l:options = substitute(l:options, '--format=unix', '', '')
|
||||
endif
|
||||
|
||||
return ale#Escape(ale_linters#html#htmlhint#GetExecutable(a:buffer))
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||
\ . ' --format=unix %t'
|
||||
return '%e' . ale#Pad(l:options) . ' --format=unix %t'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('html', {
|
||||
\ 'name': 'htmlhint',
|
||||
\ 'executable_callback': 'ale_linters#html#htmlhint#GetExecutable',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('html_htmlhint', [
|
||||
\ 'node_modules/.bin/htmlhint',
|
||||
\ ]),
|
||||
\ 'command_callback': 'ale_linters#html#htmlhint#GetCommand',
|
||||
\ 'callback': 'ale#handlers#unix#HandleAsError',
|
||||
\})
|
||||
|
|
|
@ -37,10 +37,6 @@ function! ale_linters#html#tidy#GetCommand(buffer) abort
|
|||
\)
|
||||
endfunction
|
||||
|
||||
function! ale_linters#html#tidy#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'html_tidy_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#html#tidy#Handle(buffer, lines) abort
|
||||
" Matches patterns lines like the following:
|
||||
" line 7 column 5 - Warning: missing </title> before </head>
|
||||
|
@ -67,7 +63,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('html', {
|
||||
\ 'name': 'tidy',
|
||||
\ 'executable_callback': 'ale_linters#html#tidy#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('html_tidy_executable'),
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'command_callback': 'ale_linters#html#tidy#GetCommand',
|
||||
\ 'callback': 'ale_linters#html#tidy#Handle',
|
||||
|
|
|
@ -4,16 +4,10 @@
|
|||
call ale#Set('idris_idris_executable', 'idris')
|
||||
call ale#Set('idris_idris_options', '--total --warnpartial --warnreach --warnipkg')
|
||||
|
||||
function! ale_linters#idris#idris#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'idris_idris_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#idris#idris#GetCommand(buffer) abort
|
||||
let l:options = ale#Var(a:buffer, 'idris_idris_options')
|
||||
|
||||
return ale#Escape(ale_linters#idris#idris#GetExecutable(a:buffer))
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||
\ . ' --check %s'
|
||||
return '%e' . ale#Pad(l:options) . ' --check %s'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#idris#idris#Handle(buffer, lines) abort
|
||||
|
@ -80,8 +74,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('idris', {
|
||||
\ 'name': 'idris',
|
||||
\ 'executable_callback': 'ale_linters#idris#idris#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('idris_idris_executable'),
|
||||
\ 'command_callback': 'ale_linters#idris#idris#GetCommand',
|
||||
\ 'callback': 'ale_linters#idris#idris#Handle',
|
||||
\})
|
||||
|
||||
|
|
|
@ -36,10 +36,6 @@ function! s:BuildClassPathOption(buffer, import_paths) abort
|
|||
\ : ''
|
||||
endfunction
|
||||
|
||||
function! ale_linters#java#javac#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'java_javac_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#java#javac#GetCommand(buffer, import_paths) abort
|
||||
let l:cp_option = s:BuildClassPathOption(a:buffer, a:import_paths)
|
||||
let l:sp_option = ''
|
||||
|
@ -77,13 +73,11 @@ function! ale_linters#java#javac#GetCommand(buffer, import_paths) abort
|
|||
|
||||
" Create .class files in a temporary directory, which we will delete later.
|
||||
let l:class_file_directory = ale#engine#CreateDirectory(a:buffer)
|
||||
let l:executable = ale_linters#java#javac#GetExecutable(a:buffer)
|
||||
|
||||
" Always run javac from the directory the file is in, so we can resolve
|
||||
" relative paths correctly.
|
||||
return ale#path#BufferCdString(a:buffer)
|
||||
\ . ale#Escape(l:executable)
|
||||
\ . ' -Xlint'
|
||||
\ . '%e -Xlint'
|
||||
\ . ale#Pad(l:cp_option)
|
||||
\ . ale#Pad(l:sp_option)
|
||||
\ . ' -d ' . ale#Escape(l:class_file_directory)
|
||||
|
@ -126,7 +120,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('java', {
|
||||
\ 'name': 'javac',
|
||||
\ 'executable_callback': 'ale_linters#java#javac#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('java_javac_executable'),
|
||||
\ 'command_chain': [
|
||||
\ {'callback': 'ale_linters#java#javac#GetImportPaths', 'output_stream': 'stdout'},
|
||||
\ {'callback': 'ale_linters#java#javac#GetCommand', 'output_stream': 'stderr'},
|
||||
|
|
|
@ -6,18 +6,6 @@ call ale#Set('javascript_flow_ls_use_global',
|
|||
\ get(g:, 'ale_use_global_executables', 0)
|
||||
\)
|
||||
|
||||
function! ale_linters#javascript#flow_ls#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'javascript_flow_ls', [
|
||||
\ 'node_modules/.bin/flow',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#javascript#flow_ls#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#javascript#flow_ls#GetExecutable(a:buffer)
|
||||
|
||||
return ale#Escape(l:executable) . ' lsp --from ale-lsp'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#javascript#flow_ls#FindProjectRoot(buffer) abort
|
||||
let l:flow_config = ale#path#FindNearestFile(a:buffer, '.flowconfig')
|
||||
|
||||
|
@ -31,8 +19,10 @@ endfunction
|
|||
call ale#linter#Define('javascript', {
|
||||
\ 'name': 'flow-language-server',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#javascript#flow_ls#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#javascript#flow_ls#GetCommand',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('javascript_flow_ls', [
|
||||
\ 'node_modules/.bin/flow',
|
||||
\ ]),
|
||||
\ 'command': '%e lsp --from ale-lsp',
|
||||
\ 'project_root_callback': 'ale_linters#javascript#flow_ls#FindProjectRoot',
|
||||
\ 'language': 'javascript',
|
||||
\})
|
||||
|
|
|
@ -4,12 +4,6 @@
|
|||
call ale#Set('javascript_jscs_executable', 'jscs')
|
||||
call ale#Set('javascript_jscs_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#javascript#jscs#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'javascript_jscs', [
|
||||
\ 'node_modules/.bin/jscs',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#javascript#jscs#GetCommand(buffer) abort
|
||||
" Search for a local JShint config locaation, and default to a global one.
|
||||
let l:jscs_config = ale#path#ResolveLocalPath(
|
||||
|
@ -18,8 +12,7 @@ function! ale_linters#javascript#jscs#GetCommand(buffer) abort
|
|||
\ get(g:, 'ale_jscs_config_loc', '')
|
||||
\)
|
||||
|
||||
let l:command = ale#Escape(ale_linters#javascript#jscs#GetExecutable(a:buffer))
|
||||
let l:command .= ' --reporter inline --no-colors'
|
||||
let l:command = '%e --reporter inline --no-colors'
|
||||
|
||||
if !empty(l:jscs_config)
|
||||
let l:command .= ' --config ' . ale#Escape(l:jscs_config)
|
||||
|
@ -60,8 +53,9 @@ endfunction
|
|||
|
||||
call ale#linter#Define('javascript', {
|
||||
\ 'name': 'jscs',
|
||||
\ 'executable_callback': 'ale_linters#javascript#jscs#GetExecutable',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('javascript_jscs', [
|
||||
\ 'node_modules/.bin/jscs',
|
||||
\ ]),
|
||||
\ 'command_callback': 'ale_linters#javascript#jscs#GetCommand',
|
||||
\ 'callback': 'ale_linters#javascript#jscs#Handle',
|
||||
\})
|
||||
|
||||
|
|
|
@ -4,12 +4,6 @@
|
|||
call ale#Set('javascript_jshint_executable', 'jshint')
|
||||
call ale#Set('javascript_jshint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#javascript#jshint#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'javascript_jshint', [
|
||||
\ 'node_modules/.bin/jshint',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#javascript#jshint#GetCommand(buffer) abort
|
||||
" Search for a local JShint config locaation, and default to a global one.
|
||||
let l:jshint_config = ale#path#ResolveLocalPath(
|
||||
|
@ -18,8 +12,7 @@ function! ale_linters#javascript#jshint#GetCommand(buffer) abort
|
|||
\ get(g:, 'ale_jshint_config_loc', '')
|
||||
\)
|
||||
|
||||
let l:command = ale#Escape(ale_linters#javascript#jshint#GetExecutable(a:buffer))
|
||||
let l:command .= ' --reporter unix --extract auto'
|
||||
let l:command = '%e --reporter unix --extract auto'
|
||||
|
||||
if !empty(l:jshint_config)
|
||||
let l:command .= ' --config ' . ale#Escape(l:jshint_config)
|
||||
|
@ -32,7 +25,9 @@ endfunction
|
|||
|
||||
call ale#linter#Define('javascript', {
|
||||
\ 'name': 'jshint',
|
||||
\ 'executable_callback': 'ale_linters#javascript#jshint#GetExecutable',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('javascript_jshint', [
|
||||
\ 'node_modules/.bin/jshint',
|
||||
\ ]),
|
||||
\ 'command_callback': 'ale_linters#javascript#jshint#GetCommand',
|
||||
\ 'callback': 'ale#handlers#unix#HandleAsError',
|
||||
\})
|
||||
|
|
|
@ -3,15 +3,6 @@
|
|||
|
||||
call ale#Set('kotlin_languageserver_executable', 'kotlin-language-server')
|
||||
|
||||
function! ale_linters#kotlin#languageserver#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'kotlin_languageserver_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#kotlin#languageserver#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#kotlin#languageserver#GetExecutable(a:buffer)
|
||||
return ale#Escape(l:executable)
|
||||
endfunction
|
||||
|
||||
function! ale_linters#kotlin#languageserver#GetProjectRoot(buffer) abort
|
||||
let l:gradle_root = ale#gradle#FindProjectRoot(a:buffer)
|
||||
|
||||
|
@ -31,8 +22,8 @@ endfunction
|
|||
call ale#linter#Define('kotlin', {
|
||||
\ 'name': 'languageserver',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#kotlin#languageserver#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#kotlin#languageserver#GetCommand',
|
||||
\ 'executable_callback': ale#VarFunc('kotlin_languageserver_executable'),
|
||||
\ 'command_callback': '%e',
|
||||
\ 'language': 'kotlin',
|
||||
\ 'project_root_callback': 'ale_linters#kotlin#languageserver#GetProjectRoot',
|
||||
\})
|
||||
|
|
|
@ -5,21 +5,10 @@ call ale#Set('less_lessc_executable', 'lessc')
|
|||
call ale#Set('less_lessc_options', '')
|
||||
call ale#Set('less_lessc_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#less#lessc#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'less_lessc', [
|
||||
\ 'node_modules/.bin/lessc',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#less#lessc#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#less#lessc#GetExecutable(a:buffer)
|
||||
let l:dir = expand('#' . a:buffer . ':p:h')
|
||||
let l:options = ale#Var(a:buffer, 'less_lessc_options')
|
||||
|
||||
return ale#Escape(l:executable)
|
||||
\ . ' --no-color --lint'
|
||||
\ . ' --include-path=' . ale#Escape(l:dir)
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||
return '%e --no-color --lint'
|
||||
\ . ' --include-path=' . ale#Escape(expand('#' . a:buffer . ':p:h'))
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'less_lessc_options'))
|
||||
\ . ' -'
|
||||
endfunction
|
||||
|
||||
|
@ -49,7 +38,9 @@ endfunction
|
|||
|
||||
call ale#linter#Define('less', {
|
||||
\ 'name': 'lessc',
|
||||
\ 'executable_callback': 'ale_linters#less#lessc#GetExecutable',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('less_lessc', [
|
||||
\ 'node_modules/.bin/lessc',
|
||||
\ ]),
|
||||
\ 'command_callback': 'ale_linters#less#lessc#GetCommand',
|
||||
\ 'callback': 'ale_linters#less#lessc#Handle',
|
||||
\ 'output_stream': 'stderr',
|
||||
|
|
|
@ -4,24 +4,17 @@ call ale#Set('less_stylelint_executable', 'stylelint')
|
|||
call ale#Set('less_stylelint_options', '')
|
||||
call ale#Set('less_stylelint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#less#stylelint#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'less_stylelint', [
|
||||
\ 'node_modules/.bin/stylelint',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#less#stylelint#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#less#stylelint#GetExecutable(a:buffer)
|
||||
let l:options = ale#Var(a:buffer, 'less_stylelint_options')
|
||||
|
||||
return ale#Escape(l:executable)
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||
\ . ' --stdin-filename %s'
|
||||
return '%e' . ale#Pad(l:options) . ' --stdin-filename %s'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('less', {
|
||||
\ 'name': 'stylelint',
|
||||
\ 'executable_callback': 'ale_linters#less#stylelint#GetExecutable',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('less_stylelint', [
|
||||
\ 'node_modules/.bin/stylelint',
|
||||
\ ]),
|
||||
\ 'command_callback': 'ale_linters#less#stylelint#GetCommand',
|
||||
\ 'callback': 'ale#handlers#css#HandleStyleLintFormat',
|
||||
\})
|
||||
|
|
|
@ -3,21 +3,11 @@
|
|||
|
||||
call ale#Set('llvm_llc_executable', 'llc')
|
||||
|
||||
function! ale_linters#llvm#llc#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'llvm_llc_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#llvm#llc#GetCommand(buffer) abort
|
||||
return ale#Escape(ale_linters#llvm#llc#GetExecutable(a:buffer))
|
||||
\ . ' -filetype=null -o=' . g:ale#util#nul_file
|
||||
endfunction
|
||||
|
||||
function! ale_linters#llvm#llc#HandleErrors(buffer, lines) abort
|
||||
" Handle '{path}: {file}:{line}:{col}: error: {message}' format
|
||||
let l:pattern = '\v^[a-zA-Z]?:?[^:]+: [^:]+:(\d+):(\d+): (.+)$'
|
||||
let l:matches = ale#util#GetMatches(a:lines, l:pattern)
|
||||
|
||||
return map(l:matches, "{
|
||||
return map(ale#util#GetMatches(a:lines, l:pattern), "{
|
||||
\ 'lnum': str2nr(v:val[1]),
|
||||
\ 'col': str2nr(v:val[2]),
|
||||
\ 'text': v:val[3],
|
||||
|
@ -27,8 +17,8 @@ endfunction
|
|||
|
||||
call ale#linter#Define('llvm', {
|
||||
\ 'name': 'llc',
|
||||
\ 'executable_callback': 'ale_linters#llvm#llc#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('llvm_llc_executable'),
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'command_callback': 'ale_linters#llvm#llc#GetCommand',
|
||||
\ 'command_callback': {-> '%e -filetype=null -o=' . g:ale#util#nul_file},
|
||||
\ 'callback': 'ale_linters#llvm#llc#HandleErrors',
|
||||
\})
|
||||
|
|
|
@ -3,15 +3,6 @@
|
|||
|
||||
call ale#Set('lua_luac_executable', 'luac')
|
||||
|
||||
function! ale_linters#lua#luac#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'lua_luac_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#lua#luac#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#lua#luac#GetExecutable(a:buffer)
|
||||
return ale#Escape(l:executable) . ' -p - '
|
||||
endfunction
|
||||
|
||||
function! ale_linters#lua#luac#Handle(buffer, lines) abort
|
||||
" Matches patterns line the following:
|
||||
"
|
||||
|
@ -33,8 +24,8 @@ endfunction
|
|||
|
||||
call ale#linter#Define('lua', {
|
||||
\ 'name': 'luac',
|
||||
\ 'executable_callback': 'ale_linters#lua#luac#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#lua#luac#GetCommand',
|
||||
\ 'executable_callback': ale#VarFunc('lua_luac_executable'),
|
||||
\ 'command': '%e -p -',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'callback': 'ale_linters#lua#luac#Handle',
|
||||
\})
|
||||
|
|
|
@ -1,19 +1,11 @@
|
|||
" Author: Sol Bekic https://github.com/s-ol
|
||||
" Description: luacheck linter for lua files
|
||||
|
||||
let g:ale_lua_luacheck_executable =
|
||||
\ get(g:, 'ale_lua_luacheck_executable', 'luacheck')
|
||||
|
||||
let g:ale_lua_luacheck_options =
|
||||
\ get(g:, 'ale_lua_luacheck_options', '')
|
||||
|
||||
function! ale_linters#lua#luacheck#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'lua_luacheck_executable')
|
||||
endfunction
|
||||
call ale#Set('lua_luacheck_executable', 'luacheck')
|
||||
call ale#Set('lua_luacheck_options', '')
|
||||
|
||||
function! ale_linters#lua#luacheck#GetCommand(buffer) abort
|
||||
return ale#Escape(ale_linters#lua#luacheck#GetExecutable(a:buffer))
|
||||
\ . ' ' . ale#Var(a:buffer, 'lua_luacheck_options')
|
||||
return '%e' . ale#Pad(ale#Var(a:buffer, 'lua_luacheck_options'))
|
||||
\ . ' --formatter plain --codes --filename %s -'
|
||||
endfunction
|
||||
|
||||
|
@ -46,7 +38,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('lua', {
|
||||
\ 'name': 'luacheck',
|
||||
\ 'executable_callback': 'ale_linters#lua#luacheck#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('lua_luacheck_executable'),
|
||||
\ 'command_callback': 'ale_linters#lua#luacheck#GetCommand',
|
||||
\ 'callback': 'ale_linters#lua#luacheck#Handle',
|
||||
\})
|
||||
|
|
|
@ -5,19 +5,10 @@ call ale#Set('markdown_remark_lint_executable', 'remark')
|
|||
call ale#Set('markdown_remark_lint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
call ale#Set('markdown_remark_lint_options', '')
|
||||
|
||||
function! ale_linters#markdown#remark_lint#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'markdown_remark_lint', [
|
||||
\ 'node_modules/.bin/remark',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#markdown#remark_lint#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#markdown#remark_lint#GetExecutable(a:buffer)
|
||||
let l:options = ale#Var(a:buffer, 'markdown_remark_lint_options')
|
||||
|
||||
return ale#node#Executable(a:buffer, l:executable)
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||
\ . ' --no-stdout --no-color'
|
||||
return '%e' . ale#Pad(l:options) . ' --no-stdout --no-color'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#markdown#remark_lint#Handle(buffer, lines) abort
|
||||
|
@ -46,7 +37,9 @@ endfunction
|
|||
call ale#linter#Define('markdown', {
|
||||
\ 'name': 'remark_lint',
|
||||
\ 'aliases': ['remark-lint'],
|
||||
\ 'executable_callback': 'ale_linters#markdown#remark_lint#GetExecutable',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('markdown_remark_lint', [
|
||||
\ 'node_modules/.bin/remark',
|
||||
\ ]),
|
||||
\ 'command_callback': 'ale_linters#markdown#remark_lint#GetCommand',
|
||||
\ 'callback': 'ale_linters#markdown#remark_lint#Handle',
|
||||
\ 'output_stream': 'stderr',
|
||||
|
|
|
@ -1,18 +1,7 @@
|
|||
" Author: awlayton <alex@layton.in>
|
||||
" Description: mlint for MATLAB files
|
||||
|
||||
let g:ale_matlab_mlint_executable =
|
||||
\ get(g:, 'ale_matlab_mlint_executable', 'mlint')
|
||||
|
||||
function! ale_linters#matlab#mlint#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'matlab_mlint_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#matlab#mlint#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#matlab#mlint#GetExecutable(a:buffer)
|
||||
|
||||
return l:executable . ' -id %t'
|
||||
endfunction
|
||||
call ale#Set('matlab_mlint_executable', 'mlint')
|
||||
|
||||
function! ale_linters#matlab#mlint#Handle(buffer, lines) abort
|
||||
" Matches patterns like the following:
|
||||
|
@ -48,8 +37,8 @@ endfunction
|
|||
|
||||
call ale#linter#Define('matlab', {
|
||||
\ 'name': 'mlint',
|
||||
\ 'executable_callback': 'ale_linters#matlab#mlint#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#matlab#mlint#GetCommand',
|
||||
\ 'executable_callback': ale#VarFunc('matlab_mlint_executable'),
|
||||
\ 'command': '%e -id %t',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'callback': 'ale_linters#matlab#mlint#Handle',
|
||||
\})
|
||||
|
|
|
@ -4,16 +4,11 @@
|
|||
call ale#Set('mercury_mmc_executable', 'mmc')
|
||||
call ale#Set('mercury_mmc_options', '--make --output-compile-error-lines 100')
|
||||
|
||||
function! ale_linters#mercury#mmc#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'mercury_mmc_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#mercury#mmc#GetCommand(buffer) abort
|
||||
let l:module_name = expand('#' . a:buffer . ':t:r')
|
||||
|
||||
return ale#path#BufferCdString(a:buffer)
|
||||
\ . ale_linters#mercury#mmc#GetExecutable(a:buffer)
|
||||
\ . ' --errorcheck-only '
|
||||
\ . '%e --errorcheck-only '
|
||||
\ . ale#Var(a:buffer, 'mercury_mmc_options')
|
||||
\ . ' ' . l:module_name
|
||||
endfunction
|
||||
|
@ -38,7 +33,7 @@ endfunction
|
|||
call ale#linter#Define('mercury', {
|
||||
\ 'name': 'mmc',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#mercury#mmc#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('mercury_mmc_executable'),
|
||||
\ 'command_callback': 'ale_linters#mercury#mmc#GetCommand',
|
||||
\ 'callback': 'ale_linters#mercury#mmc#Handle',
|
||||
\ 'lint_file': 1,
|
||||
|
|
|
@ -4,25 +4,13 @@
|
|||
call ale#Set('nasm_nasm_executable', 'nasm')
|
||||
call ale#Set('nasm_nasm_options', '')
|
||||
|
||||
function! ale_linters#nasm#nasm#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'nasm_nasm_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#nasm#nasm#GetOptions(buffer) abort
|
||||
return ale#Var(a:buffer, 'nasm_nasm_options')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#nasm#nasm#GetCommand(buffer) abort
|
||||
" Note that NASM require a trailing slash to the -I option.
|
||||
let l:executable = ale#Escape(ale_linters#nasm#nasm#GetExecutable(a:buffer))
|
||||
" Note that NASM requires a trailing slash for the -I option.
|
||||
let l:separator = has('win32') ? '\' : '/'
|
||||
let l:path = ale#Escape(fnamemodify(bufname(a:buffer), ':p:h') . l:separator)
|
||||
let l:options = ale_linters#nasm#nasm#GetOptions(a:buffer)
|
||||
let l:path = fnamemodify(bufname(a:buffer), ':p:h') . l:separator
|
||||
|
||||
return l:executable
|
||||
\ . ' -X gnu'
|
||||
\ . ' -I ' . l:path
|
||||
\ . ' ' . l:options
|
||||
return '%e -X gnu -I ' . ale#Escape(l:path)
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'nasm_nasm_options'))
|
||||
\ . ' %s'
|
||||
endfunction
|
||||
|
||||
|
@ -30,6 +18,7 @@ function! ale_linters#nasm#nasm#Handle(buffer, lines) abort
|
|||
" Note that we treat 'fatal' as errors.
|
||||
let l:pattern = '^.\+:\(\d\+\): \([^:]\+\): \(.\+\)$'
|
||||
let l:output = []
|
||||
|
||||
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||
call add(l:output, {
|
||||
\ 'lnum': l:match[1] + 0,
|
||||
|
@ -37,6 +26,7 @@ function! ale_linters#nasm#nasm#Handle(buffer, lines) abort
|
|||
\ 'text': l:match[3],
|
||||
\})
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
|
@ -44,7 +34,7 @@ call ale#linter#Define('nasm', {
|
|||
\ 'name': 'nasm',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'lint_file': 1,
|
||||
\ 'executable_callback': 'ale_linters#nasm#nasm#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('nasm_nasm_executable'),
|
||||
\ 'command_callback': 'ale_linters#nasm#nasm#GetCommand',
|
||||
\ 'callback': 'ale_linters#nasm#nasm#Handle',
|
||||
\})
|
||||
|
|
|
@ -1,20 +1,11 @@
|
|||
" Author: Vincent Lequertier <https://github.com/SkySymbol>
|
||||
" Description: This file adds support for checking perl syntax
|
||||
|
||||
let g:ale_perl_perl_executable =
|
||||
\ get(g:, 'ale_perl_perl_executable', 'perl')
|
||||
|
||||
let g:ale_perl_perl_options =
|
||||
\ get(g:, 'ale_perl_perl_options', '-c -Mwarnings -Ilib')
|
||||
|
||||
function! ale_linters#perl#perl#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'perl_perl_executable')
|
||||
endfunction
|
||||
call ale#Set('perl_perl_executable', 'perl')
|
||||
call ale#Set('perl_perl_options', '-c -Mwarnings -Ilib')
|
||||
|
||||
function! ale_linters#perl#perl#GetCommand(buffer) abort
|
||||
return ale#Escape(ale_linters#perl#perl#GetExecutable(a:buffer))
|
||||
\ . ' ' . ale#Var(a:buffer, 'perl_perl_options')
|
||||
\ . ' %t'
|
||||
return '%e' . ale#Pad(ale#Var(a:buffer, 'perl_perl_options')) . ' %t'
|
||||
endfunction
|
||||
|
||||
let s:begin_failed_skip_pattern = '\v' . join([
|
||||
|
@ -61,7 +52,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('perl', {
|
||||
\ 'name': 'perl',
|
||||
\ 'executable_callback': 'ale_linters#perl#perl#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('perl_perl_executable'),
|
||||
\ 'output_stream': 'both',
|
||||
\ 'command_callback': 'ale_linters#perl#perl#GetCommand',
|
||||
\ 'callback': 'ale_linters#perl#perl#Handle',
|
||||
|
|
|
@ -1,21 +1,10 @@
|
|||
" Author: Vincent Lequertier <https://github.com/SkySymbol>, Chris Weyl <cweyl@alumni.drew.edu>
|
||||
" Description: This file adds support for checking perl with perl critic
|
||||
|
||||
let g:ale_perl_perlcritic_executable =
|
||||
\ get(g:, 'ale_perl_perlcritic_executable', 'perlcritic')
|
||||
|
||||
let g:ale_perl_perlcritic_profile =
|
||||
\ get(g:, 'ale_perl_perlcritic_profile', '.perlcriticrc')
|
||||
|
||||
let g:ale_perl_perlcritic_options =
|
||||
\ get(g:, 'ale_perl_perlcritic_options', '')
|
||||
|
||||
let g:ale_perl_perlcritic_showrules =
|
||||
\ get(g:, 'ale_perl_perlcritic_showrules', 0)
|
||||
|
||||
function! ale_linters#perl#perlcritic#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'perl_perlcritic_executable')
|
||||
endfunction
|
||||
call ale#Set('perl_perlcritic_executable', 'perlcritic')
|
||||
call ale#Set('perl_perlcritic_profile', '.perlcriticrc')
|
||||
call ale#Set('perl_perlcritic_options', '')
|
||||
call ale#Set('perl_perlcritic_showrules', 0)
|
||||
|
||||
function! ale_linters#perl#perlcritic#GetProfile(buffer) abort
|
||||
" first see if we've been overridden
|
||||
|
@ -39,11 +28,11 @@ function! ale_linters#perl#perlcritic#GetCommand(buffer) abort
|
|||
let l:profile = ale_linters#perl#perlcritic#GetProfile(a:buffer)
|
||||
let l:options = ale#Var(a:buffer, 'perl_perlcritic_options')
|
||||
|
||||
return ale#Escape(ale_linters#perl#perlcritic#GetExecutable(a:buffer))
|
||||
return '%e'
|
||||
\ . ' --verbose ' . ale#Escape(l:critic_verbosity)
|
||||
\ . ' --nocolor'
|
||||
\ . (!empty(l:profile) ? ' --profile ' . ale#Escape(l:profile) : '')
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||
\ . ale#Pad(l:options)
|
||||
endfunction
|
||||
|
||||
|
||||
|
@ -66,7 +55,7 @@ endfunction
|
|||
call ale#linter#Define('perl', {
|
||||
\ 'name': 'perlcritic',
|
||||
\ 'output_stream': 'stdout',
|
||||
\ 'executable_callback': 'ale_linters#perl#perlcritic#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('perl_perlcritic_executable'),
|
||||
\ 'command_callback': 'ale_linters#perl#perlcritic#GetCommand',
|
||||
\ 'callback': 'ale_linters#perl#perlcritic#Handle',
|
||||
\})
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
" Author: Zefei Xuan <https://github.com/zefei>
|
||||
" Description: Hack type checking (http://hacklang.org/)
|
||||
|
||||
function! ale_linters#php#hack#Handle(buffer, lines) abort
|
||||
let l:pattern = '^\(.*\):\(\d\+\):\(\d\+\),\(\d\+\): \(.\+])\)$'
|
||||
let l:output = []
|
||||
|
||||
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||
if a:buffer != bufnr(l:match[1])
|
||||
continue
|
||||
endif
|
||||
|
||||
call add(l:output, {
|
||||
\ 'lnum': l:match[2] + 0,
|
||||
\ 'col': l:match[3] + 0,
|
||||
\ 'text': l:match[5],
|
||||
\})
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('php', {
|
||||
\ 'name': 'hack',
|
||||
\ 'executable': 'hh_client',
|
||||
\ 'command': 'hh_client --retries 0 --retry-if-init false',
|
||||
\ 'callback': 'ale_linters#php#hack#Handle',
|
||||
\})
|
|
@ -4,16 +4,6 @@
|
|||
call ale#Set('php_langserver_executable', 'php-language-server.php')
|
||||
call ale#Set('php_langserver_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#php#langserver#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'php_langserver', [
|
||||
\ 'vendor/bin/php-language-server.php',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#php#langserver#GetCommand(buffer) abort
|
||||
return 'php ' . ale#Escape(ale_linters#php#langserver#GetExecutable(a:buffer))
|
||||
endfunction
|
||||
|
||||
function! ale_linters#php#langserver#GetProjectRoot(buffer) abort
|
||||
let l:git_path = ale#path#FindNearestDirectory(a:buffer, '.git')
|
||||
|
||||
|
@ -23,7 +13,9 @@ endfunction
|
|||
call ale#linter#Define('php', {
|
||||
\ 'name': 'langserver',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#php#langserver#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#php#langserver#GetCommand',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('php_langserver', [
|
||||
\ 'vendor/bin/php-language-server.php',
|
||||
\ ]),
|
||||
\ 'command': 'php %e',
|
||||
\ 'project_root_callback': 'ale_linters#php#langserver#GetProjectRoot',
|
||||
\})
|
||||
|
|
|
@ -6,23 +6,13 @@ let g:ale_php_phpcs_standard = get(g:, 'ale_php_phpcs_standard', '')
|
|||
call ale#Set('php_phpcs_executable', 'phpcs')
|
||||
call ale#Set('php_phpcs_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#php#phpcs#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'php_phpcs', [
|
||||
\ 'vendor/bin/phpcs',
|
||||
\ 'phpcs'
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#php#phpcs#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#php#phpcs#GetExecutable(a:buffer)
|
||||
|
||||
let l:standard = ale#Var(a:buffer, 'php_phpcs_standard')
|
||||
let l:standard_option = !empty(l:standard)
|
||||
\ ? '--standard=' . l:standard
|
||||
\ : ''
|
||||
|
||||
return ale#Escape(l:executable)
|
||||
\ . ' -s --report=emacs --stdin-path=%s ' . l:standard_option
|
||||
return '%e -s --report=emacs --stdin-path=%s' . ale#Pad(l:standard_option)
|
||||
endfunction
|
||||
|
||||
function! ale_linters#php#phpcs#Handle(buffer, lines) abort
|
||||
|
@ -50,7 +40,10 @@ endfunction
|
|||
|
||||
call ale#linter#Define('php', {
|
||||
\ 'name': 'phpcs',
|
||||
\ 'executable_callback': 'ale_linters#php#phpcs#GetExecutable',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('php_phpcs', [
|
||||
\ 'vendor/bin/phpcs',
|
||||
\ 'phpcs'
|
||||
\ ]),
|
||||
\ 'command_callback': 'ale_linters#php#phpcs#GetCommand',
|
||||
\ 'callback': 'ale_linters#php#phpcs#Handle',
|
||||
\})
|
||||
|
|
|
@ -6,16 +6,9 @@ let g:ale_php_phpmd_executable = get(g:, 'ale_php_phpmd_executable', 'phpmd')
|
|||
" Set to change the ruleset
|
||||
let g:ale_php_phpmd_ruleset = get(g:, 'ale_php_phpmd_ruleset', 'cleancode,codesize,controversial,design,naming,unusedcode')
|
||||
|
||||
function! ale_linters#php#phpmd#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'php_phpmd_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#php#phpmd#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#php#phpmd#GetExecutable(a:buffer)
|
||||
|
||||
return ale#Escape(l:executable)
|
||||
\ . ' %s text '
|
||||
\ . ale#Var(a:buffer, 'php_phpmd_ruleset')
|
||||
return '%e %s text'
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'php_phpmd_ruleset'))
|
||||
\ . ' --ignore-violations-on-exit %t'
|
||||
endfunction
|
||||
|
||||
|
@ -39,7 +32,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('php', {
|
||||
\ 'name': 'phpmd',
|
||||
\ 'executable_callback': 'ale_linters#php#phpmd#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('php_phpmd_executable'),
|
||||
\ 'command_callback': 'ale_linters#php#phpmd#GetCommand',
|
||||
\ 'callback': 'ale_linters#php#phpmd#Handle',
|
||||
\})
|
||||
|
|
|
@ -6,20 +6,13 @@ let g:ale_php_phpstan_executable = get(g:, 'ale_php_phpstan_executable', 'phpsta
|
|||
let g:ale_php_phpstan_level = get(g:, 'ale_php_phpstan_level', '4')
|
||||
let g:ale_php_phpstan_configuration = get(g:, 'ale_php_phpstan_configuration', '')
|
||||
|
||||
function! ale_linters#php#phpstan#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'php_phpstan_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#php#phpstan#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#php#phpstan#GetExecutable(a:buffer)
|
||||
|
||||
let l:configuration = ale#Var(a:buffer, 'php_phpstan_configuration')
|
||||
let l:configuration_option = !empty(l:configuration)
|
||||
\ ? ' -c ' . l:configuration
|
||||
\ : ''
|
||||
|
||||
return ale#Escape(l:executable)
|
||||
\ . ' analyze -l'
|
||||
return '%e analyze -l'
|
||||
\ . ale#Var(a:buffer, 'php_phpstan_level')
|
||||
\ . ' --errorFormat raw'
|
||||
\ . l:configuration_option
|
||||
|
@ -47,7 +40,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('php', {
|
||||
\ 'name': 'phpstan',
|
||||
\ 'executable_callback': 'ale_linters#php#phpstan#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('php_phpstan_executable'),
|
||||
\ 'command_callback': 'ale_linters#php#phpstan#GetCommand',
|
||||
\ 'callback': 'ale_linters#php#phpstan#Handle',
|
||||
\})
|
||||
|
|
|
@ -3,19 +3,14 @@
|
|||
call ale#Set('pony_ponyc_executable', 'ponyc')
|
||||
call ale#Set('pony_ponyc_options', '--pass paint')
|
||||
|
||||
function! ale_linters#pony#ponyc#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'pony_ponyc_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#pony#ponyc#GetCommand(buffer) abort
|
||||
return ale#Escape(ale_linters#pony#ponyc#GetExecutable(a:buffer))
|
||||
\ . ' ' . ale#Var(a:buffer, 'pony_ponyc_options')
|
||||
return '%e' . ale#Pad(ale#Var(a:buffer, 'pony_ponyc_options'))
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('pony', {
|
||||
\ 'name': 'ponyc',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#pony#ponyc#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('pony_ponyc_executable'),
|
||||
\ 'command_callback': 'ale_linters#pony#ponyc#GetCommand',
|
||||
\ 'callback': 'ale#handlers#pony#HandlePonycFormat',
|
||||
\})
|
||||
|
|
|
@ -5,12 +5,6 @@ call ale#Set('pug_puglint_options', '')
|
|||
call ale#Set('pug_puglint_executable', 'pug-lint')
|
||||
call ale#Set('pug_puglint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#pug#puglint#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'pug_puglint', [
|
||||
\ 'node_modules/.bin/pug-lint',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! s:FindConfig(buffer) abort
|
||||
for l:filename in [
|
||||
\ '.pug-lintrc',
|
||||
|
@ -29,19 +23,19 @@ function! s:FindConfig(buffer) abort
|
|||
endfunction
|
||||
|
||||
function! ale_linters#pug#puglint#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#pug#puglint#GetExecutable(a:buffer)
|
||||
let l:options = ale#Var(a:buffer, 'pug_puglint_options')
|
||||
let l:config = s:FindConfig(a:buffer)
|
||||
|
||||
return ale#Escape(l:executable)
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||
return '%e' . ale#Pad(l:options)
|
||||
\ . (!empty(l:config) ? ' -c ' . ale#Escape(l:config) : '')
|
||||
\ . ' -r inline %t'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('pug', {
|
||||
\ 'name': 'puglint',
|
||||
\ 'executable_callback': 'ale_linters#pug#puglint#GetExecutable',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('pug_puglint', [
|
||||
\ 'node_modules/.bin/pug-lint',
|
||||
\ ]),
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'command_callback': 'ale_linters#pug#puglint#GetCommand',
|
||||
\ 'callback': 'ale#handlers#unix#HandleAsError',
|
||||
|
|
|
@ -3,16 +3,6 @@
|
|||
|
||||
call ale#Set('puppet_languageserver_executable', 'puppet-languageserver')
|
||||
|
||||
function! ale_linters#puppet#languageserver#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'puppet_languageserver_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#puppet#languageserver#GetCommand(buffer) abort
|
||||
let l:exe = ale#Escape(ale_linters#puppet#languageserver#GetExecutable(a:buffer))
|
||||
|
||||
return l:exe . ' --stdio'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#puppet#languageserver#GetProjectRoot(buffer) abort
|
||||
" Note: The metadata.json file is recommended for Puppet 4+ modules, but
|
||||
" there's no requirement to have it, so fall back to the other possible
|
||||
|
@ -38,8 +28,8 @@ endfunction
|
|||
call ale#linter#Define('puppet', {
|
||||
\ 'name': 'languageserver',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#puppet#languageserver#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#puppet#languageserver#GetCommand',
|
||||
\ 'executable_callback': ale#VarFunc('puppet_languageserver_executable'),
|
||||
\ 'command': '%e --stdio',
|
||||
\ 'language': 'puppet',
|
||||
\ 'project_root_callback': 'ale_linters#puppet#languageserver#GetProjectRoot',
|
||||
\})
|
||||
|
|
|
@ -1,26 +1,18 @@
|
|||
" Author: Alexander Olofsson <alexander.olofsson@liu.se>, Robert Flechtner <flechtner@chemmedia.de>
|
||||
" Description: puppet-lint for puppet files
|
||||
|
||||
let g:ale_puppet_puppetlint_executable =
|
||||
\ get(g:, 'ale_puppet_puppetlint_executable', 'puppet-lint')
|
||||
|
||||
let g:ale_puppet_puppetlint_options =
|
||||
\ get(g:, 'ale_puppet_puppetlint_options', '--no-autoloader_layout-check')
|
||||
|
||||
function! ale_linters#puppet#puppetlint#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'puppet_puppetlint_executable')
|
||||
endfunction
|
||||
call ale#Set('puppet_puppetlint_executable', 'puppet-lint')
|
||||
call ale#Set('puppet_puppetlint_options', '--no-autoloader_layout-check')
|
||||
|
||||
function! ale_linters#puppet#puppetlint#GetCommand(buffer) abort
|
||||
return ale_linters#puppet#puppetlint#GetExecutable(a:buffer)
|
||||
\ . ' ' . ale#Var(a:buffer, 'puppet_puppetlint_options')
|
||||
return '%e' . ale#Pad(ale#Var(a:buffer, 'puppet_puppetlint_options'))
|
||||
\ . ' --log-format "-:%{line}:%{column}: %{kind}: [%{check}] %{message}"'
|
||||
\ . ' %t'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('puppet', {
|
||||
\ 'name': 'puppetlint',
|
||||
\ 'executable_callback': 'ale_linters#puppet#puppetlint#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('puppet_puppetlint_executable'),
|
||||
\ 'command_callback': 'ale_linters#puppet#puppetlint#GetCommand',
|
||||
\ 'callback': 'ale#handlers#gcc#HandleGCCFormat',
|
||||
\})
|
||||
|
|
|
@ -5,16 +5,11 @@
|
|||
call ale#Set('pyrex_cython_executable', 'cython')
|
||||
call ale#Set('pyrex_cython_options', '--warning-extra')
|
||||
|
||||
function! ale_linters#pyrex#cython#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'pyrex_cython_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#pyrex#cython#GetCommand(buffer) abort
|
||||
let l:local_dir = ale#Escape(fnamemodify(bufname(a:buffer), ':p:h'))
|
||||
|
||||
return ale#Escape(ale_linters#pyrex#cython#GetExecutable(a:buffer))
|
||||
\ . ' --working ' . l:local_dir . ' --include-dir ' . l:local_dir
|
||||
\ . ' ' . ale#Var(a:buffer, 'pyrex_cython_options')
|
||||
return '%e --working ' . l:local_dir . ' --include-dir ' . l:local_dir
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'pyrex_cython_options'))
|
||||
\ . ' --output-file ' . g:ale#util#nul_file . ' %t'
|
||||
endfunction
|
||||
|
||||
|
@ -37,7 +32,7 @@ endfunction
|
|||
call ale#linter#Define('pyrex', {
|
||||
\ 'name': 'cython',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#pyrex#cython#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('pyrex_cython_executable'),
|
||||
\ 'command_callback': 'ale_linters#pyrex#cython#GetCommand',
|
||||
\ 'callback': 'ale_linters#pyrex#cython#Handle',
|
||||
\})
|
||||
|
|
|
@ -1,40 +1,25 @@
|
|||
" Author: pylipp (www.github.com/pylipp)
|
||||
" Description: qmlfmt for QML files
|
||||
|
||||
let g:ale_qml_qmlfmt_executable = get(g:, 'ale_qml_qmlfmt_executable', 'qmlfmt')
|
||||
|
||||
function! ale_linters#qml#qmlfmt#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'qml_qmlfmt_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#qml#qmlfmt#GetCommand(buffer) abort
|
||||
return ale#Escape(ale_linters#qml#qmlfmt#GetExecutable(a:buffer))
|
||||
\ . ' -e'
|
||||
endfunction
|
||||
call ale#Set('qml_qmlfmt_executable', 'qmlfmt')
|
||||
|
||||
" Find lines like
|
||||
" Error:11:1: Expected token `}'
|
||||
function! ale_linters#qml#qmlfmt#Handle(buffer, lines) abort
|
||||
let l:pattern = '\v^(Error|Warning):(\d+):(\d+): (.+)$'
|
||||
let l:output = []
|
||||
|
||||
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||
let l:item = {
|
||||
\ 'lnum': l:match[2] + 0,
|
||||
\ 'col': l:match[3] + 0,
|
||||
\ 'text': l:match[4],
|
||||
\ 'type': l:match[1] is# 'Warning' ? 'W' : 'E',
|
||||
\}
|
||||
call add(l:output, l:item)
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
return map(ale#util#GetMatches(a:lines, l:pattern), "{
|
||||
\ 'lnum': v:val[2] + 0,
|
||||
\ 'col': v:val[3] + 0,
|
||||
\ 'text': v:val[4],
|
||||
\ 'type': v:val[1] is# 'Warning' ? 'W' : 'E',
|
||||
\}")
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('qml', {
|
||||
\ 'name': 'qmlfmt',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#qml#qmlfmt#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#qml#qmlfmt#GetCommand',
|
||||
\ 'executable_callback': ale#VarFunc('qml_qmlfmt_executable'),
|
||||
\ 'command': '%e -e',
|
||||
\ 'callback': 'ale_linters#qml#qmlfmt#Handle',
|
||||
\})
|
||||
|
|
|
@ -3,20 +3,10 @@
|
|||
|
||||
call ale#Set('ruby_ruby_executable', 'ruby')
|
||||
|
||||
function! ale_linters#ruby#ruby#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'ruby_ruby_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#ruby#ruby#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#ruby#ruby#GetExecutable(a:buffer)
|
||||
|
||||
return ale#Escape(l:executable) . ' -w -c -T1 %t'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('ruby', {
|
||||
\ 'name': 'ruby',
|
||||
\ 'executable_callback': 'ale_linters#ruby#ruby#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#ruby#ruby#GetCommand',
|
||||
\ 'executable_callback': ale#VarFunc('ruby_ruby_executable'),
|
||||
\ 'command': '%e -w -c -T1 %t',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'callback': 'ale#handlers#ruby#HandleSyntaxErrors',
|
||||
\})
|
||||
|
|
|
@ -4,19 +4,10 @@
|
|||
call ale#Set('rust_rls_executable', 'rls')
|
||||
call ale#Set('rust_rls_toolchain', 'nightly')
|
||||
|
||||
function! ale_linters#rust#rls#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'rust_rls_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#rust#rls#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#rust#rls#GetExecutable(a:buffer)
|
||||
let l:toolchain = ale#Var(a:buffer, 'rust_rls_toolchain')
|
||||
|
||||
if empty(l:toolchain)
|
||||
return ale#Escape(l:executable)
|
||||
else
|
||||
return ale#Escape(l:executable) . ' +' . ale#Escape(l:toolchain)
|
||||
endif
|
||||
return '%e' . (!empty(l:toolchain) ? ' +' . ale#Escape(l:toolchain) : '')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#rust#rls#GetProjectRoot(buffer) abort
|
||||
|
@ -28,7 +19,7 @@ endfunction
|
|||
call ale#linter#Define('rust', {
|
||||
\ 'name': 'rls',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#rust#rls#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('rust_rls_executable'),
|
||||
\ 'command_callback': 'ale_linters#rust#rls#GetCommand',
|
||||
\ 'project_root_callback': 'ale_linters#rust#rls#GetProjectRoot',
|
||||
\})
|
||||
|
|
|
@ -3,20 +3,11 @@
|
|||
call ale#Set('sass_stylelint_executable', 'stylelint')
|
||||
call ale#Set('sass_stylelint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#sass#stylelint#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'sass_stylelint', [
|
||||
\ 'node_modules/.bin/stylelint',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#sass#stylelint#GetCommand(buffer) abort
|
||||
return ale_linters#sass#stylelint#GetExecutable(a:buffer)
|
||||
\ . ' --stdin-filename %s'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('sass', {
|
||||
\ 'name': 'stylelint',
|
||||
\ 'executable_callback': 'ale_linters#sass#stylelint#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#sass#stylelint#GetCommand',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('sass_stylelint', [
|
||||
\ 'node_modules/.bin/stylelint',
|
||||
\ ]),
|
||||
\ 'command': '%e --stdin-filename %s',
|
||||
\ 'callback': 'ale#handlers#css#HandleStyleLintFormat',
|
||||
\})
|
||||
|
|
|
@ -1,29 +1,14 @@
|
|||
" Author: Nils Leuzinger - https://github.com/PawkyPenguin
|
||||
" Description: Basic scala support using fsc
|
||||
"
|
||||
function! ale_linters#scala#fsc#GetExecutable(buffer) abort
|
||||
if index(split(getbufvar(a:buffer, '&filetype'), '\.'), 'sbt') >= 0
|
||||
" Don't check sbt files
|
||||
return ''
|
||||
endif
|
||||
|
||||
return 'fsc'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#scala#fsc#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#scala#fsc#GetExecutable(a:buffer)
|
||||
|
||||
if empty(l:executable)
|
||||
return ''
|
||||
endif
|
||||
|
||||
return ale#Escape(l:executable) . ' -Ystop-after:parser %t'
|
||||
function! s:IsSbt(buffer) abort
|
||||
return index(split(getbufvar(a:buffer, '&filetype'), '\.'), 'sbt') >= 0
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('scala', {
|
||||
\ 'name': 'fsc',
|
||||
\ 'executable_callback': 'ale_linters#scala#fsc#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#scala#fsc#GetCommand',
|
||||
\ 'executable_callback': {buf -> s:IsSbt(buf) ? '' : 'fsc'},
|
||||
\ 'command': '%e -Ystop-after:parser %t',
|
||||
\ 'callback': 'ale#handlers#scala#HandleScalacLintFormat',
|
||||
\ 'output_stream': 'stderr',
|
||||
\})
|
||||
|
|
|
@ -2,29 +2,14 @@
|
|||
" w0rp <devw0rp@gmail.com>
|
||||
" Description: Basic scala support using scalac
|
||||
|
||||
function! ale_linters#scala#scalac#GetExecutable(buffer) abort
|
||||
if index(split(getbufvar(a:buffer, '&filetype'), '\.'), 'sbt') >= 0
|
||||
" Don't check sbt files
|
||||
return ''
|
||||
endif
|
||||
|
||||
return 'scalac'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#scala#scalac#GetCommand(buffer) abort
|
||||
let l:executable = ale_linters#scala#scalac#GetExecutable(a:buffer)
|
||||
|
||||
if empty(l:executable)
|
||||
return ''
|
||||
endif
|
||||
|
||||
return ale#Escape(l:executable) . ' -Ystop-after:parser %t'
|
||||
function! s:IsSbt(buffer) abort
|
||||
return index(split(getbufvar(a:buffer, '&filetype'), '\.'), 'sbt') >= 0
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('scala', {
|
||||
\ 'name': 'scalac',
|
||||
\ 'executable_callback': 'ale_linters#scala#scalac#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#scala#scalac#GetCommand',
|
||||
\ 'executable_callback': {buf -> s:IsSbt(buf) ? '' : 'scalac'},
|
||||
\ 'command': '%e -Ystop-after:parser %t',
|
||||
\ 'callback': 'ale#handlers#scala#HandleScalacLintFormat',
|
||||
\ 'output_stream': 'stderr',
|
||||
\})
|
||||
|
|
|
@ -3,20 +3,11 @@
|
|||
call ale#Set('scss_stylelint_executable', 'stylelint')
|
||||
call ale#Set('scss_stylelint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#scss#stylelint#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'scss_stylelint', [
|
||||
\ 'node_modules/.bin/stylelint',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#scss#stylelint#GetCommand(buffer) abort
|
||||
return ale_linters#scss#stylelint#GetExecutable(a:buffer)
|
||||
\ . ' --stdin-filename %s'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('scss', {
|
||||
\ 'name': 'stylelint',
|
||||
\ 'executable_callback': 'ale_linters#scss#stylelint#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#scss#stylelint#GetCommand',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('scss_stylelint', [
|
||||
\ 'node_modules/.bin/stylelint',
|
||||
\ ]),
|
||||
\ 'command': '%e --stdin-filename %s',
|
||||
\ 'callback': 'ale#handlers#css#HandleStyleLintFormat',
|
||||
\})
|
||||
|
|
|
@ -6,14 +6,9 @@
|
|||
" codes to exclude from shellcheck. For example:
|
||||
"
|
||||
" let g:ale_sh_shellcheck_exclusions = 'SC2002,SC2004'
|
||||
let g:ale_sh_shellcheck_exclusions =
|
||||
\ get(g:, 'ale_sh_shellcheck_exclusions', get(g:, 'ale_linters_sh_shellcheck_exclusions', ''))
|
||||
|
||||
let g:ale_sh_shellcheck_executable =
|
||||
\ get(g:, 'ale_sh_shellcheck_executable', 'shellcheck')
|
||||
|
||||
let g:ale_sh_shellcheck_options =
|
||||
\ get(g:, 'ale_sh_shellcheck_options', '')
|
||||
call ale#Set('sh_shellcheck_exclusions', get(g:, 'ale_linters_sh_shellcheck_exclusions', ''))
|
||||
call ale#Set('sh_shellcheck_executable', 'shellcheck')
|
||||
call ale#Set('sh_shellcheck_options', '')
|
||||
|
||||
function! ale_linters#sh#shellcheck#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'sh_shellcheck_executable')
|
||||
|
|
|
@ -26,19 +26,12 @@
|
|||
" And this is always output at the end and should just be ignored:
|
||||
" 0 packages and 1 specfiles checked; 4 errors, 0 warnings.
|
||||
|
||||
let g:ale_spec_rpmlint_executable =
|
||||
\ get(g:, 'ale_spec_rpmlint_executable', 'rpmlint')
|
||||
|
||||
let g:ale_spec_rpmlint_options =
|
||||
\ get(g:, 'ale_spec_rpmlint_options', '')
|
||||
|
||||
function! ale_linters#spec#rpmlint#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'spec_rpmlint_executable')
|
||||
endfunction
|
||||
call ale#Set('spec_rpmlint_executable', 'rpmlint')
|
||||
call ale#Set('spec_rpmlint_options', '')
|
||||
|
||||
function! ale_linters#spec#rpmlint#GetCommand(buffer) abort
|
||||
return ale_linters#spec#rpmlint#GetExecutable(a:buffer)
|
||||
\ . ' ' . ale#Var(a:buffer, 'spec_rpmlint_options')
|
||||
return '%e'
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'spec_rpmlint_options'))
|
||||
\ . ' -o "NetworkEnabled False"'
|
||||
\ . ' -v'
|
||||
\ . ' %t'
|
||||
|
@ -79,7 +72,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('spec', {
|
||||
\ 'name': 'rpmlint',
|
||||
\ 'executable_callback': 'ale_linters#spec#rpmlint#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('spec_rpmlint_executable'),
|
||||
\ 'command_callback': 'ale_linters#spec#rpmlint#GetCommand',
|
||||
\ 'callback': 'ale_linters#spec#rpmlint#Handle',
|
||||
\})
|
||||
|
|
|
@ -4,21 +4,17 @@ call ale#Set('stylus_stylelint_executable', 'stylelint')
|
|||
call ale#Set('stylus_stylelint_options', '')
|
||||
call ale#Set('stylus_stylelint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#stylus#stylelint#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'stylus_stylelint', [
|
||||
\ 'node_modules/.bin/stylelint',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#stylus#stylelint#GetCommand(buffer) abort
|
||||
return ale_linters#stylus#stylelint#GetExecutable(a:buffer)
|
||||
\ . ' ' . ale#Var(a:buffer, 'stylus_stylelint_options')
|
||||
return '%e'
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'stylus_stylelint_options'))
|
||||
\ . ' --stdin-filename %s'
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('stylus', {
|
||||
\ 'name': 'stylelint',
|
||||
\ 'executable_callback': 'ale_linters#stylus#stylelint#GetExecutable',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('stylus_stylelint', [
|
||||
\ 'node_modules/.bin/stylelint',
|
||||
\ ]),
|
||||
\ 'command_callback': 'ale_linters#stylus#stylelint#GetCommand',
|
||||
\ 'callback': 'ale#handlers#css#HandleStyleLintFormat',
|
||||
\})
|
||||
|
|
|
@ -4,16 +4,10 @@
|
|||
call ale#Set('tcl_nagelfar_executable', 'nagelfar.tcl')
|
||||
call ale#Set('tcl_nagelfar_options', '')
|
||||
|
||||
function! ale_linters#tcl#nagelfar#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'tcl_nagelfar_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#tcl#nagelfar#GetCommand(buffer) abort
|
||||
let l:options = ale#Var(a:buffer, 'tcl_nagelfar_options')
|
||||
|
||||
return ale#Escape(ale_linters#tcl#nagelfar#GetExecutable(a:buffer))
|
||||
\ . (!empty(l:options) ? ' ' . l:options : '')
|
||||
\ . ' %s'
|
||||
return '%e' . ale#Pad(l:options) . ' %s'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#tcl#nagelfar#Handle(buffer, lines) abort
|
||||
|
@ -39,7 +33,7 @@ endfunction
|
|||
call ale#linter#Define('tcl', {
|
||||
\ 'name': 'nagelfar',
|
||||
\ 'output_stream': 'stdout',
|
||||
\ 'executable_callback': 'ale_linters#tcl#nagelfar#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('tcl_nagelfar_executable'),
|
||||
\ 'command_callback': 'ale_linters#tcl#nagelfar#GetCommand',
|
||||
\ 'callback': 'ale_linters#tcl#nagelfar#Handle',
|
||||
\ 'lint_file': 1,
|
||||
|
|
|
@ -30,14 +30,11 @@ function! ale_linters#terraform#tflint#Handle(buffer, lines) abort
|
|||
return l:output
|
||||
endfunction
|
||||
|
||||
function! ale_linters#terraform#tflint#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'terraform_tflint_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#terraform#tflint#GetCommand(buffer) abort
|
||||
let l:cmd = ale#Escape(ale#Var(a:buffer, 'terraform_tflint_executable'))
|
||||
let l:cmd = '%e'
|
||||
|
||||
let l:config_file = ale#path#FindNearestFile(a:buffer, '.tflint.hcl')
|
||||
|
||||
if !empty(l:config_file)
|
||||
let l:cmd .= ' --config ' . ale#Escape(l:config_file)
|
||||
endif
|
||||
|
@ -54,9 +51,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('terraform', {
|
||||
\ 'name': 'tflint',
|
||||
\ 'executable_callback': 'ale_linters#terraform#tflint#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('terraform_tflint_executable'),
|
||||
\ 'command_callback': 'ale_linters#terraform#tflint#GetCommand',
|
||||
\ 'callback': 'ale_linters#terraform#tflint#Handle',
|
||||
\})
|
||||
|
||||
" vim:sw=4
|
||||
|
|
|
@ -1,16 +1,7 @@
|
|||
" Author: Andrew Balmos - <andrew@balmos.org>
|
||||
" Description: lacheck for LaTeX files
|
||||
|
||||
let g:ale_tex_lacheck_executable =
|
||||
\ get(g:, 'ale_tex_lacheck_executable', 'lacheck')
|
||||
|
||||
function! ale_linters#tex#lacheck#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'tex_lacheck_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#tex#lacheck#GetCommand(buffer) abort
|
||||
return ale#Var(a:buffer, 'tex_lacheck_executable') . ' %t'
|
||||
endfunction
|
||||
call ale#Set('tex_lacheck_executable', 'lacheck')
|
||||
|
||||
function! ale_linters#tex#lacheck#Handle(buffer, lines) abort
|
||||
" Mattes lines like:
|
||||
|
@ -41,7 +32,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('tex', {
|
||||
\ 'name': 'lacheck',
|
||||
\ 'executable_callback': 'ale_linters#tex#lacheck#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#tex#lacheck#GetCommand',
|
||||
\ 'executable_callback': ale#VarFunc('tex_lacheck_executable'),
|
||||
\ 'command': '%e %t',
|
||||
\ 'callback': 'ale_linters#tex#lacheck#Handle'
|
||||
\})
|
||||
|
|
|
@ -5,10 +5,6 @@ call ale#Set('thrift_thrift_generators', ['cpp'])
|
|||
call ale#Set('thrift_thrift_includes', [])
|
||||
call ale#Set('thrift_thrift_options', '-strict')
|
||||
|
||||
function! ale_linters#thrift#thrift#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'thrift_thrift_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#thrift#thrift#GetCommand(buffer) abort
|
||||
let l:generators = ale#Var(a:buffer, 'thrift_thrift_generators')
|
||||
let l:includes = ale#Var(a:buffer, 'thrift_thrift_includes')
|
||||
|
@ -22,7 +18,7 @@ function! ale_linters#thrift#thrift#GetCommand(buffer) abort
|
|||
|
||||
let l:output_dir = ale#engine#CreateDirectory(a:buffer)
|
||||
|
||||
return ale#Escape(ale_linters#thrift#thrift#GetExecutable(a:buffer))
|
||||
return '%e'
|
||||
\ . ale#Pad(join(map(copy(l:generators), "'--gen ' . v:val")))
|
||||
\ . ale#Pad(join(map(copy(l:includes), "'-I ' . v:val")))
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'thrift_thrift_options'))
|
||||
|
@ -83,7 +79,7 @@ call ale#linter#Define('thrift', {
|
|||
\ 'name': 'thrift',
|
||||
\ 'executable': 'thrift',
|
||||
\ 'output_stream': 'both',
|
||||
\ 'executable_callback': 'ale_linters#thrift#thrift#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('thrift_thrift_executable'),
|
||||
\ 'command_callback': 'ale_linters#thrift#thrift#GetCommand',
|
||||
\ 'callback': 'ale_linters#thrift#thrift#Handle',
|
||||
\})
|
||||
|
|
|
@ -5,22 +5,13 @@ call ale#Set('typescript_tsserver_executable', 'tsserver')
|
|||
call ale#Set('typescript_tsserver_config_path', '')
|
||||
call ale#Set('typescript_tsserver_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
" These functions need to be defined just to comply with the API for LSP.
|
||||
function! ale_linters#typescript#tsserver#GetProjectRoot(buffer) abort
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
function! ale_linters#typescript#tsserver#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'typescript_tsserver', [
|
||||
\ 'node_modules/.bin/tsserver',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('typescript', {
|
||||
\ 'name': 'tsserver',
|
||||
\ 'lsp': 'tsserver',
|
||||
\ 'executable_callback': 'ale_linters#typescript#tsserver#GetExecutable',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('typescript_tsserver', [
|
||||
\ 'node_modules/.bin/tsserver',
|
||||
\ ]),
|
||||
\ 'command_callback': 'ale_linters#typescript#tsserver#GetExecutable',
|
||||
\ 'project_root_callback': 'ale_linters#typescript#tsserver#GetProjectRoot',
|
||||
\ 'project_root_callback': {-> ''},
|
||||
\ 'language': '',
|
||||
\})
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
" Author: w0rp <devw0rp@gmail.com>
|
||||
" Description: A linter for checking ALE project code itself.
|
||||
|
||||
function! ale_linters#vim#ale_custom_linting_rules#GetExecutable(buffer) abort
|
||||
let l:filename = expand('#' . a:buffer . ':p')
|
||||
let l:dir_list = []
|
||||
|
||||
for l:dir in split(&runtimepath, ',')
|
||||
if l:filename[:len(l:dir) - 1] is# l:dir
|
||||
call add(l:dir_list, l:dir)
|
||||
endif
|
||||
endfor
|
||||
|
||||
return !empty(l:dir_list)
|
||||
\ ? findfile('test/script/custom-linting-rules', join(l:dir_list, ','))
|
||||
\ : ''
|
||||
endfunction
|
||||
|
||||
function! s:GetALEProjectDir(buffer) abort
|
||||
let l:executable = ale_linters#vim#ale_custom_linting_rules#GetExecutable(a:buffer)
|
||||
|
||||
return ale#path#Dirname(ale#path#Dirname(ale#path#Dirname(l:executable)))
|
||||
endfunction
|
||||
|
||||
function! ale_linters#vim#ale_custom_linting_rules#GetCommand(buffer) abort
|
||||
let l:dir = s:GetALEProjectDir(a:buffer)
|
||||
|
||||
return ale#path#CdString(l:dir) . '%e .'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#vim#ale_custom_linting_rules#Handle(buffer, lines) abort
|
||||
let l:dir = s:GetALEProjectDir(a:buffer)
|
||||
let l:output = []
|
||||
let l:pattern = '\v^([a-zA-Z]?:?[^:]+):(\d+) (.+)$'
|
||||
|
||||
for l:match in ale#util#GetMatches(a:lines, l:pattern)
|
||||
let l:filename = ale#path#GetAbsPath(l:dir, l:match[1])
|
||||
|
||||
if bufnr(l:filename) is a:buffer
|
||||
call add(l:output, {
|
||||
\ 'lnum': l:match[2],
|
||||
\ 'text': l:match[3],
|
||||
\ 'type': 'W',
|
||||
\})
|
||||
endif
|
||||
endfor
|
||||
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('vim', {
|
||||
\ 'name': 'ale_custom_linting_rules',
|
||||
\ 'executable_callback': 'ale_linters#vim#ale_custom_linting_rules#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#vim#ale_custom_linting_rules#GetCommand',
|
||||
\ 'callback': 'ale_linters#vim#ale_custom_linting_rules#Handle',
|
||||
\ 'lint_file': 1,
|
||||
\})
|
|
@ -4,18 +4,6 @@
|
|||
call ale#Set('vue_vls_executable', 'vls')
|
||||
call ale#Set('vue_vls_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#vue#vls#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'vue_vls', [
|
||||
\ 'node_modules/.bin/vls',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#vue#vls#GetCommand(buffer) abort
|
||||
let l:exe = ale#Escape(ale_linters#vue#vls#GetExecutable(a:buffer))
|
||||
|
||||
return l:exe . ' --stdio'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#vue#vls#GetProjectRoot(buffer) abort
|
||||
let l:package_path = ale#path#FindNearestFile(a:buffer, 'package.json')
|
||||
|
||||
|
@ -25,8 +13,10 @@ endfunction
|
|||
call ale#linter#Define('vue', {
|
||||
\ 'name': 'vls',
|
||||
\ 'lsp': 'stdio',
|
||||
\ 'executable_callback': 'ale_linters#vue#vls#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#vue#vls#GetCommand',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('vue_vls', [
|
||||
\ 'node_modules/.bin/vls',
|
||||
\ ]),
|
||||
\ 'command': '%e --stdio',
|
||||
\ 'language': 'vue',
|
||||
\ 'project_root_callback': 'ale_linters#vue#vls#GetProjectRoot',
|
||||
\})
|
||||
|
|
|
@ -5,12 +5,8 @@
|
|||
let g:ale_xml_xmllint_executable = get(g:, 'ale_xml_xmllint_executable', 'xmllint')
|
||||
let g:ale_xml_xmllint_options = get(g:, 'ale_xml_xmllint_options', '')
|
||||
|
||||
function! ale_linters#xml#xmllint#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'xml_xmllint_executable')
|
||||
endfunction
|
||||
|
||||
function! ale_linters#xml#xmllint#GetCommand(buffer) abort
|
||||
return ale#Escape(ale_linters#xml#xmllint#GetExecutable(a:buffer))
|
||||
return '%e'
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'xml_xmllint_options'))
|
||||
\ . ' --noout -'
|
||||
endfunction
|
||||
|
@ -63,7 +59,7 @@ endfunction
|
|||
call ale#linter#Define('xml', {
|
||||
\ 'name': 'xmllint',
|
||||
\ 'output_stream': 'stderr',
|
||||
\ 'executable_callback': 'ale_linters#xml#xmllint#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('xml_xmllint_executable'),
|
||||
\ 'command_callback': 'ale_linters#xml#xmllint#GetCommand',
|
||||
\ 'callback': 'ale_linters#xml#xmllint#Handle',
|
||||
\ })
|
||||
|
|
|
@ -4,17 +4,6 @@
|
|||
call ale#Set('yaml_swaglint_executable', 'swaglint')
|
||||
call ale#Set('yaml_swaglint_use_global', get(g:, 'ale_use_global_executables', 0))
|
||||
|
||||
function! ale_linters#yaml#swaglint#GetExecutable(buffer) abort
|
||||
return ale#node#FindExecutable(a:buffer, 'yaml_swaglint', [
|
||||
\ 'node_modules/.bin/swaglint',
|
||||
\])
|
||||
endfunction
|
||||
|
||||
function! ale_linters#yaml#swaglint#GetCommand(buffer) abort
|
||||
return ale_linters#yaml#swaglint#GetExecutable(a:buffer)
|
||||
\ . ' -r compact --stdin'
|
||||
endfunction
|
||||
|
||||
function! ale_linters#yaml#swaglint#Handle(buffer, lines) abort
|
||||
let l:pattern = ': \([^\s]\+\) @ \(\d\+\):\(\d\+\) - \(.\+\)$'
|
||||
let l:output = []
|
||||
|
@ -43,7 +32,9 @@ endfunction
|
|||
|
||||
call ale#linter#Define('yaml', {
|
||||
\ 'name': 'swaglint',
|
||||
\ 'executable_callback': 'ale_linters#yaml#swaglint#GetExecutable',
|
||||
\ 'command_callback': 'ale_linters#yaml#swaglint#GetCommand',
|
||||
\ 'executable_callback': ale#node#FindExecutableFunc('yaml_swaglint', [
|
||||
\ 'node_modules/.bin/swaglint',
|
||||
\ ]),
|
||||
\ 'command': '%e -r compact --stdin',
|
||||
\ 'callback': 'ale_linters#yaml#swaglint#Handle',
|
||||
\})
|
||||
|
|
|
@ -1,18 +1,10 @@
|
|||
" Author: KabbAmine <amine.kabb@gmail.com>
|
||||
|
||||
let g:ale_yaml_yamllint_executable =
|
||||
\ get(g:, 'ale_yaml_yamllint_executable', 'yamllint')
|
||||
|
||||
let g:ale_yaml_yamllint_options =
|
||||
\ get(g:, 'ale_yaml_yamllint_options', '')
|
||||
|
||||
function! ale_linters#yaml#yamllint#GetExecutable(buffer) abort
|
||||
return ale#Var(a:buffer, 'yaml_yamllint_executable')
|
||||
endfunction
|
||||
call ale#Set('yaml_yamllint_executable', 'yamllint')
|
||||
call ale#Set('yaml_yamllint_options', '')
|
||||
|
||||
function! ale_linters#yaml#yamllint#GetCommand(buffer) abort
|
||||
return ale_linters#yaml#yamllint#GetExecutable(a:buffer)
|
||||
\ . ' ' . ale#Var(a:buffer, 'yaml_yamllint_options')
|
||||
return '%e' . ale#Pad(ale#Var(a:buffer, 'yaml_yamllint_options'))
|
||||
\ . ' -f parsable %t'
|
||||
endfunction
|
||||
|
||||
|
@ -52,7 +44,7 @@ endfunction
|
|||
|
||||
call ale#linter#Define('yaml', {
|
||||
\ 'name': 'yamllint',
|
||||
\ 'executable_callback': 'ale_linters#yaml#yamllint#GetExecutable',
|
||||
\ 'executable_callback': ale#VarFunc('yaml_yamllint_executable'),
|
||||
\ 'command_callback': 'ale_linters#yaml#yamllint#GetCommand',
|
||||
\ 'callback': 'ale_linters#yaml#yamllint#Handle',
|
||||
\})
|
||||
|
|
|
@ -197,6 +197,11 @@ function! ale#Var(buffer, variable_name) abort
|
|||
return get(l:vars, l:full_name, g:[l:full_name])
|
||||
endfunction
|
||||
|
||||
" As above, but curry the arguments so only the buffer number is required.
|
||||
function! ale#VarFunc(variable_name) abort
|
||||
return {buf -> ale#Var(buf, a:variable_name)}
|
||||
endfunction
|
||||
|
||||
" Initialize a variable with a default value, if it isn't already set.
|
||||
"
|
||||
" Every variable name will be prefixed with 'ale_'.
|
||||
|
|
|
@ -54,9 +54,14 @@ function! ale#assert#Linter(expected_executable, expected_command) abort
|
|||
endif
|
||||
else
|
||||
let l:command = ale#linter#GetCommand(l:buffer, l:linter)
|
||||
endif
|
||||
|
||||
if type(l:command) is v:t_string
|
||||
" Replace %e with the escaped executable, so tests keep passing after
|
||||
" linters are changed to use %e.
|
||||
let l:command = substitute(l:command, '%e', '\=ale#Escape(l:executable)', 'g')
|
||||
else
|
||||
call map(l:command, 'substitute(v:val, ''%e'', ''\=ale#Escape(l:executable)'', ''g'')')
|
||||
endif
|
||||
|
||||
AssertEqual
|
||||
|
@ -126,7 +131,9 @@ function! ale#assert#SetUpLinterTest(filetype, name) abort
|
|||
|
||||
execute 'runtime ale_linters/' . a:filetype . '/' . a:name . '.vim'
|
||||
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
if !exists('g:dir')
|
||||
call ale#test#SetDirectory('/testplugin/test/command_callback')
|
||||
endif
|
||||
|
||||
command! -nargs=+ WithChainResults :call ale#assert#WithChainResults(<args>)
|
||||
command! -nargs=+ AssertLinter :call ale#assert#Linter(<args>)
|
||||
|
@ -140,14 +147,33 @@ function! ale#assert#TearDownLinterTest() abort
|
|||
unlet! g:ale_create_dummy_temporary_file
|
||||
let s:chain_results = []
|
||||
|
||||
delcommand WithChainResults
|
||||
delcommand AssertLinter
|
||||
delcommand AssertLinterNotExecuted
|
||||
delcommand AssertLSPOptions
|
||||
delcommand AssertLSPLanguage
|
||||
delcommand AssertLSPProject
|
||||
if exists(':WithChainResults')
|
||||
delcommand WithChainResults
|
||||
endif
|
||||
|
||||
call ale#test#RestoreDirectory()
|
||||
if exists(':AssertLinter')
|
||||
delcommand AssertLinter
|
||||
endif
|
||||
|
||||
if exists(':AssertLinterNotExecuted')
|
||||
delcommand AssertLinterNotExecuted
|
||||
endif
|
||||
|
||||
if exists(':AssertLSPOptions')
|
||||
delcommand AssertLSPOptions
|
||||
endif
|
||||
|
||||
if exists(':AssertLSPLanguage')
|
||||
delcommand AssertLSPLanguage
|
||||
endif
|
||||
|
||||
if exists(':AssertLSPProject')
|
||||
delcommand AssertLSPProject
|
||||
endif
|
||||
|
||||
if exists('g:dir')
|
||||
call ale#test#RestoreDirectory()
|
||||
endif
|
||||
|
||||
Restore
|
||||
|
||||
|
|
|
@ -150,12 +150,22 @@ function! s:GetListFromCompileCommandsFile(compile_commands_file) abort
|
|||
endfunction
|
||||
|
||||
function! ale#c#ParseCompileCommandsFlags(buffer, dir, json_list) abort
|
||||
" Search for an exact file match first.
|
||||
for l:item in a:json_list
|
||||
if bufnr(l:item.file) is a:buffer
|
||||
return ale#c#ParseCFlags(a:dir, l:item.command)
|
||||
endif
|
||||
endfor
|
||||
|
||||
" Look for any file in the same directory if we can't find an exact match.
|
||||
let l:dir = ale#path#Simplify(expand('#' . a:buffer . ':p:h'))
|
||||
|
||||
for l:item in a:json_list
|
||||
if ale#path#Simplify(fnamemodify(l:item.file, ':h')) is? l:dir
|
||||
return ale#c#ParseCFlags(a:dir, l:item.command)
|
||||
endif
|
||||
endfor
|
||||
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
|
@ -246,7 +256,7 @@ function! ale#c#IncludeOptions(include_paths) abort
|
|||
return ''
|
||||
endif
|
||||
|
||||
return ' ' . join(l:option_list) . ' '
|
||||
return join(l:option_list)
|
||||
endfunction
|
||||
|
||||
let g:ale_c_build_dir_names = get(g:, 'ale_c_build_dir_names', [
|
||||
|
|
|
@ -157,7 +157,7 @@ let s:default_registry = {
|
|||
\ },
|
||||
\ 'hackfmt': {
|
||||
\ 'function': 'ale#fixers#hackfmt#Fix',
|
||||
\ 'suggested_filetypes': ['php'],
|
||||
\ 'suggested_filetypes': ['hack'],
|
||||
\ 'description': 'Fix Hack files with hackfmt.',
|
||||
\ },
|
||||
\ 'hfmt': {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
" Author: Sam Howie <samhowie@gmail.com>
|
||||
" Description: Integration of hackfmt with ALE.
|
||||
|
||||
call ale#Set('php_hackfmt_executable', 'hackfmt')
|
||||
call ale#Set('php_hackfmt_options', '')
|
||||
call ale#Set('hack_hackfmt_executable', 'hackfmt')
|
||||
call ale#Set('hack_hackfmt_options', '')
|
||||
|
||||
function! ale#fixers#hackfmt#Fix(buffer) abort
|
||||
let l:executable = ale#Var(a:buffer, 'php_hackfmt_executable')
|
||||
let l:options = ale#Var(a:buffer, 'php_hackfmt_options')
|
||||
let l:executable = ale#Var(a:buffer, 'hack_hackfmt_executable')
|
||||
let l:options = ale#Var(a:buffer, 'hack_hackfmt_options')
|
||||
|
||||
return {
|
||||
\ 'command': ale#Escape(l:executable)
|
||||
|
|
|
@ -36,12 +36,23 @@ function! ale#fixers#prettier#ApplyFixForVersion(buffer, version_output) abort
|
|||
" Append the --parser flag depending on the current filetype (unless it's
|
||||
" already set in g:javascript_prettier_options).
|
||||
if empty(expand('#' . a:buffer . ':e')) && match(l:options, '--parser') == -1
|
||||
let l:prettier_parsers = ['typescript', 'css', 'less', 'scss', 'json', 'json5', 'graphql', 'markdown', 'vue']
|
||||
let l:parser = 'babylon'
|
||||
let l:prettier_parsers = {
|
||||
\ 'typescript': 'typescript',
|
||||
\ 'css': 'css',
|
||||
\ 'less': 'less',
|
||||
\ 'scss': 'scss',
|
||||
\ 'json': 'json',
|
||||
\ 'json5': 'json5',
|
||||
\ 'graphql': 'graphql',
|
||||
\ 'markdown': 'markdown',
|
||||
\ 'vue': 'vue',
|
||||
\ 'yaml': 'yaml',
|
||||
\}
|
||||
let l:parser = ''
|
||||
|
||||
for l:filetype in split(getbufvar(a:buffer, '&filetype'), '\.')
|
||||
if index(l:prettier_parsers, l:filetype) > -1
|
||||
let l:parser = l:filetype
|
||||
if has_key(l:prettier_parsers, l:filetype)
|
||||
let l:parser = l:prettier_parsers[l:filetype]
|
||||
break
|
||||
endif
|
||||
endfor
|
||||
|
|
|
@ -92,9 +92,12 @@ function! ale#handlers#gcc#HandleGCCFormat(buffer, lines) abort
|
|||
" the previous error parsed in output
|
||||
if l:match[4] is# 'note'
|
||||
if !empty(l:output)
|
||||
let l:output[-1]['detail'] =
|
||||
\ get(l:output[-1], 'detail', '')
|
||||
\ . s:RemoveUnicodeQuotes(l:match[0]) . "\n"
|
||||
if !has_key(l:output[-1], 'detail')
|
||||
let l:output[-1].detail = l:output[-1].text
|
||||
endif
|
||||
|
||||
let l:output[-1].detail = l:output[-1].detail . "\n"
|
||||
\ . s:RemoveUnicodeQuotes(l:match[0])
|
||||
endif
|
||||
|
||||
continue
|
||||
|
|
|
@ -26,11 +26,13 @@ let s:default_ale_linter_aliases = {
|
|||
"
|
||||
" Only cargo is enabled for Rust by default.
|
||||
" rpmlint is disabled by default because it can result in code execution.
|
||||
" hhast is disabled by default because it executes code in the project root.
|
||||
"
|
||||
" NOTE: Update the g:ale_linters documentation when modifying this.
|
||||
let s:default_ale_linters = {
|
||||
\ 'csh': ['shell'],
|
||||
\ 'go': ['gofmt', 'golint', 'go vet'],
|
||||
\ 'hack': ['hack'],
|
||||
\ 'help': [],
|
||||
\ 'perl': ['perlcritic'],
|
||||
\ 'python': ['flake8', 'mypy', 'pylint'],
|
||||
|
|
|
@ -47,7 +47,12 @@ function! ale#lsp#response#ReadDiagnostics(response) abort
|
|||
endif
|
||||
|
||||
if has_key(l:diagnostic, 'code')
|
||||
let l:loclist_item.nr = l:diagnostic.code
|
||||
if type(l:diagnostic.code) == v:t_string
|
||||
let l:loclist_item.code = l:diagnostic.code
|
||||
elseif type(l:diagnostic.code) == v:t_number && l:diagnostic.code != -1
|
||||
let l:loclist_item.code = string(l:diagnostic.code)
|
||||
let l:loclist_item.nr = l:diagnostic.code
|
||||
endif
|
||||
endif
|
||||
|
||||
call add(l:loclist, l:loclist_item)
|
||||
|
@ -70,7 +75,12 @@ function! ale#lsp#response#ReadTSServerDiagnostics(response) abort
|
|||
\}
|
||||
|
||||
if has_key(l:diagnostic, 'code')
|
||||
let l:loclist_item.nr = l:diagnostic.code
|
||||
if type(l:diagnostic.code) == v:t_string
|
||||
let l:loclist_item.code = l:diagnostic.code
|
||||
elseif type(l:diagnostic.code) == v:t_number && l:diagnostic.code != -1
|
||||
let l:loclist_item.code = string(l:diagnostic.code)
|
||||
let l:loclist_item.nr = l:diagnostic.code
|
||||
endif
|
||||
endif
|
||||
|
||||
if get(l:diagnostic, 'category') is# 'warning'
|
||||
|
@ -110,7 +120,7 @@ function! ale#lsp#response#GetErrorMessage(response) abort
|
|||
|
||||
if type(l:error_data) is v:t_string
|
||||
let l:message .= "\n" . l:error_data
|
||||
else
|
||||
elseif type(l:error_data) is v:t_dict
|
||||
let l:traceback = get(l:error_data, 'traceback', [])
|
||||
|
||||
if type(l:traceback) is v:t_list && !empty(l:traceback)
|
||||
|
|
|
@ -23,6 +23,11 @@ function! ale#node#FindExecutable(buffer, base_var_name, path_list) abort
|
|||
return ale#Var(a:buffer, a:base_var_name . '_executable')
|
||||
endfunction
|
||||
|
||||
" As above, but curry the arguments so only the buffer number is required.
|
||||
function! ale#node#FindExecutableFunc(base_var_name, path_list) abort
|
||||
return {buf -> ale#node#FindExecutable(buf, a:base_var_name, a:path_list)}
|
||||
endfunction
|
||||
|
||||
" Create a executable string which executes a Node.js script command with a
|
||||
" Node.js executable if needed.
|
||||
"
|
||||
|
|
|
@ -24,6 +24,7 @@ function! ale#python#FindProjectRootIni(buffer) abort
|
|||
\|| filereadable(l:path . '/mypy.ini')
|
||||
\|| filereadable(l:path . '/pycodestyle.cfg')
|
||||
\|| filereadable(l:path . '/flake8.cfg')
|
||||
\|| filereadable(l:path . '/.flake8rc')
|
||||
\|| filereadable(l:path . '/Pipfile')
|
||||
\|| filereadable(l:path . '/Pipfile.lock')
|
||||
return l:path
|
||||
|
|
51
sources_non_forked/ale/doc/ale-hack.txt
Normal file
51
sources_non_forked/ale/doc/ale-hack.txt
Normal file
|
@ -0,0 +1,51 @@
|
|||
===============================================================================
|
||||
ALE Hack Integration *ale-hack-options*
|
||||
*ale-integration-hack*
|
||||
|
||||
HHAST is disabled by default, as it executes code in the project root.
|
||||
|
||||
Currently linters must be enabled globally. HHAST can be enabled with:
|
||||
|
||||
>
|
||||
let g:ale_linters = {'hack': ['hack', 'hhast']}
|
||||
<
|
||||
|
||||
===============================================================================
|
||||
hack *ale-hack-hack*
|
||||
|
||||
g:ale_hack_hack_executable *g:ale_hack_hack_executable*
|
||||
*b:ale_hack_hack_executable*
|
||||
|
||||
Type: |String|
|
||||
Default: `'hh_client'`
|
||||
|
||||
This variable can be set to use a specific executable to interact with the
|
||||
Hack typechecker.
|
||||
|
||||
|
||||
===============================================================================
|
||||
hackfmt *ale-hack-hackfmt*
|
||||
|
||||
g:ale_hack_hackfmt_options *g:ale_hack_hackfmt_options*
|
||||
*b:ale_hack_hackfmt_options*
|
||||
Type: |String|
|
||||
Default: `''`
|
||||
|
||||
This variable can be set to pass additional options to the hackfmt fixer.
|
||||
|
||||
|
||||
===============================================================================
|
||||
hhast *ale-hack-hhast*
|
||||
|
||||
g:ale_hack_hhast_executable *g:ale_hack_hhast_executable*
|
||||
*b:ale_hack_hhast_executable*
|
||||
|
||||
Type: |String|
|
||||
Default: `'vendor/bin/hhast-lint'`
|
||||
|
||||
This variable can be set to use a specific executable to interact with the
|
||||
Hack typechecker.
|
||||
|
||||
|
||||
===============================================================================
|
||||
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
|
@ -79,5 +79,16 @@ g:ale_haskell_stack_build_options *g:ale_haskell_stack_build_options*
|
|||
programs will be slower unless you separately rebuild them outside of ALE.
|
||||
|
||||
|
||||
===============================================================================
|
||||
hie *ale-haskell-hie*
|
||||
|
||||
g:ale_haskell_hie_executable *g:ale_haskell_hie_executable*
|
||||
*b:ale_haskell_hie_executable*
|
||||
Type: |String|
|
||||
Default: `'hie'`
|
||||
|
||||
This variable can be changed to use a different executable for the haskell
|
||||
ide engine. i.e. `'hie-wrapper'`
|
||||
|
||||
===============================================================================
|
||||
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
|
||||
|
|
|
@ -1,24 +1,6 @@
|
|||
===============================================================================
|
||||
ALE PHP Integration *ale-php-options*
|
||||
|
||||
|
||||
===============================================================================
|
||||
hack *ale-php-hack*
|
||||
|
||||
There are no options for this linter.
|
||||
|
||||
|
||||
===============================================================================
|
||||
hackfmt *ale-php-hackfmt*
|
||||
|
||||
g:ale_php_hackfmt_options *g:ale_php_hackfmt_options*
|
||||
*b:ale_php_hackfmt_options*
|
||||
Type: |String|
|
||||
Default: `''`
|
||||
|
||||
This variable can be set to pass additional options to the hackfmt fixer.
|
||||
|
||||
|
||||
===============================================================================
|
||||
langserver *ale-php-langserver*
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue