| id | 203 |
|---|---|
| title | Split internal/lsp/server.go and symbols.go |
| status | ✅ |
| summary | server.go (1 536 lines) and symbols.go (1 385 lines) both exceed the 1 000-line threshold. Split each file along its natural dispatch group boundaries. |
| model | |
| depends-on |
internal/lsp/server.go is 1 536 lines. internal/lsp/symbols.go is 1 385 lines. Both exceed the 1 000-line ceiling from the audit checklist. Both contain LSP capability handlers that can live in their own files. The pattern already exists: rename.go and completion.go each own a dispatch group.
- Identify the dispatch groups in
server.go(lifecycle, doc-sync, code-action, diagnostics push). - Move each group to a new file
(
server_lifecycle.go, etc.). - Identify the dispatch groups in
symbols.go(document symbols, workspace symbols, call hierarchy). - Move each group to a new file
(
symbols_document.go, etc.). - Verify no file in
internal/lsp/exceeds 1 000 lines. - Run
go build ./...andgo test ./....
- No non-test production file under
internal/lsp/exceeds 1 000 lines (*_test.gofiles are out of scope). -
go build ./...clean. -
go test ./...passes (LSP integration tests included). -
go tool golangci-lint runclean.