pub enum HighlightEngine {
TreeSitter(Box<Highlighter>),
TextMate(Box<TextMateEngine>),
None,
}Expand description
Unified highlighting engine supporting multiple backends
Variants§
TreeSitter(Box<Highlighter>)
Tree-sitter based highlighting (built-in languages)
TextMate(Box<TextMateEngine>)
TextMate grammar based highlighting
None
No highlighting available
Implementations§
Source§impl HighlightEngine
impl HighlightEngine
Sourcepub fn for_file(path: &Path, registry: &GrammarRegistry) -> Self
pub fn for_file(path: &Path, registry: &GrammarRegistry) -> Self
Create a highlighting engine for a file
Always uses syntect/TextMate for highlighting, but detects tree-sitter language for other features (indentation, semantic highlighting).
Sourcepub fn for_file_with_languages(
path: &Path,
registry: &GrammarRegistry,
languages: &HashMap<String, LanguageConfig>,
) -> Self
pub fn for_file_with_languages( path: &Path, registry: &GrammarRegistry, languages: &HashMap<String, LanguageConfig>, ) -> Self
Create a highlighting engine for a file, using language configuration for detection.
This method checks the provided languages configuration for filename and extension matches before falling back to built-in detection. This allows users to configure custom filename patterns (like PKGBUILD for bash) that will be respected for syntax highlighting.
Sourcepub fn for_file_with_languages_and_preference(
path: &Path,
registry: &GrammarRegistry,
languages: &HashMap<String, LanguageConfig>,
preference: HighlighterPreference,
) -> Self
pub fn for_file_with_languages_and_preference( path: &Path, registry: &GrammarRegistry, languages: &HashMap<String, LanguageConfig>, preference: HighlighterPreference, ) -> Self
Create a highlighting engine with explicit preference and language configuration.
Sourcepub fn for_file_with_preference(
path: &Path,
registry: &GrammarRegistry,
preference: HighlighterPreference,
) -> Self
pub fn for_file_with_preference( path: &Path, registry: &GrammarRegistry, preference: HighlighterPreference, ) -> Self
Create a highlighting engine with explicit preference
Sourcepub fn for_language(language: Language) -> Self
pub fn for_language(language: Language) -> Self
Create a highlighting engine for a specific tree-sitter language.
This is useful when manually setting the language (e.g., from UI). Uses tree-sitter for the specified language.
Sourcepub fn for_syntax_name(
name: &str,
registry: &GrammarRegistry,
ts_language: Option<Language>,
) -> Self
pub fn for_syntax_name( name: &str, registry: &GrammarRegistry, ts_language: Option<Language>, ) -> Self
Create a highlighting engine for a syntax by name.
This looks up the syntax in the grammar registry and creates a TextMate highlighter for it. This supports all syntect syntaxes (100+) including user-configured grammars.
The ts_language parameter optionally provides a tree-sitter language
for non-highlighting features (indentation, semantic highlighting).
Sourcepub fn highlight_viewport(
&mut self,
buffer: &Buffer,
viewport_start: usize,
viewport_end: usize,
theme: &Theme,
context_bytes: usize,
) -> Vec<HighlightSpan>
pub fn highlight_viewport( &mut self, buffer: &Buffer, viewport_start: usize, viewport_end: usize, theme: &Theme, context_bytes: usize, ) -> Vec<HighlightSpan>
Highlight the visible viewport
context_bytes controls how far before/after the viewport to parse for accurate
highlighting of multi-line constructs (strings, comments, nested blocks).
Sourcepub fn notify_insert(&mut self, position: usize, length: usize)
pub fn notify_insert(&mut self, position: usize, length: usize)
Notify the highlighting engine of a buffer insert (for checkpoint position tracking).
Sourcepub fn notify_delete(&mut self, position: usize, length: usize)
pub fn notify_delete(&mut self, position: usize, length: usize)
Notify the highlighting engine of a buffer delete (for checkpoint position tracking).
Sourcepub fn invalidate_range(&mut self, edit_range: Range<usize>)
pub fn invalidate_range(&mut self, edit_range: Range<usize>)
Invalidate cache for an edited range
Sourcepub fn invalidate_all(&mut self)
pub fn invalidate_all(&mut self)
Invalidate entire cache
Sourcepub fn has_highlighting(&self) -> bool
pub fn has_highlighting(&self) -> bool
Check if this engine has highlighting available
Sourcepub fn backend_name(&self) -> &str
pub fn backend_name(&self) -> &str
Get a description of the active backend
Sourcepub fn highlight_stats(&self) -> Option<&HighlightStats>
pub fn highlight_stats(&self) -> Option<&HighlightStats>
Get performance stats (TextMate engine only).
Sourcepub fn reset_highlight_stats(&mut self)
pub fn reset_highlight_stats(&mut self)
Reset performance counters.
Sourcepub fn syntax_name(&self) -> Option<&str>
pub fn syntax_name(&self) -> Option<&str>
Get the language/syntax name if available
Sourcepub fn category_at_position(&self, position: usize) -> Option<HighlightCategory>
pub fn category_at_position(&self, position: usize) -> Option<HighlightCategory>
Get the highlight category at a byte position from the cache.
Returns the category if the position falls within a cached highlight span. Useful for detecting whether the cursor is inside a string, comment, etc.
Trait Implementations§
Source§impl Default for HighlightEngine
impl Default for HighlightEngine
Source§fn default() -> HighlightEngine
fn default() -> HighlightEngine
Auto Trait Implementations§
impl Freeze for HighlightEngine
impl !RefUnwindSafe for HighlightEngine
impl !Send for HighlightEngine
impl !Sync for HighlightEngine
impl Unpin for HighlightEngine
impl UnsafeUnpin for HighlightEngine
impl !UnwindSafe for HighlightEngine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more