@herb-tools/language-server
v0.8.5
Published
Herb HTML+ERB Language Tools and Language Server Protocol integration.
Readme
Herb Language Server
Package: @herb-tools/language-server
Language Server Protocol integration for HTML-aware ERB parsing using the Herb Parser.

Installation
Visual Studio Code
Install the Herb LSP extension from the Visual Studio Marketplace.
Cursor (Open VSX Registry)
Install the Herb LSP extension from the Open VSX Registry.
Zed
The Herb Language Server is part of the official Ruby extension for Zed. Just install the Ruby extension in Zed and you should be good to go.
Read more in the documentation.
Neovim (using nvim-lspconfig)
After installing the Herb Language Server (see below), add herb_ls to your Neovim config (requires nvim 0.11+):
require('lspconfig')
vim.lsp.enable('herb_ls')Sublime Text (using Sublime LSP)
After installing the Herb Language Server (see below) and Sublime LSP, update the preferences for the LSP package:
// LSP.sublime-settings
{
"clients": {
"herb": {
"enabled": true,
"command": [
"herb-language-server",
"--stdio"
],
"selector": "text.html.ruby | text.html.rails",
"settings": {
"languageServerHerb.linter.enabled": true
}
}
}
}Manual Installation
You can use the language server in any editor that supports the Language Server Protocol.
NPM (Global)
npm install -g @herb-tools/language-serverYarn (Global)
yarn global add @herb-tools/language-serverPreview Releases
Want to try unreleased features? Use pkg.pr.new to run the language server from any commit or PR:
npx https://pkg.pr.new/@herb-tools/language-server@{commit} --stdioReplace {commit} with a commit SHA (e.g., 0d2eabe) or branch name (e.g., main). Find available previews at pkg.pr.new/~/marcoroth/herb.
Run
herb-language-server --stdioUsage
Usage: herb-language-server [options]
Options:
--stdio use stdio
--node-ipc use node-ipc
--socket=<port> use socketNPX
Alternatively you can also run the language server directly with npx without installing anything:
npx @herb-tools/language-server --stdioConfiguration
The language server can be configured using a .herb.yml file in your project root. This configuration is shared across all Herb tools including the linter, formatter, and language server.
See the Configuration documentation for full details.
Example Configuration
# .herb.yml
linter:
enabled: true
formatter:
enabled: true
indentWidth: 2
maxLineLength: 80Note: VS Code users can also control settings through languageServerHerb.* settings in VS Code preferences. Project configuration in .herb.yml takes precedence over editor settings.
