A language server for configuration files. The goal is to make editing config files modern and easy.
diagnostics | completion |
hover |
code-action |
definition |
rename |
signature-help |
|
---|---|---|---|---|---|---|---|
aliases | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
fstab | ✅ | ✅ | ✅ | ❓ | ❓ | ❓ | 🟡 |
hosts | ✅ | ✅ | ✅ | ✅ | ❓ | ❓ | ✅ |
ssh_config | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
sshd_config | ✅ | ✅ | ✅ | ❓ | ✅ | ❓ | ✅ |
wireguard | ✅ | ✅ | ✅ | ✅ | ❓ | ❓ | 🟡 |
✅ = Supported
🟡 = Will be supported, but not yet implemented
❓ = No idea what to implement here, please let me know if you have any ideas
As config-lsp is a hobby project and I'm working completely alone on it, I will first focus on widely used and well known config files.
You are welcome to request any config file, as far as it's fairly well known.
Install the extension from the marketplace
Alternatively, you can also manually install the extension:
- Download the latest extension version from the release page - You can find the extension under the "assets" section. The filename ends with
.vsix
- Open VS Code
- Open the extensions sidebar
- In the top bar, click on the three dots and select "Install from VSIX..."
- Select the just downloaded
.vsix
file - You may need to restart VS Code
- Enjoy!
To use config-lsp
in any other editor, you'll need to install it manually.
Don't worry, it's easy!
brew install myzel394/formulae/config-lsp
Download the latest binary from the releases page and put it in your PATH.
You can either compile the binary using go:
go build -o config-lsp
or build it using Nix:
nix flake build
Using nvim-lspconfig you can add config-lsp
by adding the following to your lsp.lua
(filename might differ):
if not configs.config_lsp then
configs.config_lsp = {
default_config = {
cmd = { 'config-lsp' },
filetypes = {
"sshconfig",
"sshdconfig",
"fstab",
"aliases",
-- Matches wireguard configs and /etc/hosts
"conf",
},
root_dir = vim.loop.cwd,
},
}
end
lspconfig.config_lsp.setup {}
You can either contribute to the project, see CONTRIBUTING.md, or you can sponsor me via GitHub Sponsors or via crypto currencies.
Oh and spreading the word about config-lsp is also a great way to support the project :)