Trait cosmic::iced_runtime::core::text::Highlighter
source · pub trait Highlighter: 'static {
type Settings: PartialEq + Clone;
type Highlight;
type Iterator<'a>: Iterator<Item = (Range<usize>, Self::Highlight)>
where Self: 'a;
// Required methods
fn new(settings: &Self::Settings) -> Self;
fn update(&mut self, new_settings: &Self::Settings);
fn change_line(&mut self, line: usize);
fn highlight_line(&mut self, line: &str) -> Self::Iterator<'_>;
fn current_line(&self) -> usize;
}
Expand description
A type capable of highlighting text.
A Highlighter
highlights lines in sequence. When a line changes,
it must be notified and the lines after the changed one must be fed
again to the Highlighter
.
Required Associated Types§
sourcetype Settings: PartialEq + Clone
type Settings: PartialEq + Clone
The settings to configure the Highlighter
.
sourcetype Highlight
type Highlight
The output of the Highlighter
.
Required Methods§
sourcefn new(settings: &Self::Settings) -> Self
fn new(settings: &Self::Settings) -> Self
Creates a new Highlighter
from its Self::Settings
.
sourcefn update(&mut self, new_settings: &Self::Settings)
fn update(&mut self, new_settings: &Self::Settings)
Updates the Highlighter
with some new Self::Settings
.
sourcefn change_line(&mut self, line: usize)
fn change_line(&mut self, line: usize)
Notifies the Highlighter
that the line at the given index has changed.
sourcefn highlight_line(&mut self, line: &str) -> Self::Iterator<'_>
fn highlight_line(&mut self, line: &str) -> Self::Iterator<'_>
Highlights the given line.
If a line changed prior to this, the first line provided here will be the line that changed.
sourcefn current_line(&self) -> usize
fn current_line(&self) -> usize
Returns the current line of the Highlighter
.
If change_line
has been called, this will normally be the least index
that changed.
Object Safety§
This trait is not object safe.