aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugin/lsp_settings.vim19
-rw-r--r--settings.json46
-rw-r--r--settings/efm-langserver.vim13
3 files changed, 49 insertions, 29 deletions
diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim
index 6e33743..ffe10b0 100644
--- a/plugin/lsp_settings.vim
+++ b/plugin/lsp_settings.vim
@@ -39,8 +39,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
@@ -103,8 +103,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
@@ -126,8 +126,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
@@ -135,7 +135,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
@@ -253,11 +253,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
@@ -271,3 +271,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",
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