diff options
author | Yasuhiro Matsumoto <mattn.jp@gmail.com> | 2020-01-24 22:59:44 +0900 |
---|---|---|
committer | Yasuhiro Matsumoto <mattn.jp@gmail.com> | 2020-01-24 22:59:44 +0900 |
commit | 6df097286f96be0d4aade9edb9d2390e34a3e070 (patch) | |
tree | 7f3940622face0f4626f3c2a4f11fb0ea0e66e8b | |
parent | b04982423e4bada1c0fa51393a07d30257fa8ca9 (diff) | |
download | vim-lsp-settings-6df097286f96be0d4aade9edb9d2390e34a3e070.tar.gz vim-lsp-settings-6df097286f96be0d4aade9edb9d2390e34a3e070.tar.bz2 vim-lsp-settings-6df097286f96be0d4aade9edb9d2390e34a3e070.zip |
Add json schema
-rw-r--r-- | plugin/lsp_settings.vim | 2 | ||||
-rw-r--r-- | schema.json | 56 | ||||
-rw-r--r-- | settings.json | 1 |
3 files changed, 59 insertions, 0 deletions
diff --git a/plugin/lsp_settings.vim b/plugin/lsp_settings.vim index 72a8729..7c3787e 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 diff --git a/schema.json b/schema.json new file mode 100644 index 0000000..3998775 --- /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", + "title": "filetype name", + "items": { + "title": "define command description", + "type": "object", + "additionalProperties": false, + "required": [ + "command", + "requires" + ], + "properties": { + "command": { + "title": "define name of language server", + "type": "string" + }, + "requires": { + "title": "define commands to install this language server", + "type": "array", + "items": { + "type": "string", + "title": "executable command name" + } + }, + "vim-plugin": { + "title": "define suggestion for vim-plugin", + "type": "object", + "additionalProperties": false, + "properties": { + "extensions": { + "type": "array", + "items": { + "type": "string", + "title": "file extensions" + } + }, + "name": { + "type": "string", + "title": "plugin identify user/repo" + } + } + } + } + } + } + } +} diff --git a/settings.json b/settings.json index a81206c..4d95605 100644 --- a/settings.json +++ b/settings.json @@ -1,4 +1,5 @@ { + "$schema": "./schema.json", "c": [ { "command": "clangd", |