forked from github-mirrors/ale
Merge remote-tracking branch 'murfalo/clangd-compile-commands'
This commit is contained in:
commit
dfe9b7cc26
|
@ -3,9 +3,14 @@
|
|||
|
||||
call ale#Set('c_clangd_executable', 'clangd')
|
||||
call ale#Set('c_clangd_options', '')
|
||||
call ale#Set('c_build_dir', '')
|
||||
|
||||
function! ale_linters#c#clangd#GetCommand(buffer) abort
|
||||
return '%e -x c' . ale#Pad(ale#Var(a:buffer, 'c_clangd_options'))
|
||||
let l:build_dir = ale#c#GetBuildDirectory(a:buffer)
|
||||
|
||||
return '%e -x c'
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'c_clangd_options'))
|
||||
\ . (!empty(l:build_dir) ? ' -compile-commands-dir=' . ale#Escape(l:build_dir) : '')
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('c', {
|
||||
|
|
|
@ -3,9 +3,14 @@
|
|||
|
||||
call ale#Set('cpp_clangd_executable', 'clangd')
|
||||
call ale#Set('cpp_clangd_options', '')
|
||||
call ale#Set('c_build_dir', '')
|
||||
|
||||
function! ale_linters#cpp#clangd#GetCommand(buffer) abort
|
||||
return '%e' . ale#Pad(ale#Var(a:buffer, 'cpp_clangd_options'))
|
||||
let l:build_dir = ale#c#GetBuildDirectory(a:buffer)
|
||||
|
||||
return '%e'
|
||||
\ . ale#Pad(ale#Var(a:buffer, 'cpp_clangd_options'))
|
||||
\ . (!empty(l:build_dir) ? ' -compile-commands-dir=' . ale#Escape(l:build_dir) : '')
|
||||
endfunction
|
||||
|
||||
call ale#linter#Define('cpp', {
|
||||
|
|
|
@ -4,6 +4,11 @@ Before:
|
|||
Save &filetype
|
||||
let &filetype = 'c'
|
||||
|
||||
Save b:ale_c_clangd_options
|
||||
Save b:ale_c_build_dir
|
||||
Save b:ale_c_build_dir_names
|
||||
Save b:ale_c_parse_compile_commands
|
||||
|
||||
let b:command_tail = ' -x c'
|
||||
|
||||
After:
|
||||
|
@ -22,9 +27,9 @@ Execute(The project root should be detected correctly):
|
|||
|
||||
AssertLSPProject ''
|
||||
|
||||
call ale#test#SetFilename('clangd_paths/dummy.c')
|
||||
call ale#test#SetFilename('clangd_paths/with_compile_commands/dummy.c')
|
||||
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/clangd_paths')
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/clangd_paths/with_compile_commands')
|
||||
|
||||
Execute(The executable should be configurable):
|
||||
let g:ale_c_clangd_executable = 'foobar'
|
||||
|
@ -36,3 +41,15 @@ Execute(The options should be configurable):
|
|||
|
||||
AssertLinter 'clangd', ale#Escape('clangd') . b:command_tail . ' ' . 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')
|
||||
|
||||
let b:ale_c_clangd_options = ''
|
||||
let b:ale_c_build_dir = ''
|
||||
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
|
||||
\ . ' -compile-commands-dir='
|
||||
\ . ale#Escape(ale#path#Simplify(g:dir . '/clangd_paths/with_build_dir/unusual_build_dir_name'))
|
||||
|
||||
|
|
Loading…
Reference in New Issue