diff options
author | Ye Jingchen <ye.jingchen@gmail.com> | 2018-09-28 03:26:57 +0800 |
---|---|---|
committer | Ye Jingchen <ye.jingchen@gmail.com> | 2018-09-28 03:26:57 +0800 |
commit | 8891b7c349328120e5ec3f8022399f884a67e088 (patch) | |
tree | bf8e5144032fc0465fbb8db0ccf10ed78e395bd0 | |
parent | 17676f6a6d5ba2ab47c717f7c47b04d8fc23299b (diff) | |
download | ale-8891b7c349328120e5ec3f8022399f884a67e088.zip |
Move ccls functions to autoload/ale/handler
Tests are kept as-is.
-rw-r--r-- | ale_linters/c/ccls.vim | 22 | ||||
-rw-r--r-- | ale_linters/cpp/ccls.vim | 22 | ||||
-rw-r--r-- | ale_linters/objc/ccls.vim | 22 | ||||
-rw-r--r-- | autoload/ale/handlers/ccls.vim | 17 |
4 files changed, 23 insertions, 60 deletions
diff --git a/ale_linters/c/ccls.vim b/ale_linters/c/ccls.vim index d0fa566e..5dc2339f 100644 --- a/ale_linters/c/ccls.vim +++ b/ale_linters/c/ccls.vim @@ -4,29 +4,11 @@ call ale#Set('c_ccls_executable', 'ccls') call ale#Set('c_ccls_init_options', {}) -function! ale_linters#c#ccls#GetProjectRoot(buffer) abort - let l:project_root = ale#path#FindNearestFile(a:buffer, '.ccls-root') - - if empty(l:project_root) - let l:project_root = ale#path#FindNearestFile(a:buffer, 'compile_commands.json') - endif - - if empty(l:project_root) - let l:project_root = ale#path#FindNearestFile(a:buffer, '.ccls') - endif - - return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : '' -endfunction - -function! ale_linters#c#ccls#GetInitializationOptions(buffer) abort - return ale#Var(a:buffer, 'c_ccls_init_options') -endfunction - call ale#linter#Define('c', { \ 'name': 'ccls', \ 'lsp': 'stdio', \ 'executable_callback': ale#VarFunc('c_ccls_executable'), \ 'command': '%e', -\ 'project_root_callback': 'ale_linters#c#ccls#GetProjectRoot', -\ 'initialization_options_callback': 'ale_linters#c#ccls#GetInitializationOptions', +\ 'project_root_callback': 'ale#handlers#ccls#GetProjectRoot', +\ 'initialization_options_callback':ale#VarFunc('c_ccls_init_options'), \}) diff --git a/ale_linters/cpp/ccls.vim b/ale_linters/cpp/ccls.vim index f1604f30..501fd685 100644 --- a/ale_linters/cpp/ccls.vim +++ b/ale_linters/cpp/ccls.vim @@ -4,29 +4,11 @@ call ale#Set('cpp_ccls_executable', 'ccls') call ale#Set('cpp_ccls_init_options', {}) -function! ale_linters#cpp#ccls#GetProjectRoot(buffer) abort - let l:project_root = ale#path#FindNearestFile(a:buffer, '.ccls-root') - - if empty(l:project_root) - let l:project_root = ale#path#FindNearestFile(a:buffer, 'compile_commands.json') - endif - - if empty(l:project_root) - let l:project_root = ale#path#FindNearestFile(a:buffer, '.ccls') - endif - - return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : '' -endfunction - -function! ale_linters#cpp#ccls#GetInitializationOptions(buffer) abort - return ale#Var(a:buffer, 'cpp_ccls_init_options') -endfunction - call ale#linter#Define('cpp', { \ 'name': 'ccls', \ 'lsp': 'stdio', \ 'executable_callback': ale#VarFunc('cpp_ccls_executable'), \ 'command': '%e', -\ 'project_root_callback': 'ale_linters#cpp#ccls#GetProjectRoot', -\ 'initialization_options_callback': 'ale_linters#cpp#ccls#GetInitializationOptions', +\ 'project_root_callback': 'ale#handlers#ccls#GetProjectRoot', +\ 'initialization_options_callback': ale#VarFunc('cpp_ccls_init_options'), \}) diff --git a/ale_linters/objc/ccls.vim b/ale_linters/objc/ccls.vim index e6736df7..0aa6a5e5 100644 --- a/ale_linters/objc/ccls.vim +++ b/ale_linters/objc/ccls.vim @@ -4,29 +4,11 @@ call ale#Set('objc_ccls_executable', 'ccls') call ale#Set('objc_ccls_init_options', {}) -function! ale_linters#objc#ccls#GetProjectRoot(buffer) abort - let l:project_root = ale#path#FindNearestFile(a:buffer, '.ccls-root') - - if empty(l:project_root) - let l:project_root = ale#path#FindNearestFile(a:buffer, 'compile_commands.json') - endif - - if empty(l:project_root) - let l:project_root = ale#path#FindNearestFile(a:buffer, '.ccls') - endif - - return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : '' -endfunction - -function! ale_linters#objc#ccls#GetInitializationOptions(buffer) abort - return ale#Var(a:buffer, 'objc_ccls_init_options') -endfunction - call ale#linter#Define('objc', { \ 'name': 'ccls', \ 'lsp': 'stdio', \ 'executable_callback': ale#VarFunc('objc_ccls_executable'), \ 'command': '%e', -\ 'project_root_callback': 'ale_linters#objc#ccls#GetProjectRoot', -\ 'initialization_options_callback': 'ale_linters#objc#ccls#GetInitializationOptions', +\ 'project_root_callback': 'ale#handlers#ccls#GetProjectRoot', +\ 'initialization_options_callback': ale#VarFunc('objc_ccls_init_options'), \}) diff --git a/autoload/ale/handlers/ccls.vim b/autoload/ale/handlers/ccls.vim new file mode 100644 index 00000000..29dd6aed --- /dev/null +++ b/autoload/ale/handlers/ccls.vim @@ -0,0 +1,17 @@ +scriptencoding utf-8 +" Author: Ye Jingchen <ye.jingchen@gmail.com> +" Description: Utilities for ccls + +function! ale#handlers#ccls#GetProjectRoot(buffer) abort + let l:project_root = ale#path#FindNearestFile(a:buffer, '.ccls-root') + + if empty(l:project_root) + let l:project_root = ale#path#FindNearestFile(a:buffer, 'compile_commands.json') + endif + + if empty(l:project_root) + let l:project_root = ale#path#FindNearestFile(a:buffer, '.ccls') + endif + + return !empty(l:project_root) ? fnamemodify(l:project_root, ':h') : '' +endfunction |