{"id":18277,"library":"devicetree-language-server","title":"Devicetree Language Server","description":"A Language Server Protocol (LSP) implementation for Devicetree source files (.dts/.dtsi) based on Devicetree Specification v0.4. Current stable version is 0.9.3, with frequent releases addressing bugs and adding features. Provides IDE features like go-to-definition, hover, formatting, diagnostics, semantic tokens, and Zephyr DT macro support. Supports Zephyr and Linux devicetree bindings, and integrates with multiple editors (VS Code, Neovim, Helix, kakoune). Differentiator: dedicated DTS LSP with deep understanding of devicetree semantics, unlike generic XML-based tools.","status":"active","version":"0.9.3","language":"javascript","source_language":"en","source_url":"https://github.com/kylebonnici/dts-lsp","tags":["javascript","dts","devicetree","lsp","formatting"],"install":[{"cmd":"npm install devicetree-language-server","lang":"bash","label":"npm"},{"cmd":"yarn add devicetree-language-server","lang":"bash","label":"yarn"},{"cmd":"pnpm add devicetree-language-server","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"This package is a language server binary, not a library. To use it programmatically, spawn the server process and communicate via LSP.","wrong":"import { DevicetreeLanguageServer } from 'devicetree-language-server';","symbol":"default","correct":"import { createConnection } from 'vscode-languageserver/node';\nimport { TextDocuments } from 'vscode-languageserver';\n// The language server is used programmatically via LSP, not direct import."},{"note":"The package does not export a class; it starts a server via bin script.","wrong":"import { DevicetreeLanguageServer } from 'devicetree-language-server';","symbol":"DevicetreeLanguageServer","correct":"const server = new DevicetreeLanguageServer(); // only available in source, not published"}],"quickstart":{"code":"// Install globally or locally\nnpm install -g devicetree-language-server\n\n// Start the language server (example using VS Code extension, but standalone also possible)\ndevicetree-language-server --stdio\n\n// Or use with an editor that supports LSP (e.g., Neovim)\n// In your editor config, set the language server command to:\n\"devicetree-language-server --stdio\"","lang":"javascript","description":"Shows how to install and run the language server globally, then connect to it via stdio LSP."},"warnings":[{"fix":"Install globally with -g flag or use npx.","message":"The language server binary is named 'devicetree-language-server' but the npm package name is 'devicetree-language-server'. Ensure the binary is in PATH.","severity":"gotcha","affected_versions":"all"},{"fix":"Review completion behavior if upgrading from pre-0.9.0.","message":"Version 0.9.0 introduced Zephyr binding vendor autocompletion, which may change completion results.","severity":"breaking","affected_versions":">=0.9.0"},{"fix":"Update configuration: use 'sortNodesBy: address' instead of 'sortNodesByAddress: true'.","message":"The formatting option 'sortNodesByAddress' was renamed to 'sortNodesBy' with value 'address' in v0.8.6.","severity":"deprecated","affected_versions":">=0.8.6"},{"fix":"Ensure Node.js version is 16 or later.","message":"The server requires Node.js >=16. Older versions will fail to start.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run 'npm install -g devicetree-language-server' or use 'npx devicetree-language-server'.","cause":"Package not installed in current directory or globally.","error":"Error: Cannot find module 'devicetree-language-server'"},{"fix":"Upgrade to v0.8.3 or later.","cause":"Exception thrown when default values from Zephyr bindings are used (fixed in 0.8.3).","error":"Sort keys must be set"},{"fix":"Ensure each context in the configuration has 'dtsFile' property set.","cause":"Incorrect configuration in workspace settings.","error":"Language server crashed: context defined without dtsFile set"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}