NS5 slice: Add LSP navigation and symbol panels #31

Closed
opened 2026-06-20 23:28:19 +00:00 by tmk241 · 1 comment
Owner

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:

  • Delivery authority: local-commit
  • Tracker authority: this issue may be commented and closed when acceptance passes.
  • Handoff state: committed clean, tracker commented/closed.

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.

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: - Delivery authority: local-commit - Tracker authority: this issue may be commented and closed when acceptance passes. - Handoff state: committed clean, tracker commented/closed. 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.
tmk241 added this to the v1 milestone 2026-06-20 23:28:19 +00:00
tmk241 added the sliceready-for-agentgoal labels 2026-06-20 23:28:19 +00:00
Author
Owner

Implemented in commit 9ed3f8453c (Add LSP navigation and symbol panels).

Verification:

  • zig fmt src/lsp.zig src/tui.zig: pass
  • zig build test: pass
  • zig build: pass
  • zig build run -- --help: pass
  • redgate lint / health: pass

Regular tests: fake LSP definition/reference location payloads parse into lsp:nav:* rows; document/workspace symbol payloads parse into lsp: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.

Implemented in commit 9ed3f8453c09 (Add LSP navigation and symbol panels). Verification: - zig fmt src/lsp.zig src/tui.zig: pass - zig build test: pass - zig build: pass - zig build run -- --help: pass - redgate lint / health: pass Regular tests: fake LSP definition/reference location payloads parse into `lsp:nav:*` rows; document/workspace symbol payloads parse into `lsp: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.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tmk241/mim#31