Merge pull request #1793 from kodemeister/cquery

Use .cquery file to detect the project root
This commit is contained in:
w0rp 2018-08-10 18:23:55 +01:00 committed by GitHub
commit a56e801567
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 56 additions and 0 deletions

View file

@ -6,6 +6,11 @@ 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')
if empty(l:project_root)
let l:project_root = ale#path#FindNearestFile(a:buffer, '.cquery')
endif
return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : ''
endfunction

View file

@ -7,6 +7,10 @@ call ale#Set('cpp_cquery_cache_directory', expand('~/.cache/cquery'))
function! ale_linters#cpp#cquery#GetProjectRoot(buffer) abort
let l:project_root = ale#path#FindNearestFile(a:buffer, 'compile_commands.json')
if empty(l:project_root)
let l:project_root = ale#path#FindNearestFile(a:buffer, '.cquery')
endif
return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : ''
endfunction

View file

@ -0,0 +1,33 @@
Before:
call ale#assert#SetUpLinterTest('c', 'cquery')
After:
call ale#assert#TearDownLinterTest()
Execute(The project root should be detected correctly using compile_commands.json file):
AssertLSPProject ''
call ale#test#SetFilename('cquery_paths/with_compile_commands_json/dummy.c')
AssertLSPProject ale#path#Simplify(g:dir . '/cquery_paths/with_compile_commands_json')
Execute(The project root should be detected correctly using .cquery file):
AssertLSPProject ''
call ale#test#SetFilename('cquery_paths/with_cquery/dummy.c')
AssertLSPProject ale#path#Simplify(g:dir . '/cquery_paths/with_cquery')
Execute(The executable should be configurable):
AssertLinter 'cquery', ale#Escape('cquery')
let b:ale_c_cquery_executable = 'foobar'
AssertLinter 'foobar', ale#Escape('foobar')
Execute(The cache directory should be configurable):
AssertLSPOptions {'cacheDirectory': expand('$HOME/.cache/cquery')}
let b:ale_c_cquery_cache_directory = '/foo/bar'
AssertLSPOptions {'cacheDirectory': '/foo/bar'}

View file

@ -7,6 +7,20 @@ Before:
After:
call ale#assert#TearDownLinterTest()
Execute(The project root should be detected correctly using compile_commands.json file):
AssertLSPProject ''
call ale#test#SetFilename('cquery_paths/with_compile_commands_json/dummy.cpp')
AssertLSPProject ale#path#Simplify(g:dir . '/cquery_paths/with_compile_commands_json')
Execute(The project root should be detected correctly using .cquery file):
AssertLSPProject ''
call ale#test#SetFilename('cquery_paths/with_cquery/dummy.cpp')
AssertLSPProject ale#path#Simplify(g:dir . '/cquery_paths/with_cquery')
Execute(The executable should be configurable):
AssertLinter 'cquery', ale#Escape('cquery')