Merge branch 'master' into efm

This commit is contained in:
mattn
2020-01-25 00:04:46 +09:00
committed by GitHub
5 changed files with 78 additions and 5 deletions

View File

@@ -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

56
schema.json Normal file
View File

@@ -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"
}
}
}
}
}
}
}
}

View File

@@ -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",

View File

@@ -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']}}}),

View File

@@ -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', {}),