aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasuhiro Matsumoto <mattn.jp@gmail.com>2020-01-27 12:11:58 +0900
committerYasuhiro Matsumoto <mattn.jp@gmail.com>2020-01-27 12:11:58 +0900
commit6527db6734a730842f4d2cdf8dd5d8c1a2596d1a (patch)
tree42c9c9335e4af1450474ce3d8651aa7f390d32aa
parent2b2cc38c2dc2f21321c8f99d25645735bb2db72e (diff)
parent0d0827debc115f214b69621bb63e27b18dce2b4e (diff)
downloadvim-lsp-settings-6527db6734a730842f4d2cdf8dd5d8c1a2596d1a.tar.gz
vim-lsp-settings-6527db6734a730842f4d2cdf8dd5d8c1a2596d1a.tar.bz2
vim-lsp-settings-6527db6734a730842f4d2cdf8dd5d8c1a2596d1a.zip
Merge branch 'master' into efm
-rw-r--r--README.md58
-rw-r--r--plugin/lsp_settings.vim32
-rw-r--r--settings.json10
-rw-r--r--settings/html-languageserver.vim2
4 files changed, 65 insertions, 37 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
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', {}),