Skip to content

Quick info (Ctrl+G I, gi) shows what the name under the cursor is, in a box under the line #591

Open

Description

@a-team-app

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, on Ctrl+G I, and on mnemonic gi. 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 I opens a bordered box titled Quick info just 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/PgDn scroll it.
  • Its keys are buttons on its bottom border, Esc Close and Enter Go to definition, and clicking each does the same as the key. F1 while it's open lists them.
  • Esc closes it; the caret hasn't moved.
  • Enter closes it and jumps to the definition, exactly as gd would (Back returns).
  • Any other key closes it and does what it would in the editor: typing x closes it and inserts x; → 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 gd does, with gd's install hint.
  • Pressing Ctrl+G I twice 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[], and MarkupContent (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, Enter and 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 gi mnemonic and Ctrl+G I binding 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).

Activity

  1. a-team-app commented on Oct 23, 2026

    @a-team-app
    ContributorAuthor

    Draft PR #595 is up.

  2. added a commit that references this issue on Oct 23, 2026
    1690ff8
  3. jamescrosswell commented on Oct 23, 2026

    @jamescrosswell
    Contributor

    I can get info on the GraphemeHelper but 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.

  4. a-team-app commented on Oct 23, 2026

    @a-team-app
    ContributorAuthor

    Thanks. Opened both as follow-ups on the board as Ideas:

    PR #595 is unchanged: it's green and waiting for you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    a-team:devClaimed by the a-team Dev

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions