From eab77b70722a87050ca12e0f93fe92e65c36361b Mon Sep 17 00:00:00 2001 From: w0rp Date: Mon, 17 Jul 2017 10:19:08 +0100 Subject: [PATCH] #703 Add arguments to avoid generating plist files if no build directory is detected for clang-check --- ale_linters/cpp/clangcheck.vim | 4 ++++ .../test_cpp_clangcheck_command_callbacks.vader | 14 +++++++++++--- 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):