bashd matkrin
winget install --id=matkrin.bashd -e bashd is a Language Server Protocol (LSP) implementation for Bash, built using the Go sh package and featuring ShellCheck integration for real-time linting.
winget install --id=matkrin.bashd -e bashd is a Language Server Protocol (LSP) implementation for Bash, built using the Go sh package and featuring ShellCheck integration for real-time linting.
bashd is a Language Server Protocol (LSP) implementation for Bash, built using the Go sh package and featuring ShellCheck integration for real-time linting.
help output as docs for keywords and builtinsReferenceContext.includeDeclaration function declarations and
variable assignments$ and {)$ and {)help output as docs for keywords and builtins\x1b[38;5;m) and background
(\x1b[48;5;m)\x1b[38;2;;;<b>m) and
background (\x1b[48;2;;;<b>m)\x1b[m; n ∈ [30,37] ∪
[90,97]) and background (\x1b[m; n ∈ [40,47] ∪ [100,107])\e and \033If you have Go installed (v1.17+), you can install bashd directly with:
go install github.com/matkrin/bashd/cmd/bashd@latest
This will download, build, and install the binary to $HOME/go/bin, make sure
it is is in your system’s PATH:
export PATH="${HOME}/go/bin:${PATH}"
Additionally, precompiled binaries are available for Linux, macOS, and Windows in the releases section.
With Neovim version 0.11+, you can use bashd without plugins:
vim.lsp.config.bashd = {
cmd = { "bashd" },
filetypes = { "bash", "sh" },
root_markers = { ".git" },
}
vim.lsp.enable("bashd")
With lspconfig:
local lspconfig = require("lspconfig")
local configs = require("lspconfig.configs")
configs.bashd = {
default_config = {
name = "bashd",
cmd = { "bashd" },
filetypes = { "bash", "sh" },
root_dir = lspconfig.util.root_pattern(".git"),
},
}
lspconfig.bashd.setup({})
In languages.toml:
[language-server.bashd]
command = "bashd"
roots = [".git"]
[[language]]
name = "bash"
language-servers = [{ name = "bashd" }]
See bashd (1) for all configuration options and full examples.