https://github.com/messense/multi-lsp-proxy
A LSP proxy to multiple language servers
https://github.com/messense/multi-lsp-proxy
helix helix-editor language-server-protocol
Last synced: 8 months ago
JSON representation
A LSP proxy to multiple language servers
- Host: GitHub
- URL: https://github.com/messense/multi-lsp-proxy
- Owner: messense
- License: mit
- Archived: true
- Created: 2023-01-15T01:44:21.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-01-15T09:22:02.000Z (over 2 years ago)
- Last Synced: 2025-01-19T07:46:06.069Z (9 months ago)
- Topics: helix, helix-editor, language-server-protocol
- Language: Rust
- Homepage:
- Size: 55.7 KB
- Stars: 50
- Watchers: 4
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# multi-lsp-proxy
[](https://github.com/messense/multi-lsp-proxy/actions?query=workflow%3ACI)
[](https://pypi.org/project/multi-lsp-proxy)
[](https://crates.io/crates/multi-lsp-proxy)A **barely working** LSP Proxy to multiple language servers, to use multiple LSPs per language in
editors that doesn't support multiple LSPs per language natively like Helix (version 22.12).## Installation
Install with [pipx](https://github.com/pypa/pipx/) is recommended:
```bash
pipx install multi-lsp-proxy
```Pip also works:
```bash
pip install multi-lsp-proxy
```## Usage
```bash
Usage: multi-lsp-proxy [OPTIONS] --configOptions:
-c, --config Configuration file path
-l, --language Select language servers by programming language name
-h, --help Print help
-V, --version Print version
```To use with Helix, set the `language-server` option in `languages.toml`,
below is an example for Python that enables both `pyright-langserver` and `ruff-lsp`:```toml
# Helix languages.toml file
[[language]]
name = "python"
scope = "source.python"
injection-regex = "python"
file-types = ["py", "pyi"]
shebangs = ["python"]
roots = ["pyproject.toml", "setup.py", "Poetry.lock"]
comment-token = "#"
language-server = { command = "multi-lsp-proxy", args = ["--config", "/path/to/multi-lsp-config.toml"] }
auto-format = false
indent = { tab-width = 4, unit = " " }
config = {}
```and configure multi-lsp-proxy in `multi-lsp-proxy.toml`
```toml
log-file = "/tmp/multi-lsp-proxy.log"[[language]]
name = "python"
command = "pyright-langserver"
args = ["--stdio"][[language]]
name = "python"
command = "ruff-lsp"
```## License
This work is released under the MIT license. A copy of the license is provided in the [LICENSE](./LICENSE) file.