NS5 slice: Add LSP navigation and symbol panels #31
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
OBJECTIVE: Implement go-to-definition, references, document symbols, and workspace symbols via panels.
AUTHORITY: Parent #5
NS5: Syntax and LSP coding intelligence; PRODUCT.md; REQUIREMENTS.md (PRODUCT.md; req: coding/002-003; req: ui/002; req: governance/002).AGENT AUTHORITY:
PARENT: #5 via explicit issue link and parent checklist.
SCOPE: The smallest source/docs/tests needed to make this behavior real and verified.
BOUNDARIES: No fuzzy UI fork separate from panel primitive.
ACCEPTANCE: Fake LSP responses populate panels and selection changes the active buffer/cursor correctly.
VERIFICATION: Run the cheapest command that proves acceptance. Include regular tests for the intended payoff and adversarial tests for realistic failure, boundary, or regression cases. If no implementation test command exists yet, create/record the canonical command in AGENTS.md as part of the slice.
BLOCKERS: none
GOAL: Implement this vertical slice to the ACCEPTANCE above, keep the repo clean, cite relevant
req:anchors in code/tests where applicable, and close only after verification passes.Implemented in commit
9ed3f8453c(Add LSP navigation and symbol panels).Verification:
Regular tests: fake LSP definition/reference location payloads parse into
lsp:nav:*rows; document/workspace symbol payloads parse intolsp:symbol:*rows; TUI commands render definition, references, document-symbol, and workspace-symbol panels through the shared list primitive; selected navigation rows jump the current buffer cursor to the returned line/column.Adversarial tests: null/no-result rows, invalid kinds/scopes, malformed payloads, malformed rows, and failed open-selected operations are rejected without corrupting the editor buffer.
Boundary: panel-visible definition/references/document-symbol/workspace-symbol result handling and current-buffer jump only. No fuzzy finder fork, real server output stream parser, cross-file file loading, hover/signature UX, code actions, or background LSP manager added.