From 5dd39ee930e8336df75ad055384b5f7dad2b5d58 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Sat, 25 Jan 2020 00:23:15 +0900 Subject: Start after lsp_setup --- plugin/lsp_settings.vim | 55 ++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim index 7c3787e..e7df903 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() abort +function! s:vim_lsp_installer() abort let l:ft = tolower(split(&filetype, '\.')[0]) if !has_key(s:settings, l:ft) return [] @@ -68,7 +68,7 @@ function! s:vimlsp_installer() abort return [] endif for l:conf in l:server - let l:command = s:vimlsp_settings_get(l:conf.command, 'cmd', l:conf.command) + let l:command = s:vim_lsp_settings_get(l:conf.command, 'cmd', l:conf.command) if type(l:command) == type([]) let l:command = l:command[0] endif @@ -86,7 +86,7 @@ function! s:vimlsp_installer() abort endfunction " neovim passes third argument as 'exit' while vim passes only 2 arguments -function! s:vimlsp_install_server_post(command, job, code, ...) abort +function! s:vim_lsp_install_server_post(command, job, code, ...) abort if a:code != 0 return endif @@ -105,8 +105,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:vim_lsp_install_server() abort + let l:entry = s:vim_lsp_installer() if empty(l:entry) return endif @@ -118,18 +118,18 @@ function! s:vimlsp_install_server() abort call mkdir(l:server_install_dir, 'p') if has('nvim') split new - call termopen(l:entry[1], {'cwd': l:server_install_dir, 'on_exit': function('s:vimlsp_install_server_post', [l:entry[0]])}) | startinsert + call termopen(l:entry[1], {'cwd': l:server_install_dir, 'on_exit': function('s:vim_lsp_install_server_post', [l:entry[0]])}) | startinsert else let l:bufnr = term_start(l:entry[1], {'cwd': l:server_install_dir}) let l:job = term_getjob(l:bufnr) if l:job != v:null - call job_setoptions(l:job, {'exit_cb': function('s:vimlsp_install_server_post', [l:entry[0]])}) + call job_setoptions(l:job, {'exit_cb': function('s:vim_lsp_install_server_post', [l:entry[0]])}) endif endif endfunction -function! s:vimlsp_settings_suggest() abort - if empty(s:vimlsp_installer()) +function! s:vim_lsp_settings_suggest() abort + if empty(s:vim_lsp_installer()) return endif if exists(':LspInstallServer') !=# 2 @@ -137,11 +137,11 @@ function! s:vimlsp_settings_suggest() abort echohl Directory echomsg 'Please do :LspInstallServer to enable Language Server' echohl None - command! -buffer LspInstallServer call s:vimlsp_install_server() + command! -buffer LspInstallServer call s:vim_lsp_install_server() endif endfunction -function! s:vimlsp_settings_get(name, key, default) abort +function! s:vim_lsp_settings_get(name, key, default) abort let l:config = get(g:, 'lsp_settings', {}) if !has_key(l:config, a:name) if !has_key(l:config, '*') @@ -157,23 +157,23 @@ function! s:vimlsp_settings_get(name, key, default) abort return l:config[a:key] endfunction -function! s:vimlsp_setting() abort +function! s:vim_lsp_settings() abort for l:ft in keys(s:settings) if has_key(g:, 'lsp_settings_whitelist') && index(g:lsp_settings_whitelist, l:ft) == -1 || empty(s:settings[l:ft]) continue endif exe 'augroup' s:load_or_suggest_group_name(l:ft) - au! - exe 'autocmd FileType' l:ft 'call s:vimlsp_load_or_suggest(' string(l:ft) ')' + autocmd! + exe 'autocmd FileType' l:ft 'call s:vim_lsp_load_or_suggest(' string(l:ft) ')' augroup END endfor - augroup vimlsp_suggest - au! - autocmd BufNewFile,BufRead * call s:vimlsp_suggest_plugin() + augroup vim_lsp_suggest + autocmd! + autocmd BufNewFile,BufRead * call s:vim_lsp_suggest_plugin() augroup END endfunction -function! s:vimlsp_suggest_plugin() abort +function! s:vim_lsp_suggest_plugin() abort if &ft != '' return endif @@ -195,13 +195,13 @@ function! s:vimlsp_suggest_plugin() abort endfor endfunction -function! s:vimlsp_load_or_suggest(ft) abort +function! s:vim_lsp_load_or_suggest(ft) abort if get(s:ftmap, a:ft, 0) return endif let l:group_name = s:load_or_suggest_group_name(a:ft) exe 'augroup' l:group_name - au! + autocmd! augroup END exe 'augroup!' l:group_name @@ -214,14 +214,14 @@ 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 s:vim_lsp_settings_get(l:server.command, 'disabled', 0) continue endif let l:default = get(g:, 'lsp_settings_' . a:ft, '') if !empty(l:default) && l:default != l:server.command continue endif - let l:command = s:vimlsp_settings_get(l:server.command, 'cmd', l:server.command) + let l:command = s:vim_lsp_settings_get(l:server.command, 'cmd', l:server.command) if type(l:command) == type([]) let l:command = l:command[0] endif @@ -255,11 +255,11 @@ function! s:vimlsp_load_or_suggest(ft) abort endfor if l:found ==# 0 - call s:vimlsp_settings_suggest() + call s:vim_lsp_settings_suggest() else doautocmd User lsp_setup if exists(':LspInstallServer') !=# 2 - command! -buffer LspInstallServer call s:vimlsp_install_server() + command! -buffer LspInstallServer call s:vim_lsp_install_server() endif endif @@ -269,7 +269,10 @@ function! s:vimlsp_load_or_suggest(ft) abort endfunction function! s:load_or_suggest_group_name(ft) abort - return printf('vimlsp_suggest_%s', a:ft) + return printf('vim_lsp_suggest_%s', a:ft) endfunction -call s:vimlsp_setting() +augroup vim_lsp_settings + autocmd! + autocmd User lsp_setup call s:vim_lsp_settings() | autocmd! vim_lsp_settings +augroup END -- cgit v1.2.3-54-g00ecf From 06c5330a7087f80b9a4821912b46bb94defd7fa8 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Sat, 25 Jan 2020 00:41:02 +0900 Subject: Set schema URL --- settings.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/settings.json b/settings.json index 4d95605..105ca15 100644 --- a/settings.json +++ b/settings.json @@ -1,5 +1,5 @@ { - "$schema": "./schema.json", + "$schema": "https://mattn.github.io/vim-lsp-settings/schema.json", "c": [ { "command": "clangd", @@ -376,6 +376,14 @@ ] } ], + "sql": [ + { + "command": "sqls", + "requires": [ + "go" + ] + } + ], "swift": [ { "command": "sourcekit-lsp", -- cgit v1.2.3-54-g00ecf From 20a2b3d7dcd0e92ec48d39aba78eb12414013efc Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Sat, 25 Jan 2020 10:13:01 +0900 Subject: Update README.md --- README.md | 58 +++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 5d311b9..c07c9f0 100644 --- a/README.md +++ b/README.md @@ -32,25 +32,6 @@ You can change the directory to install servers by set `g:lsp_settings_servers_d ## Usage -If you install clangd already, you can use clangd for C/C++ without configurations. But if you install clang with named clangd-6.0, you can replace executable like below: - -```vim -let g:lsp_settings = { -\ 'clangd': {'cmd': ['clangd-6.0']} -\} -``` - -Overridable keys are: - -* cmd (List ex: `['clangd-6.0', '-enable-snippets']`) -* initialization_options (Dictionary) -* whitelist (List) -* blacklist (List) -* config (Dictionary) -* workspace_config (Dictionary) - -If you install ruby but not solargraph, you can install solargraph with following command. - ``` :LspInstallServer ``` @@ -126,6 +107,45 @@ Finally, you have to install `@playlyfe/gql` into your project. $ npm install @playlyfe/gql --save-dev ``` +## Configurations + +Most of configurations are not required. + +If you install clangd already, you can use clangd for C/C++ without configurations. But if you install clang with named clangd-6.0, you can replace executable like below: + +```vim +let g:lsp_settings = { +\ 'clangd': {'cmd': ['clangd-6.0']} +\} +``` + +Overridable keys are: + +* cmd (List ex: `['clangd-6.0', '-enable-snippets']`) +* initialization_options (Dictionary) +* whitelist (List) +* blacklist (List) +* config (Dictionary) +* workspace_config (Dictionary) + +If you install ruby but not solargraph, you can install solargraph with following command. + +If you have some Language Servers and want to use specified the server: + +```vim +let g:lsp_settings_perl = 'slp' +``` + +If you want to disable Language Server: + +```vim +let g:lsp_settings = { +\ 'perl-languageserver': { +\ 'disabled': 0, +\ } +\} +``` + ## License MIT -- cgit v1.2.3-54-g00ecf From 1041a71b98a08dfe6d289721b27278ee32aba505 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Sat, 25 Jan 2020 10:32:13 +0900 Subject: Call vim_lsp_settings first --- plugin/lsp_settings.vim | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim index e7df903..43c6225 100644 --- a/plugin/lsp_settings.vim +++ b/plugin/lsp_settings.vim @@ -272,7 +272,4 @@ function! s:load_or_suggest_group_name(ft) abort return printf('vim_lsp_suggest_%s', a:ft) endfunction -augroup vim_lsp_settings - autocmd! - autocmd User lsp_setup call s:vim_lsp_settings() | autocmd! vim_lsp_settings -augroup END +call s:vim_lsp_settings() -- cgit v1.2.3-54-g00ecf From 0d0827debc115f214b69621bb63e27b18dce2b4e Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Sun, 26 Jan 2020 21:35:49 +0900 Subject: Fix initializationOptions for html --- settings/html-languageserver.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/html-languageserver.vim b/settings/html-languageserver.vim index cd3df22..7855505 100644 --- a/settings/html-languageserver.vim +++ b/settings/html-languageserver.vim @@ -4,7 +4,7 @@ augroup vimlsp_settings_html_languageserver \ 'name': 'html-languageserver', \ 'cmd': {server_info->lsp_settings#get('html-languageserver', 'cmd', [lsp_settings#exec_path('html-languageserver'), '--stdio'])}, \ 'root_uri':{server_info->lsp_settings#get('html-langserver', 'root_uri', lsp_settings#root_uri(g:lsp_settings_root_markers))}, - \ 'initialization_options': lsp_settings#get('html-languageserver', 'initialization_options', {'embeddedLanguages': {'css': v:true, 'html': v:true}}), + \ 'initialization_options': lsp_settings#get('html-languageserver', 'initialization_options', {'embeddedLanguages': {'css': v:true, 'javascript': v:true}}), \ 'whitelist': lsp_settings#get('html-languageserver', 'whitelist', ['html']), \ 'blacklist': lsp_settings#get('html-languageserver', 'blacklist', []), \ 'config': lsp_settings#get('html-languageserver', 'config', {}), -- cgit v1.2.3-54-g00ecf