RankedListPrompt<T> class

RankedListPrompt – composable system for searchable lists with custom ranking.

Extends the search pattern with:

  • Custom ranking/scoring for each item
  • Match highlight spans for visual feedback
  • Fuzzy or substring matching modes

Design principles:

  • Composition over inheritance
  • Separation of concerns (ranking is separate from navigation/rendering)
  • DRY: Centralizes the ranked search pattern (CommandPalette, etc.)

Usage:

final prompt = RankedListPrompt<CommandEntry>(
  title: 'Command Palette',
  items: commands,
  rankItem: (item, query, useFuzzy) => fuzzyMatch(item.title, query),
  itemLabel: (item) => item.title,
);

final result = prompt.run();

Constructors

RankedListPrompt({required String title, required List<T> items, PromptTheme theme = PromptTheme.dark, int maxVisible = 12, bool alwaysShowSearch = true, bool initialFuzzyMode = true, int reservedLines = 8})

Properties

alwaysShowSearch → bool
Retained configuration flag; search input is always visible and active.
final
bindings → KeyBindings
Current key bindings.
no setter
hashCode → int
The hash code for this object.
no setterinherited
initialFuzzyMode → bool
Initial search mode (true = fuzzy, false = substring).
final
items → List<T>
All items (before ranking).
final
maxVisible → int
Maximum visible items (viewport size).
final
Current navigation state.
no setter
queryInput → TextInputBuffer
Current search query input.
no setter
ranked → List<RankedItem<T>>
Currently ranked items.
no setter
reservedLines → int
Terminal lines to reserve for chrome.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
theme → PromptTheme
Theme for styling.
final
title → String
Title for the frame header.
final
useFuzzy → bool
Whether fuzzy mode is active.
no setter
wasCancelled → bool
Whether the prompt was cancelled.
no setter

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
run({required RankResult? rankItem(T item, String query, bool useFuzzy), required String itemLabel(T item), String? itemSubtitle(T item)?, void renderItem(FrameContext ctx, RankedItem<T> rankedItem, int index, bool isFocused, String query)?, void beforeItems(FrameContext ctx, String query, bool useFuzzy, int matchCount)?, KeyBindings? extraBindings}) → T?
Runs the ranked list prompt.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited