39 lines
977 B
Markdown
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
|
|
```
|