Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

ListView does not render the first selection after reuse in Vi insert mode #5178

Copy link
Copy link

Description

@Greg-T8
Issue body actions

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest released version
  • Search the existing issues, especially the pinned issues.

Exception report

N/A

Screenshot

Long-time Vi mode user. For a couple of years, I've been dealing w/ an obscure behavior and finally taking time to report it.

Issue: In Vi insert mode with PredictionViewStyle set to ListView, the first DownArrow press after reusing the list selects a history item internally but fails to render its highlight until another navigation key is pressed.

More Detail:

When using these PSReadLine options:

Set-PSReadLineOption -PredictionViewStyle ListView
Set-PSReadLineOption -EditMode Vi

the first DownArrow press in the prediction selects a history entry internally without visually rendering the selection highlight.

Pressing Enter at that point executes/accepts the first history item, which indicates that the item was selected despite no visible highlight. Pressing DownArrow a second time causes the selection highlight to appear. After that, UpArrow and DownArrow behave and render normally.

Note: The issue does not occur the first time ListView is used in a new PowerShell session; it only begins after ListView has already been used once.

Entering Vi normal mode and then returning to insert mode resets the behavior, e.g. Esc + i. After that, the first DownArrow press renders correctly again, until the issue recurs.

Image

Environment data

PS Version: 7.6.3
PS HostName: ConsoleHost
PSReadLine Version: 2.4.5
PSReadLine EditMode: Vi
OS: 10.0.26100.1 (WinBuild.160101.0800)
BufferWidth: 180
BufferHeight: 50

Steps to reproduce

  1. Run pwsh -noprofile
  2. Run Set-PSReadLineOption -EditMode Vi
  3. Run Set-PSReadlineOption -PredictionViewStyle ListView
  4. In Vi insert mode, type text that produces history predictions
  5. Use the ListView and navigate it with DownArrow (on the first use in a new session, the highlight appears as expected)
  6. Complete or dismiss the ListView (e.g. ESC to dismiss and cc to clear the line/command)
  7. Trigger ListView again and press DownArrow once

On the second and later uses of ListView:

  • The first DownArrow press appears to do nothing visually.
  • No entry is highlighted.
  • Pressing Enter accepts or runs the first list item, indicating that the selection changed internally.
  • Pressing DownArrow a second time causes the visual highlight to appear.
  • Subsequent UpArrow and DownArrow presses render correctly.

Expected behavior

  • Each DownArrow press in ListView should visibly move the selection to the next prediction.
  • On the first press, the first matching history entry should be highlighted immediately.
  • The visible highlight and the internally selected item should always remain in sync.
  • This should behave consistently every time ListView is opened while in Vi insert mode.

Actual behavior

  • After ListView has been used once, reopening it in Vi insert mode produces no visible highlight on the first DownArrow press.
  • The first item appears unselected, but it is selected internally.
  • Pressing Enter accepts/runs that first item despite the missing highlight.
  • A second DownArrow press makes the highlight appear, after which navigation renders normally.
  • Pressing Esc and then i temporarily resets the behavior.
Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs-Triage 🔍It's a new issue that core contributor team needs to triage.It's a new issue that core contributor team needs to triage.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.