NS5 slice: Add viewport-aware LSP hover, signature help, and parameter navigation #42
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: Add mobile-friendly LSP hover/signature help and parameter navigation inside function calls, presented through the shared protocol/panel model without overwhelming narrow terminals.
AUTHORITY: Parent #5
NS5: Syntax and LSP coding intelligence; PRODUCT.md; REQUIREMENTS.md (req: coding/003, req: coding/004, req: coding/005, req: ui/002, req: testing/001-004).AGENT AUTHORITY:
PARENT: #5 via explicit issue link and parent checklist.
SCOPE: LSP hover/signature requests, narrow-viewport presentation, active parameter display, next/previous parameter commands when syntax/LSP data supports them, and tests/fakes needed to prove the behavior.
BOUNDARIES: No desktop popup clone that assumes wide screens; no runtime config; no language-server installer; no separate UI model outside the shared panel/command grammar; no snippets engine.
ACCEPTANCE: A fake or fixture LSP server can return hover and signature help;
mimdisplays it legibly on an iPhone-width terminal, identifies the active parameter when available, allows thumb-friendly next/previous parameter movement inside a call, and degrades clearly when the server lacks support or the cursor is outside a call.VERIFICATION: Run the cheapest command that proves acceptance. Include regular tests for hover/signature display and parameter movement, plus adversarial tests for long docs, tiny viewport, missing LSP capability, malformed/empty signature response, cursor outside call, and UTF-8 parameter text. Prefer protocol/headless/replay/fixture tests over brittle UI snapshots unless rendering behavior is the claim.
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
d1141c89a2(Add LSP hover and signature panels).Verification:
Regular tests: hover payloads render viewport-bounded shared-panel rows; signatureHelp payloads render active signature/parameter rows;
lsp_param_nextandlsp_param_previousmove the cursor between parameters in the current call and report the active parameter in a panel row. Narrow viewport test asserts rendered lines fit.Adversarial tests: malformed hover/signature payloads are rejected, non-call parameter movement reports
lsp:param:outside_call, and the current editor buffer remains intact.Boundary: hover, signature help, and current-call parameter movement only. No full LSP stream parser, background server manager, semantic tokens, code actions, or cross-file navigation added.