Feat: lots of improvements

This commit is contained in:
2026-02-08 13:52:40 +01:00
parent 2c1765effa
commit f6132bdd70
34 changed files with 333 additions and 123 deletions

View File

@@ -10,7 +10,7 @@ use ratatui::{
};
use tui_textarea::TextArea;
pub type Highlighter<'a> = &'a dyn Fn(usize, &str) -> Vec<(Style, String)>;
pub type Highlighter<'a> = &'a dyn Fn(usize, &str) -> Vec<(Style, String, bool)>;
#[derive(Clone)]
pub struct CompletionCandidate {
@@ -452,21 +452,25 @@ impl Editor {
let mut spans: Vec<Span> = Vec::new();
let mut col = 0;
for (base_style, text) in tokens {
for (base_style, text, is_annotation) in tokens {
for ch in text.chars() {
let is_cursor = row == cursor_row && col == cursor_col;
let is_selected = is_in_selection(row, col, selection);
let style = if is_cursor {
cursor_style
} else if is_selected {
base_style.bg(selection_style.bg.unwrap())
} else {
let style = if is_annotation {
base_style
} else {
let is_cursor = row == cursor_row && col == cursor_col;
let is_selected = is_in_selection(row, col, selection);
if is_cursor {
cursor_style
} else if is_selected {
base_style.bg(selection_style.bg.unwrap())
} else {
base_style
}
};
spans.push(Span::styled(ch.to_string(), style));
col += 1;
if !is_annotation {
col += 1;
}
}
}