| 3525 | out.push("res"); |
| 3526 | } |
| 3527 | if out.is_empty() { |
| 3528 | String::new() |
| 3529 | } else { |
| 3530 | format!(" {}", out.join(" ")) |
| 3531 | } |
| 3532 | } |
| 3533 | |
| 3534 | pub fn picker_rows(state: &EditorState, filter: &str, offset: usize) -> Vec<String> { |
| 3535 | picker_node_types(state, filter) |
| 3536 | .into_iter() |
| 3537 | .skip(offset) |
| 3538 | .take(MAX_NODE_PICKER_ROWS) |
| 3539 | .map(|node_type| picker_node_row(state, node_type)) |
| 3540 | .collect() |
| 3541 | } |
| 3542 | |
| 3543 | pub fn filtered_file_paths(state: &EditorState) -> Vec<String> { |
| 3544 | let cache_key = filtered_file_cache_key(state); |
| 3545 | let cache = FILTERED_FILE_CACHE.get_or_init(|| Mutex::new(None)); |
| 3546 | if let Ok(cache) = cache.lock() |
| 3547 | && let Some(cached) = cache.as_ref() |