gotlin/cmd/gotlin-lsp/README.md

39 lines
977 B
Markdown

# gotlin-lsp
Minimal stdio language server for `.gt` files.
Current support:
- `initialize`
- `shutdown`
- `exit`
- `textDocument/didOpen`
- `textDocument/didChange`
- `textDocument/didClose`
- publish diagnostics from the existing Gotlin parser/code generator
- `textDocument/hover` for packages, imports, and top-level functions
- `textDocument/definition` for imported namespaces and top-level functions
- structured resolver/type diagnostics from `lang.Analyze`, including package-context symbols
- optional fallback to `gopls` for hover/definition on Go-imported symbols
Build:
```bash
go build -o ./bin/gotlin-lsp ./cmd/gotlin-lsp
```
Use your editor's custom LSP configuration to launch:
```bash
./bin/gotlin-lsp
```
## gopls bridge
If `gopls` is installed, `gotlin-lsp` will try to use it as a fallback for hover and definition on Go-imported symbols.
You can set an explicit path with:
```bash
GOTLIN_GOPLS_PATH=/absolute/path/to/gopls ./bin/gotlin-lsp
```