summaryrefslogtreecommitdiff
path: root/ale_linters/c
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2019-05-20 19:57:08 +0100
committerw0rp <devw0rp@gmail.com>2019-05-20 19:57:08 +0100
commit143af2b9fd78dbfd5ee8ae727a522dd2dcc79b61 (patch)
tree2c44b311a5f127cba4654ff4f9a1e450d55f365a /ale_linters/c
parent781bf1502f78f7882347a70b587512a0e94ea380 (diff)
downloadale-143af2b9fd78dbfd5ee8ae727a522dd2dcc79b61.zip
Fix #2421 - Use compile_commands.json in build dirs to find roots
Diffstat (limited to 'ale_linters/c')
-rw-r--r--ale_linters/c/clangd.vim8
-rw-r--r--ale_linters/c/cquery.vim10
2 files changed, 7 insertions, 11 deletions
diff --git a/ale_linters/c/clangd.vim b/ale_linters/c/clangd.vim
index 918eadcc..79b600fa 100644
--- a/ale_linters/c/clangd.vim
+++ b/ale_linters/c/clangd.vim
@@ -4,12 +4,6 @@
call ale#Set('c_clangd_executable', 'clangd')
call ale#Set('c_clangd_options', '')
-function! ale_linters#c#clangd#GetProjectRoot(buffer) abort
- let l:project_root = ale#path#FindNearestFile(a:buffer, 'compile_commands.json')
-
- return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : ''
-endfunction
-
function! ale_linters#c#clangd#GetCommand(buffer) abort
return '%e' . ale#Pad(ale#Var(a:buffer, 'c_clangd_options'))
endfunction
@@ -19,5 +13,5 @@ call ale#linter#Define('c', {
\ 'lsp': 'stdio',
\ 'executable': {b -> ale#Var(b, 'c_clangd_executable')},
\ 'command': function('ale_linters#c#clangd#GetCommand'),
-\ 'project_root': function('ale_linters#c#clangd#GetProjectRoot'),
+\ 'project_root': function('ale#c#FindProjectRoot'),
\})
diff --git a/ale_linters/c/cquery.vim b/ale_linters/c/cquery.vim
index d2be9cd9..ff0f34af 100644
--- a/ale_linters/c/cquery.vim
+++ b/ale_linters/c/cquery.vim
@@ -5,13 +5,15 @@ call ale#Set('c_cquery_executable', 'cquery')
call ale#Set('c_cquery_cache_directory', expand('~/.cache/cquery'))
function! ale_linters#c#cquery#GetProjectRoot(buffer) abort
- let l:project_root = ale#path#FindNearestFile(a:buffer, 'compile_commands.json')
+ " Try to find cquery configuration files first.
+ let l:config = ale#path#FindNearestFile(a:buffer, '.cquery')
- if empty(l:project_root)
- let l:project_root = ale#path#FindNearestFile(a:buffer, '.cquery')
+ if !empty(l:config)
+ return fnamemodify(l:config, ':h')
endif
- return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : ''
+ " Fall back on default project root detection.
+ return ale#c#FindProjectRoot(a:buffer)
endfunction
function! ale_linters#c#cquery#GetInitializationOptions(buffer) abort