diff options
Diffstat (limited to 'ale_linters/c/clang.vim')
-rw-r--r-- | ale_linters/c/clang.vim | 12 |
1 files changed, 9 insertions, 3 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', \}) |