(data: &mut SceneNodeData, project_root: &str)
| 3581 | |
| 3582 | /// Dirs (trailing `/`, plus the synthetic `res://` root) that contain at |
| 3583 | /// least one entry in the full unfiltered file list. Collapsed folders keep |
| 3584 | /// their disclosure triangle from this set even though their contents are |
| 3585 | /// culled from the visible rows. |
| 3586 | fn file_dirs_with_children(state: &EditorState) -> std::collections::HashSet<String> { |
| 3587 | let mut out = std::collections::HashSet::new(); |
| 3588 | for path in &state.file_paths { |
| 3589 | let trimmed = path.strip_suffix('/').unwrap_or(path); |
| 3590 | if let Some(pos) = trimmed.rfind('/') { |
| 3591 | out.insert(trimmed[..pos + 1].to_string()); |
| 3592 | } |
| 3593 | } |
| 3594 | out |
| 3595 | } |
| 3596 | |
| 3597 | fn filtered_file_cache_key(state: &EditorState) -> String { |
| 3598 | format!( |
no test coverage detected