summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <w0rp@users.noreply.github.com>2018-08-10 18:23:55 +0100
committerGitHub <noreply@github.com>2018-08-10 18:23:55 +0100
commita56e801567907c683987858dc9a7a913c2d0cec4 (patch)
tree20788a884162a77516b9d17f382eeea6a289405c
parente9086dd55c84d95147e6132a319e694440637f9c (diff)
parent0702e4699e3af612737a0a7a9e6c61726f1c9237 (diff)
downloadale-a56e801567907c683987858dc9a7a913c2d0cec4.zip
Merge pull request #1793 from kodemeister/cquery
Use .cquery file to detect the project root
-rw-r--r--ale_linters/c/cquery.vim5
-rw-r--r--ale_linters/cpp/cquery.vim4
-rw-r--r--test/command_callback/cquery_paths/with_compile_commands_json/compile_commands.json0
-rw-r--r--test/command_callback/cquery_paths/with_cquery/.cquery0
-rw-r--r--test/command_callback/test_c_cquery_command_callbacks.vader33
-rw-r--r--test/command_callback/test_cpp_cquery_command_callbacks.vader14
6 files changed, 56 insertions, 0 deletions
diff --git a/ale_linters/c/cquery.vim b/ale_linters/c/cquery.vim
index 7daf9f76..a20782a2 100644
--- a/ale_linters/c/cquery.vim
+++ b/ale_linters/c/cquery.vim
@@ -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
diff --git a/ale_linters/cpp/cquery.vim b/ale_linters/cpp/cquery.vim
index 39eebce3..b1c81989 100644
--- a/ale_linters/cpp/cquery.vim
+++ b/ale_linters/cpp/cquery.vim
@@ -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
diff --git a/test/command_callback/cquery_paths/with_compile_commands_json/compile_commands.json b/test/command_callback/cquery_paths/with_compile_commands_json/compile_commands.json
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/command_callback/cquery_paths/with_compile_commands_json/compile_commands.json
diff --git a/test/command_callback/cquery_paths/with_cquery/.cquery b/test/command_callback/cquery_paths/with_cquery/.cquery
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/test/command_callback/cquery_paths/with_cquery/.cquery
diff --git a/test/command_callback/test_c_cquery_command_callbacks.vader b/test/command_callback/test_c_cquery_command_callbacks.vader
new file mode 100644
index 00000000..13b7a567
--- /dev/null
+++ b/test/command_callback/test_c_cquery_command_callbacks.vader
@@ -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'}
diff --git a/test/command_callback/test_cpp_cquery_command_callbacks.vader b/test/command_callback/test_cpp_cquery_command_callbacks.vader
index b355d052..682c90d5 100644
--- a/test/command_callback/test_cpp_cquery_command_callbacks.vader
+++ b/test/command_callback/test_cpp_cquery_command_callbacks.vader
@@ -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')