- YAML validation:
- Detects whether the entire file is valid yaml
- Validation:
- 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
- Detects warnings such as:
- Node is an additional property of parent
- Detects errors such as:
- Auto completion:
- Auto completes on all commands
- Scalar nodes autocomplete to schema's defaults if they exist
- Hover support:
- Hovering over a node shows description if available
- Document outlining:
- Shows a complete document outline of all nodes in the document
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.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 path must be relative to the project root and not an absolute path to the schema.
For example: If you have project structure
myProject
> myYamlFile.yaml
you can do
yaml.schemas: {
"http://json.schemastore.org/composer": "/myYamlFile.yaml"
}
and that will associate the composer schema with myYamlFile.yaml.
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": "/myYamlFile.yaml"
}
e.g.
yaml.schemas: {
"kedge": "/myKedgeApp.yaml"
}
e.g.
yaml.schemas: {
"http://json.schemastore.org/composer": "/*",
"kubernetes": "/myYamlFile.yaml"
}
yaml.schemas
extension allows you to specify json schemas that you want to validate against the yaml that you write. Kubernetes and kedge are optional fields. They do not require a url as the language server will provide that. You just need the keywords kubernetes/kedge and a glob pattern.
This repository only contains the server implementation. Here are some known clients consuming this server:
- Eclipse Che
- vscode-yaml for VSCode
- ide-yaml for Atom editor
- coc-yaml for coc.nvim
- Install prerequisites:
- latest Visual Studio Code
- Node.js v6.0.0 or higher
- Fork and clone this repository
- Install the dependencies
cd yaml-language-server $ npm install
- Build the language server
$ npm run compile
- The new built server is now location in out/server/src/server.js.
node (Yaml Language Server Location)/out/server/src/server.js [--stdio]
We have included the option to connect to the language server via stdio to help with intergrating the language server into different clients.