project panel: Add indent guides (#18260)

See #12673



https://github.com/user-attachments/assets/94079afc-a851-4206-9c9b-4fad3542334e



TODO:
- [x] Make active indent guides work for autofolded directories
- [x] Figure out which theme colors to use
- [x] Fix horizontal scrolling
- [x] Make indent guides easier to click
- [x] Fix selected background flashing when hovering over entry/indent
guide
- [x] Docs

Release Notes:

- Added indent guides to the project panel
This commit is contained in:
Bennet Bo Fenner
2024-10-24 13:07:20 +02:00
committed by GitHub
parent e040b200bc
commit 4214ed927f
13 changed files with 975 additions and 41 deletions
+21
View File
@@ -322,6 +322,15 @@ pub struct ThemeColorsContent {
#[serde(rename = "panel.focused_border")]
pub panel_focused_border: Option<String>,
#[serde(rename = "panel.indent_guide")]
pub panel_indent_guide: Option<String>,
#[serde(rename = "panel.indent_guide_hover")]
pub panel_indent_guide_hover: Option<String>,
#[serde(rename = "panel.indent_guide_active")]
pub panel_indent_guide_active: Option<String>,
#[serde(rename = "pane.focused_border")]
pub pane_focused_border: Option<String>,
@@ -710,6 +719,18 @@ impl ThemeColorsContent {
.panel_focused_border
.as_ref()
.and_then(|color| try_parse_color(color).ok()),
panel_indent_guide: self
.panel_indent_guide
.as_ref()
.and_then(|color| try_parse_color(color).ok()),
panel_indent_guide_hover: self
.panel_indent_guide_hover
.as_ref()
.and_then(|color| try_parse_color(color).ok()),
panel_indent_guide_active: self
.panel_indent_guide_active
.as_ref()
.and_then(|color| try_parse_color(color).ok()),
pane_focused_border: self
.pane_focused_border
.as_ref()