Repository navigation
Quick info (Ctrl+G I, gi) shows what the name under the cursor is, in a box under the line #591
Copy link
Copy link
Open
Labels
a-team:devClaimed by the a-team DevClaimed by the a-team Dev
Description
Context
Reading code, the only way to see what a name is (its type, signature, doc comment) is Go to definition and Back. This adds Quick info: one key asks the file's language server for hover at the caret and shows the answer in a box under (or above) the line. It reuses Go to definition's language-server plumbing and its status-bar messages. Pitch: #574.
Acceptance criteria
- Quick info is in the palette (F1), in the Go menu right after Go to definition with menu letter
i, onCtrl+G I, and on mnemonicgi. It only runs in an editor, and is greyed out like Go to definition while the file's language server isn't ready. - In a C# file with the server ready, with the caret on a method call,
Ctrl+G Iopens a bordered box titledQuick infojust below the caret's line, showing the method's signature highlighted with C# colours, then its doc comment as wrapped text. - On a line near the bottom of the editor, the box opens above the line instead.
- The box is only as wide as its content needs, never wider than the editor, and at most 12 rows tall. When the answer is longer,
↑/↓/PgUp/PgDnscroll it. - Its keys are buttons on its bottom border,
Esc CloseandEnter Go to definition, and clicking each does the same as the key. F1 while it's open lists them. -
Esccloses it; the caret hasn't moved. -
Entercloses it and jumps to the definition, exactly asgdwould (Back returns). - Any other key closes it and does what it would in the editor: typing
xcloses it and insertsx;→closes it and moves the caret. - On whitespace or a keyword with no answer, no box opens and the status bar says
Nothing to show here. - While the server is still loading, or no server is configured for the language, the status bar says so the same way
gddoes, withgd's install hint. - Pressing
Ctrl+G Itwice quickly on different names shows only the second answer. - It works the same in another language with a server configured in Settings › Language Servers (e.g. Python or TypeScript), not just C#.
- Over SSH (or with the window resized narrow), the box still fits and draws without artefacts.
Tests
- The hover request is sent at the caret and the reply parsed for every shape the protocol allows: plain string,
MarkedString,MarkedString[], andMarkupContent(markdown with fenced code, and plaintext). Fenced code becomes the highlighted signature; the rest becomes wrapped prose. - Placement: below when there's room, above when there's more room above, width clamped to the editor, height to 12 rows.
- Scrolling keys move the content and are consumed;
Esc,Enterand pass-through keys close it with the right side effect. - An empty or null reply gives
Nothing to show here; a stale reply (superseded request) is dropped. - The command's enablement matches Go to definition's.
- The
gimnemonic andCtrl+G Ibinding don't collide with existing ones.
Out of scope
- Opening on mouse hover.
- Signature help while typing a call's arguments.
- Merging answers from several servers.
- Links inside the doc comment, or rendering markdown beyond code vs prose.
- Peek definition (an embedded editor showing the declaration).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
a-team:devClaimed by the a-team DevClaimed by the a-team Dev
Activity
a-team-app commentedon Oct 23, 2026
Draft PR #595 is up.
Merge origin/main into milestone-591-quick-info
jamescrosswell commentedon Oct 23, 2026
I can get info on the
GraphemeHelperbut I can't go to the source definition. Maybe as a follow issue up we could navigate to external source (which is something Jetbrains let's you do).Also, as another follow-up - I wanted to either copy a permalink to a line of code or open that line of code in GitHub... I can't do either of those at the moment.
a-team-app commentedon Oct 23, 2026
Thanks. Opened both as follow-ups on the board as Ideas:
PR #595 is unchanged: it's green and waiting for you.