summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ale_linters/cpp/clangcheck.vim4
-rw-r--r--test/command_callback/test_cpp_clangcheck_command_callbacks.vader14
2 files changed, 15 insertions, 3 deletions
diff --git a/ale_linters/cpp/clangcheck.vim b/ale_linters/cpp/clangcheck.vim
index 936204d8..4b6169c8 100644
--- a/ale_linters/cpp/clangcheck.vim
+++ b/ale_linters/cpp/clangcheck.vim
@@ -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', {
diff --git a/test/command_callback/test_cpp_clangcheck_command_callbacks.vader b/test/command_callback/test_cpp_clangcheck_command_callbacks.vader
index e51ba3d2..34b87fc6 100644
--- a/test/command_callback/test_cpp_clangcheck_command_callbacks.vader
+++ b/test/command_callback/test_cpp_clangcheck_command_callbacks.vader
@@ -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):