- Implemented channel-based debouncing (20ms) in MainViewModel to fix result flickering (matches WPF behavior)
- Added ResultForUpdate struct and ProcessResultUpdatesAsync for batching updates
- Added HighlightTextConverter and TextBlockHelper for bolding matched query terms
- Updated ResultListBox to display highlighted title and subtitle
- Use DynamicData SourceList with automatic sorting by score descending
- Add ReplaceResults() with EditDiff for minimal UI updates (reduces flickering)
- Keep previous results visible while typing until new results arrive
- Add ImageLoader with Windows Shell API (IShellItemImageFactory) for exe/ico icons
- Use AlphaFormat.Unpremul to correctly render transparent icons without white borders
- Query all plugins in parallel and merge/sort results globally
Create Flow.Launcher.Avalonia project as foundation for migrating from WPF to Avalonia UI framework.
Key components:
- MainWindow with query box and results list (matching WPF layout)
- ViewModels: MainViewModel, ResultsViewModel, ResultViewModel
- Themes/Base.axaml with converted styles from WPF
- FluentAvaloniaUI for Windows 11 styling
- References existing Core/Infrastructure/Plugin projects
The project builds and runs alongside the existing WPF application.
This is Phase 1 of the incremental migration approach.