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.
Download the latest binary from the releases page and put it in your PATH.
Follow the instructions for your editor below.
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 {}
The VS Code extension is currently in development. An official extension will be released soon.
However, at the moment you can also compile the extension yourself and run it in development mode.
Do not create an extension and publish it yourself. Contribute to the official extension instead.
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 :)