#703 Add arguments to avoid generating plist files if no build directory is detected for clang-check

This commit is contained in:
w0rp 2017-07-17 10:19:08 +01:00
parent 3b1bc2bd13
commit eab77b7072
2 changed files with 15 additions and 3 deletions

View File

@ -19,10 +19,14 @@ function! ale_linters#cpp#clangcheck#GetCommand(buffer) abort
let l:build_dir = ale#c#FindCompileCommands(a:buffer)
endif
" 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'
\ . (!empty(l:user_options) ? ' ' . l:user_options : '')
\ . (!empty(l:build_dir) ? ' -p ' . ale#Escape(l:build_dir) : '')
\ . (empty(l:build_dir) ? ' -extra-arg -Xanalyzer -extra-arg -analyzer-output=text' : '')
endfunction
call ale#linter#Define('cpp', {

View File

@ -26,20 +26,28 @@ Execute(The executable should be configurable):
Execute(The executable should be used in the command):
AssertEqual
\ ale#Escape('clang-check') . ' -analyze %s',
\ ale#Escape('clang-check')
\ . ' -analyze %s'
\ . ' -extra-arg -Xanalyzer -extra-arg -analyzer-output=text',
\ ale_linters#cpp#clangcheck#GetCommand(bufnr(''))
let b:ale_cpp_clangcheck_executable = 'foobar'
" The extra arguments in the command are used to prevent .plist files from
" being generated.
AssertEqual
\ ale#Escape('foobar') . ' -analyze %s',
\ ale#Escape('foobar')
\ . ' -analyze %s'
\ . ' -extra-arg -Xanalyzer -extra-arg -analyzer-output=text',
\ ale_linters#cpp#clangcheck#GetCommand(bufnr(''))
Execute(The options should be configurable):
let b:ale_cpp_clangcheck_options = '--something'
AssertEqual
\ ale#Escape('clang-check') . ' -analyze %s --something',
\ ale#Escape('clang-check')
\ . ' -analyze %s --something'
\ . ' -extra-arg -Xanalyzer -extra-arg -analyzer-output=text',
\ ale_linters#cpp#clangcheck#GetCommand(bufnr(''))
Execute(The build directory should be used when set):