@@ -281,9 +281,17 @@ impl EditorView {
281281 let end = text.line_to_char(last_line + 1);
282282 Range::new(start, end)
283283 };
284− let cursor_style = Style::default()
285− // .bg(Color::Rgb(255, 255, 255))
286− .add_modifier(Modifier::REVERSED);
284+ let scope = match doc.mode() {
285+ Mode::Insert => "ui.cursor.insert",
286+ Mode::Select => "ui.cursor.select",
287+ Mode::Normal => "ui.cursor",
288+ };
289+ let cursor_style = theme.try_get(scope).unwrap_or_else(|| {
290+ theme
291+ //if cursor.insert or cursor.select was not present try to default to cursor
292+ .try_get("ui.cursor")
293+ .unwrap_or_else(|| Style::default().add_modifier(Modifier::REVERSED))
294+ });
287295
288296 let selection_style = theme.get("ui.selection");
289297
@@ -388,9 +396,12 @@ impl EditorView {
388396 if (pos.col as u16) < viewport.width + view.first_col as u16
389397 && pos.col >= view.first_col
390398 {
391− let style = Style::default()
392− .add_modifier(Modifier::REVERSED)
393− .add_modifier(Modifier::DIM);
399+ let style =
400+ theme.try_get("ui.cursor.match").unwrap_or_else(|| {
401+ Style::default()
402+ .add_modifier(Modifier::REVERSED)
403+ .add_modifier(Modifier::DIM)
404+ });
394405
395406 surface
396407 .get_mut(