reovim_driver_picker/lib.rs
1//! Picker driver for reovim.
2//!
3//! This driver defines the interface for pluggable fuzzy finder data sources.
4//! Following the mechanism/policy separation:
5//!
6//! - **Mechanism** (this driver): `Picker` trait, types, `PickerRegistry`, `PickerEngine`
7//! - **Policy** (modules): Implementations like `FilesPicker`, `BuffersPicker`, `GrepPicker`
8//!
9//! # Architecture
10//!
11//! ```text
12//! server/lib/drivers/picker/ -> Trait + Types + Registry + Engine (MECHANISM)
13//! server/modules/microscope/ -> Picker implementations + orchestration (POLICY)
14//! ```
15
16mod action;
17mod context;
18mod engine;
19mod item;
20mod picker;
21mod preview;
22mod registry;
23
24pub use {
25 action::PickerAction,
26 context::{BufferInfo, CommandInfo, OptionInfo, PickerContext},
27 engine::{EngineItem, PickerEngine, TickStatus, push_item, push_items},
28 item::{PickerData, PickerItem, file_type_icon, icon_for_path},
29 picker::Picker,
30 preview::{PreviewContent, PreviewHighlight},
31 registry::PickerRegistry,
32 reovim_driver_session::SessionRuntime,
33};