diff options
Diffstat (limited to 'ale_linters')
-rw-r--r-- | ale_linters/c/clang.vim | 12 | ||||
-rw-r--r-- | ale_linters/c/gcc.vim | 6 | ||||
-rw-r--r-- | ale_linters/cpp/clang.vim | 12 | ||||
-rw-r--r-- | ale_linters/cpp/gcc.vim | 6 | ||||
-rw-r--r-- | ale_linters/erlang/erlc.vim | 4 | ||||
-rw-r--r-- | ale_linters/vim/vint.vim | 6 |
6 files changed, 33 insertions, 13 deletions
diff --git a/ale_linters/c/clang.vim b/ale_linters/c/clang.vim index 205dd922..603e2b75 100644 --- a/ale_linters/c/clang.vim +++ b/ale_linters/c/clang.vim @@ -9,12 +9,18 @@ if !exists('g:ale_c_clang_options') let g:ale_c_clang_options = '-std=c11 -Wall' endif +function! ale_linters#c#clang#GetCommand(buffer) abort + " -iquote with the directory the file is in makes #include work for + " headers in the same directory. + return 'clang -S -x c -fsyntax-only ' + \ . '-iquote ' . fnameescape(fnamemodify(bufname(a:buffer), ':p:h')) + \ . ' ' . g:ale_c_clang_options . ' -' +endfunction + call ale#linter#Define('c', { \ 'name': 'clang', \ 'output_stream': 'stderr', \ 'executable': 'clang', -\ 'command': 'clang -S -x c -fsyntax-only ' -\ . g:ale_c_clang_options -\ . ' -', +\ 'command_callback': 'ale_linters#c#clang#GetCommand', \ 'callback': 'ale#handlers#HandleGCCFormat', \}) diff --git a/ale_linters/c/gcc.vim b/ale_linters/c/gcc.vim index 594c5c83..a487909c 100644 --- a/ale_linters/c/gcc.vim +++ b/ale_linters/c/gcc.vim @@ -10,9 +10,11 @@ if !exists('g:ale_c_gcc_options') endif function! ale_linters#c#gcc#GetCommand(buffer) abort + " -iquote with the directory the file is in makes #include work for + " headers in the same directory. return 'gcc -S -x c -fsyntax-only ' - \ . g:ale_c_gcc_options . ' -' - + \ . '-iquote ' . fnameescape(fnamemodify(bufname(a:buffer), ':p:h')) + \ . ' ' . g:ale_c_gcc_options . ' -' endfunction call ale#linter#Define('c', { diff --git a/ale_linters/cpp/clang.vim b/ale_linters/cpp/clang.vim index 7cd86968..9915ac3a 100644 --- a/ale_linters/cpp/clang.vim +++ b/ale_linters/cpp/clang.vim @@ -6,12 +6,18 @@ if !exists('g:ale_cpp_clang_options') let g:ale_cpp_clang_options = '-std=c++14 -Wall' endif +function! ale_linters#cpp#clang#GetCommand(buffer) abort + " -iquote with the directory the file is in makes #include work for + " headers in the same directory. + return 'clang++ -S -x c++ -fsyntax-only ' + \ . '-iquote ' . fnameescape(fnamemodify(bufname(a:buffer), ':p:h')) + \ . ' ' . g:ale_cpp_clang_options . ' -' +endfunction + call ale#linter#Define('cpp', { \ 'name': 'clang', \ 'output_stream': 'stderr', \ 'executable': 'clang++', -\ 'command': 'clang++ -S -x c++ -fsyntax-only ' -\ . g:ale_cpp_clang_options -\ . ' -', +\ 'command_callback': 'ale_linters#cpp#clang#GetCommand', \ 'callback': 'ale#handlers#HandleGCCFormat', \}) diff --git a/ale_linters/cpp/gcc.vim b/ale_linters/cpp/gcc.vim index 200a25c1..ad1b93b7 100644 --- a/ale_linters/cpp/gcc.vim +++ b/ale_linters/cpp/gcc.vim @@ -16,9 +16,11 @@ if !exists('g:ale_cpp_gcc_options') endif function! ale_linters#cpp#gcc#GetCommand(buffer) abort + " -iquote with the directory the file is in makes #include work for + " headers in the same directory. return 'gcc -S -x c++ -fsyntax-only ' - \ . g:ale_cpp_gcc_options . ' -' - + \ . '-iquote ' . fnameescape(fnamemodify(bufname(a:buffer), ':p:h')) + \ . ' ' . g:ale_cpp_gcc_options . ' -' endfunction call ale#linter#Define('cpp', { diff --git a/ale_linters/erlang/erlc.vim b/ale_linters/erlang/erlc.vim index 8433d9a1..871d4c88 100644 --- a/ale_linters/erlang/erlc.vim +++ b/ale_linters/erlang/erlc.vim @@ -3,7 +3,9 @@ let g:ale_erlang_erlc_options = get(g:, 'ale_erlang_erlc_options', '') function! ale_linters#erlang#erlc#GetCommand(buffer) abort - return 'erlc ' . g:ale_erlang_erlc_options . ' %t' + let l:output_file = tempname() + call ale#engine#ManageFile(a:buffer, l:output_file) + return 'erlc -o ' . fnameescape(l:output_file) . ' ' . g:ale_erlang_erlc_options . ' %t' endfunction function! ale_linters#erlang#erlc#Handle(buffer, lines) abort diff --git a/ale_linters/vim/vint.vim b/ale_linters/vim/vint.vim index 9917f3fe..fb177b92 100644 --- a/ale_linters/vim/vint.vim +++ b/ale_linters/vim/vint.vim @@ -6,6 +6,8 @@ let g:ale_vim_vint_show_style_issues = \ get(g:, 'ale_vim_vint_show_style_issues', 1) let s:warning_flag = g:ale_vim_vint_show_style_issues ? '-s' : '-w' +let s:vint_version = ale#semver#Parse(system('vint --version')) +let s:has_no_color_support = ale#semver#GreaterOrEqual(s:vint_version, [3, 0, 7]) let s:enable_neovim = has('nvim') ? ' --enable-neovim ' : '' let s:format = '-f "{file_path}:{line_number}:{column_number}: {severity}: {description} (see {reference})"' @@ -13,8 +15,8 @@ call ale#linter#Define('vim', { \ 'name': 'vint', \ 'executable': 'vint', \ 'command': 'vint ' -\ . s:warning_flag -\ . ' --no-color ' +\ . s:warning_flag . ' ' +\ . (s:has_no_color_support ? '--no-color ' : '') \ . s:enable_neovim \ . s:format \ . ' %t', |