mirror of
https://github.com/Myzel394/config-lsp.git
synced 2025-06-18 23:15:26 +02:00
108 lines
3.6 KiB
Markdown
108 lines
3.6 KiB
Markdown
# config-lsp
|
|
|
|
A language server for configuration files. The goal is to make editing config files modern and easy.
|
|
|
|
## Supported Features
|
|
|
|
| | 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
|
|
|
|
## What further configs will be supported?
|
|
|
|
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.
|
|
|
|
## Installation
|
|
|
|
### VS Code Extension
|
|
|
|
[Install the extension from the marketplace](https://marketplace.visualstudio.com/items?itemName=myzel394.config-lsp)
|
|
|
|
Alternatively, you can also manually install the extension:
|
|
|
|
1. Download the latest extension version from the [release page](https://github.com/Myzel394/config-lsp/releases) - You can find the extension under the "assets" section. The filename ends with `.vsix`
|
|
2. Open VS Code
|
|
3. Open the extensions sidebar
|
|
4. In the top bar, click on the three dots and select "Install from VSIX..."
|
|
5. Select the just downloaded `.vsix` file
|
|
6. You may need to restart VS Code
|
|
7. Enjoy!
|
|
|
|
### Manual installation
|
|
|
|
To use `config-lsp` in any other editor, you'll need to install it manually.
|
|
Don't worry, it's easy!
|
|
|
|
#### Installing the latest Binary
|
|
|
|
##### Brew
|
|
|
|
```sh
|
|
brew install myzel394/formulae/config-lsp
|
|
```
|
|
|
|
##### Manual Binary
|
|
|
|
Download the latest binary from the [releases page](https://github.com/Myzel394/config-lsp/releases) and put it in your PATH.
|
|
|
|
##### Compiling
|
|
|
|
You can either compile the binary using go:
|
|
|
|
```sh
|
|
go build -o config-lsp
|
|
```
|
|
|
|
or build it using Nix:
|
|
|
|
```sh
|
|
nix flake build
|
|
```
|
|
|
|
#### Neovim installation
|
|
|
|
Using [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) you can add `config-lsp` by adding the following to your `lsp.lua` (filename might differ):
|
|
|
|
```lua
|
|
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 {}
|
|
`````
|
|
|
|
## Supporting config-lsp
|
|
|
|
You can either contribute to the project, [see CONTRIBUTING.md](CONTRIBUTING.md), or you can sponsor me via [GitHub Sponsors](https://github.com/sponsors/Myzel394) or via [crypto currencies](https://github.com/Myzel394/contact-me?tab=readme-ov-file#donations).
|
|
|
|
Oh and spreading the word about config-lsp is also a great way to support the project :)
|
|
|
|
|