Fix #410 - Use compile_commands.json files for clang-tidy, and check files on disk instead
This commit is contained in:
@@ -1,12 +1,24 @@
|
||||
" Author: vdeurzen <tim@kompiler.org>, w0rp <devw0rp@gmail.com>
|
||||
" Description: clang-tidy linter for cpp files
|
||||
|
||||
" Set this option to change the clang-tidy options for warnings for C.
|
||||
let g:ale_cpp_clangtidy_options =
|
||||
\ get(g:, 'ale_cpp_clangtidy_options', '-std=c++14 -Wall')
|
||||
" Set this option to check the checks clang-tidy will apply.
|
||||
let g:ale_cpp_clangtidy_checks = get(g:, 'ale_cpp_clangtidy_checks', ['*'])
|
||||
|
||||
" Set this option to manually set some options for clang-tidy.
|
||||
" This will disable compile_commands.json detection.
|
||||
let g:ale_cpp_clangtidy_options = get(g:, 'ale_cpp_clangtidy_options', '')
|
||||
|
||||
function! ale_linters#cpp#clangtidy#GetCommand(buffer) abort
|
||||
return 'clang-tidy %t -- ' . ale#Var(a:buffer, 'cpp_clangtidy_options')
|
||||
let l:check_list = ale#Var(a:buffer, 'cpp_clangtidy_checks')
|
||||
let l:check_option = !empty(l:check_list)
|
||||
\ ? '-checks=' . shellescape(join(l:check_list, ',')) . ' '
|
||||
\ : ''
|
||||
let l:user_options = ale#Var(a:buffer, 'cpp_clangtidy_options')
|
||||
let l:extra_options = !empty(l:user_options)
|
||||
\ ? ' -- ' . l:user_options
|
||||
\ : ''
|
||||
|
||||
return 'clang-tidy ' . l:check_option . '%s' . l:extra_options
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('cpp', {
|
||||
@@ -15,4 +27,5 @@ call ale#linter#Define('cpp', {
|
||||
\ 'executable': 'clang-tidy',
|
||||
\ 'command_callback': 'ale_linters#cpp#clangtidy#GetCommand',
|
||||
\ 'callback': 'ale#handlers#gcc#HandleGCCFormat',
|
||||
\ 'lint_file': 1,
|
||||
\})
|
||||
|
||||
Reference in New Issue
Block a user