diff options
-rw-r--r-- | README.md | 58 | ||||
-rw-r--r-- | plugin/lsp_settings.vim | 32 | ||||
-rw-r--r-- | settings.json | 10 | ||||
-rw-r--r-- | settings/html-languageserver.vim | 2 |
4 files changed, 65 insertions, 37 deletions
@@ -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 diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim index ccab170..1416097 100644 --- a/plugin/lsp_settings.vim +++ b/plugin/lsp_settings.vim @@ -68,7 +68,7 @@ function! s:vimlsp_installer(ft) 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(ft) 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 @@ -118,12 +118,12 @@ function! s:vimlsp_install_server(ft) 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 @@ -141,7 +141,7 @@ function! s:vimlsp_settings_suggest(ft) abort 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 @@ -221,7 +221,7 @@ function! s:vimlsp_load_or_suggest(ft) abort 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 @@ -269,7 +269,7 @@ 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() diff --git a/settings.json b/settings.json index 2baf0b4..c374e70 100644 --- a/settings.json +++ b/settings.json @@ -1,5 +1,5 @@ { - "$schema": "./schema.json", + "$schema": "https://mattn.github.io/vim-lsp-settings/schema.json", "_": [ { "command": "efm-langserver", @@ -383,6 +383,14 @@ ] } ], + "sql": [ + { + "command": "sqls", + "requires": [ + "go" + ] + } + ], "swift": [ { "command": "sourcekit-lsp", 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', {}), |