NS5 slice: Show LSP diagnostics through panels/status #30
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: Receive diagnostics and display them through the shared panel/status model with jump-to-location.
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 separate diagnostics UI model.
ACCEPTANCE: Fake LSP diagnostics appear in a diagnostics panel and selecting one jumps to the correct location.
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
56975c3cf3(Add LSP diagnostics panel).Verification:
Regular tests: LSP publishDiagnostics JSON payloads parse into panel-safe rows with count, severity, 1-based line/column, URI preview, and sanitized message. TUI
lsp_diagnostics <json>renders those rows in the shared panel, andlsp_diagnostics_open_selectedjumps to the selected diagnostic location in the current buffer. Byte-offset mapping is covered separately for multi-line buffers.Adversarial tests: malformed diagnostics, missing required fields, summary rows, impossible offsets, and malformed TUI diagnostic commands are rejected without corrupting the editor buffer.
Boundary: diagnostics extraction/display/jump only. No server-output stream parser, diagnostic persistence, hover/signature/jump UX, code actions, severity styling/theme, or background LSP server manager added.