Patch the primary cursor with insert and select styles

This commit is contained in:
wojciechkepka 2021-06-23 08:31:53 +02:00 committed by Blaž Hrastnik
parent c534fdefdc
commit 3606d8bd24

View file

@ -282,16 +282,28 @@ impl EditorView {
Range::new(start, end)
};
let mode = doc.mode();
let base_cursor_style = theme
.try_get("ui.cursor")
.unwrap_or_else(|| Style::default().add_modifier(Modifier::REVERSED));
let cursor_style = match doc.mode() {
let cursor_style = match mode {
Mode::Insert => theme.try_get("ui.cursor.insert"),
Mode::Select => theme.try_get("ui.cursor.select"),
Mode::Normal => Some(base_cursor_style),
}
.unwrap_or(base_cursor_style);
let primary_cursor_style = theme.try_get("ui.cursor.primary").unwrap_or(cursor_style);
let primary_cursor_style = theme
.try_get("ui.cursor.primary")
.map(|style| {
if mode != Mode::Normal {
// we want to make sure that the insert and select highlights
// also affect the primary cursor if set
style.patch(cursor_style)
} else {
style
}
})
.unwrap_or(cursor_style);
let selection_style = theme.get("ui.selection");
let primary_selection_style = theme