From e046c719864355821e52595c110b9798a715f8b3 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 24 Jan 2020 12:52:35 +0900 Subject: Support efm-langserver --- plugin/lsp_settings.vim | 19 ++++++++++--------- settings.json | 46 ++++++++++++++++++++++++++-------------------- 2 files changed, 36 insertions(+), 29 deletions(-) diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim index 06969b0..2b3346e 100644 --- a/plugin/lsp_settings.vim +++ b/plugin/lsp_settings.vim @@ -32,8 +32,8 @@ function! s:executable(cmd) abort return 0 endfunction -function! s:vimlsp_installer() abort - let l:ft = tolower(split(&filetype, '\.')[0]) +function! s:vimlsp_installer(ft) abort + let l:ft = tolower(split(a:ft, '\.')[0]) if !has_key(s:settings, l:ft) return [] endif @@ -96,8 +96,8 @@ function! s:vimlsp_install_server_post(command, job, code, ...) abort endif endfunction -function! s:vimlsp_install_server() abort - let l:entry = s:vimlsp_installer() +function! s:vimlsp_install_server(ft) abort + let l:entry = s:vimlsp_installer(a:ft) if empty(l:entry) return endif @@ -119,8 +119,8 @@ function! s:vimlsp_install_server() abort endif endfunction -function! s:vimlsp_settings_suggest() abort - if empty(s:vimlsp_installer()) +function! s:vimlsp_settings_suggest(ft) abort + if empty(s:vimlsp_installer(a:ft)) return endif if exists(':LspInstallServer') !=# 2 @@ -128,7 +128,7 @@ function! s:vimlsp_settings_suggest() abort echohl Directory echomsg 'If enable Language Server, please do :LspInstallServer' echohl None - command! -buffer LspInstallServer call s:vimlsp_install_server() + command! -buffer LspInstallServer call s:vimlsp_install_server(&l:filetype) endif endfunction @@ -246,11 +246,11 @@ function! s:vimlsp_load_or_suggest(ft) abort endfor if l:found ==# 0 - call s:vimlsp_settings_suggest() + call s:vimlsp_settings_suggest(a:ft) else doautocmd User lsp_setup if exists(':LspInstallServer') !=# 2 - command! -buffer LspInstallServer call s:vimlsp_install_server() + command! -buffer LspInstallServer call s:vimlsp_install_server(&l:filetype) endif endif @@ -264,3 +264,4 @@ function! s:load_or_suggest_group_name(ft) abort endfunction call s:vimlsp_setting() +call s:vimlsp_load_or_suggest('_') diff --git a/settings.json b/settings.json index a4d781f..5d32c03 100644 --- a/settings.json +++ b/settings.json @@ -1,4 +1,10 @@ { + "_": [ + { + "command": "efm-langserver", + "requires": [] + } + ], "c": [ { "command": "clangd", @@ -256,6 +262,26 @@ } } ], + "perl": [ + { + "command": "slp", + "requires": [ + "cpanm" + ] + }, + { + "command": "monastery", + "requires": [ + "cpanm" + ] + }, + { + "command": "perl-languageserver", + "requires": [ + "cpanm" + ] + } + ], "php": [ { "command": "intelephense", @@ -426,26 +452,6 @@ ] } ], - "perl": [ - { - "command": "slp", - "requires": [ - "cpanm" - ] - }, - { - "command": "monastery", - "requires": [ - "cpanm" - ] - }, - { - "command": "perl-languageserver", - "requires": [ - "cpanm" - ] - } - ], "yaml": [ { "command": "yaml-language-server", -- cgit v1.2.3-54-g00ecf From 9ec55697b7cad9f0e474795869985fd474efe6d3 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 24 Jan 2020 12:56:07 +0900 Subject: Add efm-langserver --- settings/efm-langserver.vim | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 settings/efm-langserver.vim diff --git a/settings/efm-langserver.vim b/settings/efm-langserver.vim new file mode 100644 index 0000000..45711e2 --- /dev/null +++ b/settings/efm-langserver.vim @@ -0,0 +1,13 @@ +augroup vimlsp_settings_efm_langserver + au! + LspRegisterServer { + \ 'name': 'efm-langserver', + \ 'cmd': {server_info->lsp_settings#get('efm-langserver', 'cmd', [lsp_settings#exec_path('efm-langserver')])}, + \ 'root_uri':{server_info->lsp_settings#get('efm-langserver', 'root_uri', lsp_settings#root_uri(['.git/']))}, + \ 'initialization_options': lsp_settings#get('efm-langserver', 'initialization_options', v:null), + \ 'whitelist': lsp_settings#get('efm-langserver', 'whitelist', ['*']), + \ 'blacklist': lsp_settings#get('efm-langserver', 'blacklist', []), + \ 'config': lsp_settings#get('efm-langserver', 'config', {}), + \ 'workspace_config': lsp_settings#get('efm-langserver', 'workspace_config', {}), + \ } +augroup END -- cgit v1.2.3-54-g00ecf From ac91e517302380f0b5b50b06837789036d639ac8 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 24 Jan 2020 13:32:03 +0900 Subject: Use g:lsp_settings_root_markers --- settings/efm-langserver.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/efm-langserver.vim b/settings/efm-langserver.vim index 45711e2..1a7c8cc 100644 --- a/settings/efm-langserver.vim +++ b/settings/efm-langserver.vim @@ -3,7 +3,7 @@ augroup vimlsp_settings_efm_langserver LspRegisterServer { \ 'name': 'efm-langserver', \ 'cmd': {server_info->lsp_settings#get('efm-langserver', 'cmd', [lsp_settings#exec_path('efm-langserver')])}, - \ 'root_uri':{server_info->lsp_settings#get('efm-langserver', 'root_uri', lsp_settings#root_uri(['.git/']))}, + \ 'root_uri':{server_info->lsp_settings#get('efm-langserver', 'root_uri', lsp_settings#root_uri(g:lsp_settings_root_markers))}, \ 'initialization_options': lsp_settings#get('efm-langserver', 'initialization_options', v:null), \ 'whitelist': lsp_settings#get('efm-langserver', 'whitelist', ['*']), \ 'blacklist': lsp_settings#get('efm-langserver', 'blacklist', []), -- cgit v1.2.3-54-g00ecf From 2b2cc38c2dc2f21321c8f99d25645735bb2db72e Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Mon, 27 Jan 2020 12:08:51 +0900 Subject: Disable efm-langserver in default --- plugin/lsp_settings.vim | 2 +- schema.json | 4 ++++ settings.json | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim index 3d4ee3d..ccab170 100644 --- a/plugin/lsp_settings.vim +++ b/plugin/lsp_settings.vim @@ -214,7 +214,7 @@ function! s:vimlsp_load_or_suggest(ft) abort let l:found = 0 for l:server in s:settings[a:ft] - if s:vimlsp_settings_get(l:server.command, 'disabled', 0) + if get(l:server, 'disabled', 0) || s:vimlsp_settings_get(l:server.command, 'disabled', 0) continue endif let l:default = get(g:, 'lsp_settings_' . a:ft, '') diff --git a/schema.json b/schema.json index c9ccb91..2537af6 100644 --- a/schema.json +++ b/schema.json @@ -23,6 +23,10 @@ "description": "define name of language server", "type": "string" }, + "diabled": { + "description": "disable this server", + "type": "boolean" + }, "requires": { "description": "define commands to install this language server", "type": "array", diff --git a/settings.json b/settings.json index 2c971d5..2baf0b4 100644 --- a/settings.json +++ b/settings.json @@ -3,6 +3,7 @@ "_": [ { "command": "efm-langserver", + "disabled": true, "requires": [] } ], -- cgit v1.2.3-54-g00ecf From 908c46f307b1d59bf262935dcbaecf4064dfb327 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Mon, 27 Jan 2020 12:12:55 +0900 Subject: Fix --- plugin/lsp_settings.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim index 1416097..b04f174 100644 --- a/plugin/lsp_settings.vim +++ b/plugin/lsp_settings.vim @@ -272,5 +272,5 @@ function! s:load_or_suggest_group_name(ft) abort return printf('vim_lsp_suggest_%s', a:ft) endfunction -call s:vimlsp_setting() -call s:vimlsp_load_or_suggest('_') +call s:vim_lsp_settings() +call s:vim_lsp_load_or_suggest('_') -- cgit v1.2.3-54-g00ecf From 4f08a2b85dffda69867ea66038ea6e4f56efddfb Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Mon, 27 Jan 2020 12:13:49 +0900 Subject: Fix function name --- plugin/lsp_settings.vim | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim index 1416097..62ffc3b 100644 --- a/plugin/lsp_settings.vim +++ b/plugin/lsp_settings.vim @@ -41,7 +41,7 @@ function! s:executable(cmd) abort return 0 endfunction -function! s:vimlsp_installer(ft) abort +function! s:vim_lsp_installer(ft) abort let l:ft = tolower(split(a:ft, '\.')[0]) if !has_key(s:settings, l:ft) return [] @@ -105,8 +105,8 @@ function! s:vim_lsp_install_server_post(command, job, code, ...) abort endif endfunction -function! s:vimlsp_install_server(ft) abort - let l:entry = s:vimlsp_installer(a:ft) +function! s:vim_lsp_install_server(ft) abort + let l:entry = s:vim_lsp_installer(a:ft) if empty(l:entry) return endif @@ -128,8 +128,8 @@ function! s:vimlsp_install_server(ft) abort endif endfunction -function! s:vimlsp_settings_suggest(ft) abort - if empty(s:vimlsp_installer(a:ft)) +function! s:vim_lsp_settings_suggest(ft) abort + if empty(s:vim_lsp_installer(a:ft)) return endif if exists(':LspInstallServer') !=# 2 @@ -137,7 +137,7 @@ function! s:vimlsp_settings_suggest(ft) abort echohl Directory echomsg 'Please do :LspInstallServer to enable Language Server' echohl None - command! -buffer LspInstallServer call s:vimlsp_install_server(&l:filetype) + command! -buffer LspInstallServer call s:vim_lsp_install_server(&l:filetype) endif endfunction @@ -214,7 +214,7 @@ function! s:vim_lsp_load_or_suggest(ft) abort let l:found = 0 for l:server in s:settings[a:ft] - if get(l:server, 'disabled', 0) || s:vimlsp_settings_get(l:server.command, 'disabled', 0) + if get(l:server, 'disabled', 0) || s:vim_lsp_settings_get(l:server.command, 'disabled', 0) continue endif let l:default = get(g:, 'lsp_settings_' . a:ft, '') @@ -255,11 +255,11 @@ function! s:vim_lsp_load_or_suggest(ft) abort endfor if l:found ==# 0 - call s:vimlsp_settings_suggest(a:ft) + call s:vim_lsp_settings_suggest(a:ft) else doautocmd User lsp_setup if exists(':LspInstallServer') !=# 2 - command! -buffer LspInstallServer call s:vimlsp_install_server(&l:filetype) + command! -buffer LspInstallServer call s:vim_lsp_install_server(&l:filetype) endif endif @@ -272,5 +272,5 @@ function! s:load_or_suggest_group_name(ft) abort return printf('vim_lsp_suggest_%s', a:ft) endfunction -call s:vimlsp_setting() -call s:vimlsp_load_or_suggest('_') +call s:vim_lsp_settings() +call s:vim_lsp_load_or_suggest('_') -- cgit v1.2.3-54-g00ecf From 5d06f7504b505fdae63888d75d813e60d9675004 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Mon, 27 Jan 2020 12:31:49 +0900 Subject: Possible to install specified server --- plugin/lsp_settings.vim | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim index 62ffc3b..70aec73 100644 --- a/plugin/lsp_settings.vim +++ b/plugin/lsp_settings.vim @@ -41,7 +41,7 @@ function! s:executable(cmd) abort return 0 endfunction -function! s:vim_lsp_installer(ft) abort +function! s:vim_lsp_installer(ft, ...) abort let l:ft = tolower(split(a:ft, '\.')[0]) if !has_key(s:settings, l:ft) return [] @@ -50,6 +50,10 @@ function! s:vim_lsp_installer(ft) abort if empty(l:server) return [] endif + let l:name = get(a:000, 0, '') + if !empty(l:name) + return filter(copy(l:server), 'l:conf.command ==# l:name') + endif let l:found = {} for l:conf in l:server let l:missing = 0 @@ -105,8 +109,8 @@ function! s:vim_lsp_install_server_post(command, job, code, ...) abort endif endfunction -function! s:vim_lsp_install_server(ft) abort - let l:entry = s:vim_lsp_installer(a:ft) +function! s:vim_lsp_install_server(ft, name) abort + let l:entry = s:vim_lsp_installer(a:ft, a:name) if empty(l:entry) return endif @@ -137,7 +141,7 @@ function! s:vim_lsp_settings_suggest(ft) abort echohl Directory echomsg 'Please do :LspInstallServer to enable Language Server' echohl None - command! -buffer LspInstallServer call s:vim_lsp_install_server(&l:filetype) + command! -nargs=? -buffer LspInstallServer call s:vim_lsp_install_server(&l:filetype, ) endif endfunction @@ -259,7 +263,7 @@ function! s:vim_lsp_load_or_suggest(ft) abort else doautocmd User lsp_setup if exists(':LspInstallServer') !=# 2 - command! -buffer LspInstallServer call s:vim_lsp_install_server(&l:filetype) + command! -nargs=? -buffer LspInstallServer call s:vim_lsp_install_server(&l:filetype, ) endif endif -- cgit v1.2.3-54-g00ecf