The YAML Language Server is a Language Server Protocol implementation developed by Red Hat that provides comprehensive YAML editing support for code editors and IDEs. Written in TypeScript, it implements LSP 3.16 and delivers a full suite of YAML development tools including validation, autocompletion, formatting, syntax highlighting, and IntelliSense capabilities.
The server supports JSON Schema validation across multiple drafts including 04, 07, 2019-09, and 2020-12. It uses the eemeli/yaml parser starting from version 1.0.0, which strictly enforces YAML specification compliance. The default YAML specification version is 1.2, though users can configure this via the yaml.yamlVersion setting to use 1.1 if needed.
Core features include comprehensive YAML validation that detects file-level syntax errors and identifies specific issues such as missing nodes, invalid key node types, invalid type assignments, and invalid child nodes. The server also detects warnings for additional properties. Auto-completion functionality works across all commands and can populate scalar nodes with schema defaults when available. Hover support displays node descriptions when available, and document outlining provides a complete structural overview of all nodes in a YAML file.
The repository maintains extensive configuration options for customization. Users can control formatting behavior through settings like singleQuote, bracketSpacing, proseWrap, and printWidth. Schema association is highly flexible, supporting glob pattern matching, relative and absolute paths, multi-root workspace configurations, and nested schema references using URL fragments. The server integrates with external schema sources including the JSON Schema Store and Kubernetes CRD Store, with configurable URLs for both. Custom YAML tags can be defined with specific node types and return types to support domain-specific YAML extensions.
Additional capabilities include suppression of specific diagnostics through inline comments, modeline-based schema association for per-file configuration, and support for Kubernetes-specific features with configurable version targeting. The server provides proxy configuration options for schema downloads and includes performance optimization settings like maxItemsComputed to limit outline symbols and folding regions.
According to GitGenius activity tracking, the repository shows median issue and pull request response latency of 458.4 hours across 150 tracked items, with a mean latency of 7386.7 hours. Bug reports and enhancement requests represent the most active issue categories with 42 and 40 items respectively. The project's primary contributor datho7561 has generated 226 tracked events, followed by msivasubramaniaan with 54 events and shin19991207 with 43 events. The repository shares overlapping contributors with major projects including Microsoft's VSCode and TypeScript repositories, as well as the Rust language project.
The server is available as an npm package and includes containerized deployment options via quay.io/redhat-developer/yaml-language-server for users preferring container-based installation. It implements Language Server Protocol extensions including SchemaSelectionRequests and SupportSchemaSelection notifications to enable advanced schema management capabilities in compatible clients.