aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasuhiro Matsumoto <mattn.jp@gmail.com>2019-12-15 16:15:57 +0900
committerYasuhiro Matsumoto <mattn.jp@gmail.com>2019-12-15 16:15:57 +0900
commitd93ca7e89884bc5f8656a60460e5f743810a2cb3 (patch)
treef5f0cc54928aee896be27b4c9415fe6a0d21c5ad
parentc552d6fdc0104ac77ccf09ef8e3db9d5b51b2f87 (diff)
downloadvim-lsp-settings-d93ca7e89884bc5f8656a60460e5f743810a2cb3.tar.gz
vim-lsp-settings-d93ca7e89884bc5f8656a60460e5f743810a2cb3.tar.bz2
vim-lsp-settings-d93ca7e89884bc5f8656a60460e5f743810a2cb3.zip
Customizable
-rw-r--r--autoload/lsp_settings.vim11
-rw-r--r--setting/clangd.vim8
-rw-r--r--setting/gopls.vim9
-rw-r--r--setting/intelephense-server.vim7
-rw-r--r--setting/pyls.vim8
-rw-r--r--setting/rls.vim8
-rw-r--r--setting/solargraph.vim9
-rw-r--r--setting/typescript-language-server.vim8
8 files changed, 52 insertions, 16 deletions
diff --git a/autoload/lsp_settings.vim b/autoload/lsp_settings.vim
new file mode 100644
index 0000000..e3ce81b
--- /dev/null
+++ b/autoload/lsp_settings.vim
@@ -0,0 +1,11 @@
+function! lsp_settings#get(name, key, default) abort
+ let l:config = get(g:, 'lsp_settings', {})
+ if !has_key(l:config, a:name)
+ return a:default
+ endif
+ let l:config = l:config[a:name]
+ if !has_key(l:config, a:key)
+ return a:default
+ endif
+ return l:config[a:key]
+endfunction
diff --git a/setting/clangd.vim b/setting/clangd.vim
index 1d93f02..f130b34 100644
--- a/setting/clangd.vim
+++ b/setting/clangd.vim
@@ -2,7 +2,11 @@ augroup vimlsp_settings_clangd
au!
autocmd User lsp_setup call lsp#register_server({
\ 'name': 'clangd',
- \ 'cmd': {server_info->['clangd']},
- \ 'whitelist': ['c', 'cpp', 'objc', 'objcpp'],
+ \ 'cmd': lsp_settings#get('clangd', 'cmd', {server_info->['clangd']}),
+ \ 'initialization_options': lsp_settings#get('clangd', 'initialization_options', v:null),
+ \ 'whitelist': lsp_settings#get('clangd', 'whitelist', ['c', 'cpp', 'objc', 'objcpp']),
+ \ 'blacklist': lsp_settings#get('clangd', 'blacklist', []),
+ \ 'config': lsp_settings#get('clangd', 'config', {}),
+ \ 'workspace_config': lsp_settings#get('clangd', 'workspace_config', {}),
\ })
augroup END
diff --git a/setting/gopls.vim b/setting/gopls.vim
index d31d4c9..1ed5cef 100644
--- a/setting/gopls.vim
+++ b/setting/gopls.vim
@@ -2,8 +2,11 @@ augroup vimlsp_settings_gopls
au!
autocmd User lsp_setup call lsp#register_server({
\ 'name': 'gopls',
- \ 'cmd': {server_info->['gopls']},
- \ 'initialization_options': {"diagnostics": "false"},
- \ 'whitelist': ['go'],
+ \ 'cmd': lsp_settings#get('gopls', 'cmd', {server_info->['gopls']}),
+ \ 'initialization_options': lsp_settings#get('gopls', 'initialization_options', {"diagnostics": "true"}),
+ \ 'whitelist': lsp_settings#get('gopls', 'whitelist', ['go']),
+ \ 'blacklist': lsp_settings#get('gopls', 'blacklist', []),
+ \ 'config': lsp_settings#get('gopls', 'config', {}),
+ \ 'workspace_config': lsp_settings#get('gopls', 'workspace_config', {}),
\ })
augroup END
diff --git a/setting/intelephense-server.vim b/setting/intelephense-server.vim
index 9d70241..25f4ccf 100644
--- a/setting/intelephense-server.vim
+++ b/setting/intelephense-server.vim
@@ -2,7 +2,10 @@ augroup vimlsp_settings_intelephense_server
au!
autocmd User lsp_setup call lsp#register_server({
\ 'name': 'intelephense',
- \ 'cmd': {server_info->[&shell, &shellcmdflag, 'intelephense-server --stdio']},
- \ 'whitelist': ['php'],
+ \ 'cmd': lsp_settings#get('intelephense', 'cmd', {server_info->[&shell, &shellcmdflag, 'intelephense-server --stdio']}),
+ \ 'whitelist': lsp_settings#get('intelephense', 'whitelist', ['php']),
+ \ 'blacklist': lsp_settings#get('intelephense', 'blacklist', []),
+ \ 'config': lsp_settings#get('intelephense', 'config', {}),
+ \ 'workspace_config': lsp_settings#get('intelephense', 'workspace_config', {}),
\ })
augroup END
diff --git a/setting/pyls.vim b/setting/pyls.vim
index 381f494..686353e 100644
--- a/setting/pyls.vim
+++ b/setting/pyls.vim
@@ -2,7 +2,11 @@ augroup vimlsp_settings_pyls
au!
autocmd User lsp_setup call lsp#register_server({
\ 'name': 'pyls',
- \ 'cmd': {server_info->['pyls']},
- \ 'whitelist': ['python'],
+ \ 'cmd': lsp_settings#get('pyls', 'cmd', {server_info->['pyls']}),
+ \ 'initialization_options': lsp_settings#get('pyls', 'initialization_options', v:null),
+ \ 'whitelist': lsp_settings#get('pyls', 'whitelist', ['python']),
+ \ 'blacklist': lsp_settings#get('pyls', 'blacklist', []),
+ \ 'config': lsp_settings#get('pyls', 'config', {}),
+ \ 'workspace_config': lsp_settings#get('pyls', 'workspace_config', {}),
\ })
augroup END
diff --git a/setting/rls.vim b/setting/rls.vim
index 65b38ef..252c658 100644
--- a/setting/rls.vim
+++ b/setting/rls.vim
@@ -2,7 +2,11 @@ augroup vimlsp_settings_rls
au!
autocmd User lsp_setup call lsp#register_server({
\ 'name': 'rls',
- \ 'cmd': {server_info->['rls']},
- \ 'whitelist': ['rust'],
+ \ 'cmd': lsp_settings#get('rls', 'cmd', {server_info->['rls']}),
+ \ 'initialization_options': lsp_settings#get('rls', 'initialization_options', v:null),
+ \ 'whitelist': lsp_settings#get('rls', 'whitelist', ['rust']),
+ \ 'blacklist': lsp_settings#get('rls', 'blacklist', []),
+ \ 'config': lsp_settings#get('rls', 'config', {}),
+ \ 'workspace_config': lsp_settings#get('rls', 'workspace_config', {}),
\ })
augroup END
diff --git a/setting/solargraph.vim b/setting/solargraph.vim
index 169c847..914fb62 100644
--- a/setting/solargraph.vim
+++ b/setting/solargraph.vim
@@ -2,8 +2,11 @@ augroup vimlsp_settings_solargraph
au!
autocmd User lsp_setup call lsp#register_server({
\ 'name': 'solargraph',
- \ 'cmd': {server_info->[&shell, &shellcmdflag, 'solargraph stdio']},
- \ 'initialization_options': {"diagnostics": "true"},
- \ 'whitelist': ['ruby'],
+ \ 'cmd': lsp_settings#get('solargraph', 'cmd', {server_info->[&shell, &shellcmdflag, 'solargraph stdio']}),
+ \ 'initialization_options': lsp_settings#get('solargraph', 'initialization_options', {"diagnostics": "true"}),
+ \ 'whitelist': lsp_settings#get('solargraph', 'whitelist', ['ruby']),
+ \ 'blacklist': lsp_settings#get('solargraph', 'blacklist', []),
+ \ 'config': lsp_settings#get('solargraph', 'config', {}),
+ \ 'workspace_config': lsp_settings#get('solargraph', 'workspace_config', {}),
\ })
augroup END
diff --git a/setting/typescript-language-server.vim b/setting/typescript-language-server.vim
index 6434c25..4f2fcc0 100644
--- a/setting/typescript-language-server.vim
+++ b/setting/typescript-language-server.vim
@@ -2,8 +2,12 @@ augroup vimlsp_settings_typescript_language_server
au!
autocmd User lsp_setup call lsp#register_server({
\ 'name': 'typescript-language-server',
- \ 'cmd': {server_info->[&shell, &shellcmdflag, 'typescript-language-server --stdio']},
+ \ 'cmd': lsp_settings#get('typescript-language-server', {server_info->[&shell, &shellcmdflag, 'typescript-language-server --stdio']}),
\ 'root_uri':{server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), 'tsconfig.json'))},
- \ 'whitelist': ['typescript', 'typescript.tsx'],
+ \ 'initialization_options': lsp_settings#get('typescript-language-server', 'initialization_options', {"diagnostics": "true"}),
+ \ 'whitelist': lsp_settings#get('typescript-language-server', 'whitelist', ['typescript', 'typescript.tsx']),
+ \ 'blacklist': lsp_settings#get('typescript-language-server', 'blacklist', []),
+ \ 'config': lsp_settings#get('typescript-language-server', 'config', {}),
+ \ 'workspace_config': lsp_settings#get('typescript-language-server', 'workspace_config', {}),
\ })
augroup END