pub trait InputHighlighter {
// Required methods
fn language(&self) -> SharedString;
fn update(
&mut self,
edit: Option<InputEdit>,
text: &Rope,
folding: bool,
window: &mut Window,
cx: &mut Context<'_, EditorState>,
);
fn styles(
&self,
range: &Range<usize>,
resolver: &dyn HighlightStyleResolver,
) -> Vec<(Range<usize>, HighlightStyle)>;
fn fold_ranges(&self, text: &Rope) -> Vec<FoldRange>;
// Provided method
fn fold_ranges_for_edit(
&self,
range: Range<usize>,
text: &Rope,
) -> Vec<FoldRange> { ... }
}Expand description
Parser-independent syntax highlighting seam consumed by the Base editor.
Implementations own parsing, incremental state, and language-specific behavior. Base only asks for styled ranges and fold candidates.
Required Methods§
fn language(&self) -> SharedString
fn update( &mut self, edit: Option<InputEdit>, text: &Rope, folding: bool, window: &mut Window, cx: &mut Context<'_, EditorState>, )
Sourcefn styles(
&self,
range: &Range<usize>,
resolver: &dyn HighlightStyleResolver,
) -> Vec<(Range<usize>, HighlightStyle)>
fn styles( &self, range: &Range<usize>, resolver: &dyn HighlightStyleResolver, ) -> Vec<(Range<usize>, HighlightStyle)>
Return ordered, non-overlapping style runs that fully cover range.
Use HighlightStyle::default for text without a semantic style.
fn fold_ranges(&self, text: &Rope) -> Vec<FoldRange>
Provided Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".