Registry / devops / devicetree-language-server

devicetree-language-server

JSON →
library0.9.3jsnpmunverified

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.

npm install devicetree-language-server
INSTALL
IMPORT
SIG · DEVICETREE-LANGUAG
D
devicetree-language-server
devopsjavascriptv0.9.3
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
import { createConnection } from 'vscode-languageserver/node'; import { TextDocuments } from 'vscode-languageserver'; // The language server is used programmatically via LSP, not direct import.
import { DevicetreeLanguageServer } from 'devicetree-language-server';
This package is a language server binary, not a library. To use it programmatically, spawn the server process and communicate via LSP.
DevicetreeLanguageServer
const server = new DevicetreeLanguageServer(); // only available in source, not published
import { DevicetreeLanguageServer } from 'devicetree-language-server';
The package does not export a class; it starts a server via bin script.

Shows how to install and run the language server globally, then connect to it via stdio LSP.

// Install globally or locally npm install -g devicetree-language-server // Start the language server (example using VS Code extension, but standalone also possible) devicetree-language-server --stdio // Or use with an editor that supports LSP (e.g., Neovim) // In your editor config, set the language server command to: "devicetree-language-server --stdio"
devicetree-language-server --version
Debug
Known issues
gotchaThe language server binary is named 'devicetree-language-server' but the npm package name is 'devicetree-language-server'. Ensure the binary is in PATH.
fix
Install globally with -g flag or use npx.
affects: all
breakingVersion 0.9.0 introduced Zephyr binding vendor autocompletion, which may change completion results.
fix
Review completion behavior if upgrading from pre-0.9.0.
affects: >=0.9.0
deprecatedThe formatting option 'sortNodesByAddress' was renamed to 'sortNodesBy' with value 'address' in v0.8.6.
fix
Update configuration: use 'sortNodesBy: address' instead of 'sortNodesByAddress: true'.
affects: >=0.8.6
gotchaThe server requires Node.js >=16. Older versions will fail to start.
fix
Ensure Node.js version is 16 or later.
affects: all
Errors
Common errors & fixes
Error: Cannot find module 'devicetree-language-server'
Package not installed in current directory or globally.
fix
Run 'npm install -g devicetree-language-server' or use 'npx devicetree-language-server'.
Sort keys must be set
Exception thrown when default values from Zephyr bindings are used (fixed in 0.8.3).
fix
Upgrade to v0.8.3 or later.
Language server crashed: context defined without dtsFile set
Incorrect configuration in workspace settings.
fix
Ensure each context in the configuration has 'dtsFile' property set.
Upgrade
Version history
0.9.3latest on npm
Audit
Dependencies

No dependency data recorded yet.

Agent activity
10 hits · last 30 days
node
6
OpenAI (training)
1
Resources
devicetree-language-server — npm install devicetree-language-server · libregistry