redhat-developer/yaml-language-server

Language Server for YAML Files

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 31 minutes ago
Added to GitGenius on August 16th, 2022
Created on July 23rd, 2017
Open Issues & Pull Requests: 189 (+0)
Number of forks: 350
Total Stargazers: 1,513 (+0)
Total Subscribers: 19 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 19.1 days
Mean response time: 269.8 days
90th percentile: 888.7 days
Tracked items: 146

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 95% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "bug" is answered fastest, typically in about 27 hours, while "enhancement" waits about 6 months. Only 5% of issues opened in the past year have been closed. Three people close 89% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 86
New in 7 days: 1
Closed in 7 days: 3
Avg open age: 911 days
Stale 30+ days: 80
Stale 90+ days: 78

Recent activity

Opened in 7 days: 1
Closed in 7 days: 3
Comments in 7 days: 0
Events in 7 days: 3

Top labels

  • bug (75)
  • enhancement (64)
  • dependencies (6)
  • good first issue (6)
  • question (6)
  • upstream (5)
  • formatter (4)
  • help wanted (4)

Detailed Description

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.

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.