feat: configure cursor distance from viewport edges
This commit is contained in:
@@ -93,6 +93,7 @@ pub struct FilePicker {
|
||||
tree_for_node: Vec<usize>,
|
||||
tree_roots: Vec<usize>,
|
||||
rows: Vec<VisibleRow>,
|
||||
viewport_revision: u64,
|
||||
expanded: HashSet<usize>,
|
||||
filter_collapsed: HashSet<usize>,
|
||||
saved_selection: [Option<usize>; 2],
|
||||
@@ -298,6 +299,7 @@ impl FilePicker {
|
||||
tree: Vec::new(),
|
||||
tree_roots: Vec::new(),
|
||||
rows: Vec::new(),
|
||||
viewport_revision: 0,
|
||||
expanded: HashSet::new(),
|
||||
filter_collapsed: HashSet::new(),
|
||||
saved_selection: [None, None],
|
||||
@@ -346,6 +348,10 @@ impl FilePicker {
|
||||
tree
|
||||
}
|
||||
|
||||
pub(crate) fn viewport_revision(&self) -> u64 {
|
||||
self.viewport_revision
|
||||
}
|
||||
|
||||
pub fn entries(&self) -> impl ExactSizeIterator<Item = FileRow<'_>> + '_ {
|
||||
self.rows.iter().map(|row| {
|
||||
let node = &self.nodes[row.node];
|
||||
@@ -542,6 +548,8 @@ impl FilePicker {
|
||||
}
|
||||
|
||||
fn project(&mut self, selected: Option<usize>, select_match: bool) {
|
||||
static NEXT_REVISION: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(1);
|
||||
self.viewport_revision = NEXT_REVISION.fetch_add(1, std::sync::atomic::Ordering::Relaxed);
|
||||
let query = self.query.to_lowercase();
|
||||
let tokens: Vec<_> = query.split_whitespace().collect();
|
||||
let matches = |node: &Node| tokens.iter().all(|token| node.search_label.contains(token));
|
||||
|
||||
Reference in New Issue
Block a user