A Language Server Protocol implementation for POSIX and GNU sed, with
explicit BRE and ERE support.
Requires Node.js 22 or later.
npm install --global @inknexlab/sed-language-server- Diagnostics
- Document formatting
- Find references
- Go to definition
- Rename labels
Pass dialect and regex as LSP initialization options:
dialect |
regex |
Syntax |
|---|---|---|
"posix" |
"bre" |
POSIX sed with basic regular expressions |
"posix" |
"ere" |
POSIX sed with extended regular expressions |
"gnu" |
"bre" |
GNU sed with basic regular expressions |
"gnu" |
"ere" |
GNU sed with extended regular expressions |
The defaults are "posix" and "bre". The selection remains fixed for the
server process.
Configure the LSP client to run sed-language-server --stdio for the sed
language ID or filetype.
(require 'eglot)
(add-to-list 'eglot-server-programs
'((sed-ts-mode sed-mode) .
("sed-language-server" "--stdio"
:initializationOptions (:dialect "posix" :regex "bre"))))Run M-x eglot in a sed-ts-mode or sed-mode buffer.
vim.lsp.config("sed_language_server", {
cmd = { "sed-language-server", "--stdio" },
filetypes = { "sed" },
init_options = { dialect = "posix", regex = "bre" },
})
vim.lsp.enable("sed_language_server")Parsing is powered by the tree-sitter-sed grammars.