Ⅰ. 插件描述
Yaml language server extension for coc.nvimⅡ. 基本信息
|
Ⅲ. 安装方法
使用Vundle管理器安装
在你的.vimrc下添加:Plugin 'neoclide/coc-yaml'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall
对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。
使用NeoBundle管理器安装
在你的.vimrc下添加:NeoBundle 'neoclide/coc-yaml'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall
使用VimPlug管理器安装
在你的.vimrc下添加:Plug 'neoclide/coc-yaml'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall
使用Pathogen管理器安装
在终端中运行以下命令:cd ~/.vim/bundle
git clone https://github.com/neoclide/coc-yaml
Ⅳ. 文档说明
# coc-yaml
Fork of vscode-yaml that
works with coc.nvim
Install
In your vim/neovim, run command:
:CocInstall coc-yaml
Features
YAML validation:
- Detects whether the entire file is valid yaml
Detects errors such as:
- Node is not found
- Node has an invalid key node type
- Node has an invalid type
- Node is not a valid child node
Document Outlining (Ctrl + Shift + O):
- Provides the document outlining of all completed nodes in the file
Auto completion (Ctrl + Space):
- Auto completes on all commands
- Scalar nodes autocomplete to schema's defaults if they exist
Hover support:
- Hovering over a node shows description if provided by schema
Formatter:
- Allows for formatting the current file
Auto completion and hover support are provided by the schema. Please refer to Language Server Settings to setup a schema
Language Server Settings
The following settings are supported:
yaml.format.enable
: Enable/disable default YAML formatter (requires restart)yaml.format.singleQuote
: Use single quotes instead of double quotesyaml.format.bracketSpacing
: Print spaces between brackets in objectsyaml.format.proseWrap
: Always: wrap prose if it exeeds the print width, Never: never wrap the prose, Preserve: wrap prose as-isyaml.validate
: Enable/disable validation featureyaml.hover
: Enable/disable hoveryaml.completion
: Enable/disable autocompletionyaml.schemas
: Helps you associate schemas with files in a glob patternyaml.customTags
: Array of custom tags that the parser will validate against. It has two ways to be used. Either an item in the array is a custom tag such as "!Ref" or you can specify the type of the object !Ref should be by doing "!Ref Scalar". For example: ["!Ref", "!Some-Tag Scalar"]. The type of object can be one of Scalar, Sequence, Mapping, Map.[yaml]
: VSCode-YAML adds default configuration for all yaml files. More specifically it converts tabs to spaces to ensure valid yaml, sets the tab size, and allows live typing autocompletion. These settings can be modified via the corresponding settings inside the[yaml]
section in the settings:editor.insertSpaces
editor.tabSize
editor.quickSuggestions
Associating a schema to a glob pattern via yaml.schemas:
yaml.schemas applies a schema to a file. In other words, the schema (placed on the left) is applied to the glob pattern on the right. Your schema can be local or online. Your schema must be a relative path and not an absolute path.
When associating a schema it should follow the format below
yaml.schemas: {
"url": "globPattern",
"Kubernetes": "globPattern",
"kedge": "globPattern"
}
e.g.
yaml.schemas: {
"http://json.schemastore.org/composer": "/*"
}
e.g.
yaml.schemas: {
"kubernetes": "/*.yaml"
}
e.g.
yaml.schemas: {
"kedge": "/myKedgeApp.yaml"
}
e.g.
yaml.schemas: {
"http://json.schemastore.org/composer": "/*",
"kubernetes": "/myYamlFile.yaml"
}
- To add
yaml.schemas
, open settings file by command::CocConfig
. - Supports schemas through schema store as well as any other schema url
- Supports 'yamlValidation' point which allows you to contribute a schema for a specific type of yaml file (Similar to jsonValidation)
This extension allows you to specify json schemas that you want to validate against the yaml that you write.
Debug
Add "yaml.trace.server": "verbose"
to your coc-settings.json
to get verbose
output of LSP communication.
Open output channel by command:
:CocCommand workspace.showOutput yaml
License
MIT