renderCommandPaletteBody function
List<String>
renderCommandPaletteBody({
- required String query,
- required List<
CommandPaletteItem> items, - required int selectedIndex,
- required CommandPaletteWindow window,
- String emptyLabel = 'No matching commands',
Renders the shared query, rows, and overflow footer used by TEA hosts.
Implementation
List<String> renderCommandPaletteBody({
required String query,
required List<CommandPaletteItem> items,
required int selectedIndex,
required CommandPaletteWindow window,
String emptyLabel = 'No matching commands',
}) {
final lines = <String>['> $query', ''];
for (var index = window.start; index < window.end; index++) {
final selected = index == selectedIndex;
lines.add('${selected ? '❯' : ' '} ${items[index].label}');
}
if (items.isEmpty) lines.add(' $emptyLabel');
if (items.length > window.viewportSize) {
lines.add(
' ${selectedIndex + 1}/${items.length}'
'${window.hasMoreAbove ? ' ↑ more' : ''}'
'${window.hasMoreBelow ? ' ↓ more' : ''}',
);
}
return lines;
}