diff options
author | mattn <mattn.jp@gmail.com> | 2020-01-25 00:04:46 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-25 00:04:46 +0900 |
commit | 46193cac27c6ae28f5e85cfb2cdedb2075a43209 (patch) | |
tree | ab0714def72a73bdb509d149625d1d86b1342588 | |
parent | ac91e517302380f0b5b50b06837789036d639ac8 (diff) | |
parent | 431fb236bfb6dd70b98c6c453a2dc48d780bcb74 (diff) | |
download | vim-lsp-settings-46193cac27c6ae28f5e85cfb2cdedb2075a43209.tar.gz vim-lsp-settings-46193cac27c6ae28f5e85cfb2cdedb2075a43209.tar.bz2 vim-lsp-settings-46193cac27c6ae28f5e85cfb2cdedb2075a43209.zip |
Merge branch 'master' into efm
-rw-r--r-- | plugin/lsp_settings.vim | 6 | ||||
-rw-r--r-- | schema.json | 56 | ||||
-rw-r--r-- | settings.json | 15 | ||||
-rw-r--r-- | settings/json-languageserver.vim | 2 | ||||
-rw-r--r-- | settings/vim-language-server.vim | 4 |
5 files changed, 78 insertions, 5 deletions
diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim index ffe10b0..3d4ee3d 100644 --- a/plugin/lsp_settings.vim +++ b/plugin/lsp_settings.vim @@ -17,6 +17,8 @@ let s:servers_dir = expand('<sfile>:h:h').'/servers' let s:settings = json_decode(join(readfile(expand('<sfile>:h:h').'/settings.json'), "\n")) let s:ftmap = {} +call remove(s:settings, '$schema') + function! s:executable(cmd) abort if executable(a:cmd) return 1 @@ -133,7 +135,7 @@ function! s:vimlsp_settings_suggest(ft) abort if exists(':LspInstallServer') !=# 2 redraw echohl Directory - echomsg 'If enable Language Server, please do :LspInstallServer' + echomsg 'Please do :LspInstallServer to enable Language Server' echohl None command! -buffer LspInstallServer call s:vimlsp_install_server(&l:filetype) endif @@ -186,7 +188,7 @@ function! s:vimlsp_suggest_plugin() abort endif redraw echohl Directory - echomsg printf('If enable Language Server, please install vim-plugin "%s"', l:server['vim-plugin']['name']) + echomsg printf('Please install vim-plugin "%s" to enable Language Server', l:server['vim-plugin']['name']) echohl None return endfor diff --git a/schema.json b/schema.json new file mode 100644 index 0000000..c9ccb91 --- /dev/null +++ b/schema.json @@ -0,0 +1,56 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "title": "vim-lsp-settings", + "additionalProperties": false, + "patternProperties": { + "^\\$schema$": { + "type": "string" + }, + "^([a-z0-9_-]+)+$": { + "type": "array", + "description": "filetype name", + "items": { + "description": "define command description", + "type": "object", + "additionalProperties": false, + "required": [ + "command", + "requires" + ], + "properties": { + "command": { + "description": "define name of language server", + "type": "string" + }, + "requires": { + "description": "define commands to install this language server", + "type": "array", + "items": { + "type": "string", + "description": "executable command name" + } + }, + "vim-plugin": { + "description": "define suggestion for vim-plugin", + "type": "object", + "additionalProperties": false, + "properties": { + "extensions": { + "type": "array", + "items": { + "type": "string", + "description": "file extensions" + } + }, + "name": { + "type": "string", + "description": "plugin identify user/repo" + } + } + } + } + } + } + } +} diff --git a/settings.json b/settings.json index 5d32c03..2c971d5 100644 --- a/settings.json +++ b/settings.json @@ -1,4 +1,5 @@ { + "$schema": "./schema.json", "_": [ { "command": "efm-langserver", @@ -212,6 +213,20 @@ ] } ], + "jsonc": [ + { + "command": "json-languageserver", + "requires": [ + "npm" + ], + "vim-plugin": { + "extensions": [ + "cjson" + ], + "name": "neoclide/jsonc.vim" + } + } + ], "kotlin": [ { "command": "kotlin-language-server", diff --git a/settings/json-languageserver.vim b/settings/json-languageserver.vim index d7e79ca..a19b3b6 100644 --- a/settings/json-languageserver.vim +++ b/settings/json-languageserver.vim @@ -5,7 +5,7 @@ augroup vimlsp_settings_json_languageserver \ 'cmd': {server_info->lsp_settings#get('json-languageserver', 'cmd', [lsp_settings#exec_path('json-languageserver'), '--stdio'])}, \ 'root_uri':{server_info->lsp_settings#get('json-languageserver', 'root_uri', lsp_settings#root_uri(g:lsp_settings_root_markers))}, \ 'initialization_options': lsp_settings#get('json-languageserver', 'initialization_options', v:null), - \ 'whitelist': lsp_settings#get('json-languageserver', 'whitelist', ['json']), + \ 'whitelist': lsp_settings#get('json-languageserver', 'whitelist', ['json', 'jsonc']), \ 'blacklist': lsp_settings#get('json-languageserver', 'blacklist', []), \ 'config': lsp_settings#get('json-languageserver', 'config', {}), \ 'workspace_config': lsp_settings#get('json-languageserver', 'workspace_config', {name, key->{'json': {'format': {'enable': v:true}, 'schemas': json_decode(join(readfile(expand('<sfile>:h:h') . '/data/catalog.json'), "\n"))['schemas']}}}), diff --git a/settings/vim-language-server.vim b/settings/vim-language-server.vim index ab91f10..e31efed 100644 --- a/settings/vim-language-server.vim +++ b/settings/vim-language-server.vim @@ -4,8 +4,8 @@ augroup vimlsp_settings_vim_language_server \ 'name': 'vim-language-server', \ 'cmd': {server_info->lsp_settings#get('vim-language-server', 'cmd', [lsp_settings#exec_path('vim-language-server'), '--stdio'])}, \ 'root_uri':{server_info->lsp_settings#get('vim-language-server', 'root_uri', lsp_settings#root_uri(extend(['.vim/', 'vimfiles/'], g:lsp_settings_root_markers)))}, - \ 'initialization_options': { 'vimruntime': $VIMRUNTIME, 'runtimepath': &rtp }, - \ 'whitelist': lsp_settings#get('vim-language-server', 'whitelist', ['vim']), + \ 'initialization_options': extend({'vimruntime': $VIMRUNTIME, 'runtimepath': &rtp}, lsp_settings#get('vim-language-server', 'initialization_options', {}), 'force'), + \ 'whitelist': lsp_settings#get('vim-language-server', 'whitelist', ['vim']), \ 'blacklist': lsp_settings#get('vimbash-language-server', 'blacklist', []), \ 'config': lsp_settings#get('vim-language-server', 'config', {}), \ 'workspace_config': lsp_settings#get('vim-language-server', 'workspace_config', {}), |