add quick-open fuzzy file finder (Ctrl/Cmd+P)
A file picker overlay over the whole workspace, distinct from the command palette. QuickOpenController holds the file list + a subsequence fuzzy filter; the overlay loads the list via files.walk on open, shows RecentFilesService entries on an empty query, and opens the selection through a shared openWorkspaceFile helper (.md → markdown reader bus, else editor.open) that the files panel now also routes through, so recents stay in sync from every open site. Bound to ctrl+p / meta+p with `when: !palette.open` so it never collides with the palette's ctrl+p navigation; in-overlay arrows/enter/ escape reuse the palette's keymap-driven model via quickOpen.* intents. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -54,6 +54,29 @@ class PaletteAcceptIntent extends Intent {
|
||||
const PaletteAcceptIntent();
|
||||
}
|
||||
|
||||
// -- Quick open -------------------------------------------------------------
|
||||
|
||||
/// Open the quick-open file finder (fuzzy file picker), distinct from
|
||||
/// the command palette.
|
||||
class QuickOpenIntent extends Intent {
|
||||
const QuickOpenIntent();
|
||||
}
|
||||
|
||||
/// Highlight the next quick-open result.
|
||||
class QuickOpenSelectNextIntent extends Intent {
|
||||
const QuickOpenSelectNextIntent();
|
||||
}
|
||||
|
||||
/// Highlight the previous quick-open result.
|
||||
class QuickOpenSelectPreviousIntent extends Intent {
|
||||
const QuickOpenSelectPreviousIntent();
|
||||
}
|
||||
|
||||
/// Open the highlighted quick-open result.
|
||||
class QuickOpenAcceptIntent extends Intent {
|
||||
const QuickOpenAcceptIntent();
|
||||
}
|
||||
|
||||
// -- Text scale -------------------------------------------------------------
|
||||
|
||||
class TextScaleIncreaseIntent extends Intent {
|
||||
@@ -95,6 +118,10 @@ final Map<String, Intent Function()> builtinIntents = {
|
||||
'palette.selectNext': () => const PaletteSelectNextIntent(),
|
||||
'palette.selectPrevious': () => const PaletteSelectPreviousIntent(),
|
||||
'palette.accept': () => const PaletteAcceptIntent(),
|
||||
'quickOpen.open': () => const QuickOpenIntent(),
|
||||
'quickOpen.selectNext': () => const QuickOpenSelectNextIntent(),
|
||||
'quickOpen.selectPrevious': () => const QuickOpenSelectPreviousIntent(),
|
||||
'quickOpen.accept': () => const QuickOpenAcceptIntent(),
|
||||
'text.scaleIncrease': () => const TextScaleIncreaseIntent(),
|
||||
'text.scaleDecrease': () => const TextScaleDecreaseIntent(),
|
||||
'text.scaleReset': () => const TextScaleResetIntent(),
|
||||
|
||||
Reference in New Issue
Block a user