diff --git a/ale_linters/c/clangd.vim b/ale_linters/c/clangd.vim index ab8a0259..c42d4497 100644 --- a/ale_linters/c/clangd.vim +++ b/ale_linters/c/clangd.vim @@ -8,7 +8,7 @@ call ale#Set('c_build_dir', '') function! ale_linters#c#clangd#GetCommand(buffer) abort let l:build_dir = ale#c#GetBuildDirectory(a:buffer) - return '%e -x c' + return '%e' \ . ale#Pad(ale#Var(a:buffer, 'c_clangd_options')) \ . (!empty(l:build_dir) ? ' -compile-commands-dir=' . ale#Escape(l:build_dir) : '') endfunction diff --git a/test/command_callback/test_c_clangd_command_callbacks.vader b/test/command_callback/test_c_clangd_command_callbacks.vader index 555122f6..753dc9a8 100644 --- a/test/command_callback/test_c_clangd_command_callbacks.vader +++ b/test/command_callback/test_c_clangd_command_callbacks.vader @@ -9,18 +9,14 @@ Before: Save b:ale_c_build_dir_names Save b:ale_c_parse_compile_commands - let b:command_tail = ' -x c' - After: - unlet! b:command_tail - call ale#assert#TearDownLinterTest() Execute(The language string should be correct): AssertLSPLanguage 'c' Execute(The default executable should be correct): - AssertLinter 'clangd', ale#Escape('clangd') . b:command_tail + AssertLinter 'clangd', ale#Escape('clangd') Execute(The project root should be detected correctly): call ale#test#SetFilename(tempname() . '/dummy.c') @@ -34,12 +30,12 @@ Execute(The project root should be detected correctly): Execute(The executable should be configurable): let g:ale_c_clangd_executable = 'foobar' - AssertLinter 'foobar', ale#Escape('foobar') . b:command_tail + AssertLinter 'foobar', ale#Escape('foobar') Execute(The options should be configurable): let b:ale_c_clangd_options = '-compile-commands-dir=foo' - AssertLinter 'clangd', ale#Escape('clangd') . b:command_tail . ' ' . b:ale_c_clangd_options + AssertLinter 'clangd', ale#Escape('clangd') . ' ' . b:ale_c_clangd_options Execute(The compile command database should be detected correctly): call ale#test#SetFilename('clangd_paths/with_build_dir/dummy_src/dummy.c') @@ -49,7 +45,7 @@ Execute(The compile command database should be detected correctly): let b:ale_c_build_dir_names = ['unusual_build_dir_name'] let b:ale_c_parse_compile_commands = 1 - AssertLinter 'clangd', ale#Escape('clangd') . b:command_tail + AssertLinter 'clangd', ale#Escape('clangd') \ . ' -compile-commands-dir=' \ . ale#Escape(ale#path#Simplify(g:dir . '/clangd_paths/with_build_dir/unusual_build_dir_name'))