Skip to content

inknexlab/sed-language-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sed-language-server

CI npm version

A Language Server Protocol implementation for POSIX and GNU sed, with explicit BRE and ERE support.

Installation

Requires Node.js 22 or later.

npm install --global @inknexlab/sed-language-server

Features

  • Diagnostics
  • Document formatting
  • Find references
  • Go to definition
  • Rename labels

Configuration

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.

Editor setup

Configure the LSP client to run sed-language-server --stdio for the sed language ID or filetype.

Emacs

(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.

Neovim

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")

Parser

Parsing is powered by the tree-sitter-sed grammars.

License

MIT

About

Language server for POSIX and GNU sed.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages