Skip to content

TUI ext panel: typing in search input doesn't filter visible items #483

Description

@JDonaghy

Symptom

In an extension-provided sidebar panel, pressing `/` correctly activates the search input row (chrome flips into edit mode, cursor appears). Typed characters update `engine.ext_panel_input_text[panel_name]` and the text shows in the input row — but the item list doesn't filter.

Cause (suspected)

The engine doesn't filter items itself. It fires a `panel_input` plugin event (see `src/core/engine/ext_panel.rs` — the `/` handler at line ~242 flips `ext_panel_input_active = true` but no filter pass runs). Plugins are expected to subscribe to `panel_input` and re-emit a filtered item list via `set_items` — but no shipping plugin appears to do that, so user-facing behavior is "typing in the search box is a no-op visually".

Repro

  1. Open any extension panel (e.g. `git_insights`).
  2. Press `/`. Input row appears.
  3. Type a substring of a visible item.
  4. Item list does not narrow.

What good would look like

Either:

  • Plugin-side fix per panel: each panel's plugin subscribes to `panel_input` and filters.
  • Engine-side default filter: if the plugin doesn't intercept, the engine could provide a default case-insensitive substring filter over `item.text`. Trivial to add in `ext_panel_visible_indices()` since visibility already runs through there.

The engine-side default is probably better — it gives plugins a reasonable fallback while leaving the override hook in place.

Notes

Surfaced during smoke testing of #476 / PR #482. Migration didn't change the input or filter path; this behavior predates the TreeView migration.

Activity

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

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions