pub mod backend;
pub mod document;
pub mod engine;
pub mod highlight;
mod language;
mod output;
pub mod query;
#[cfg(any(feature = "render-html", feature = "render-ansi"))]
mod render;
mod syntax;
pub mod theme;
#[cfg(feature = "render-html")]
pub use render::html;
pub use document::Document;
pub use engine::{Highlighter, Queries};
pub use highlight::{
HighlightConfig, HighlightResult, Highlighted, Line, OwnedLine, OwnedToken, Token,
};
pub use rgb::RGB8;
pub use theme::{Color, Modifier, Style, Theme, Underline, UnderlineStyle};
#[cfg(feature = "render-html")]
pub use html::{RenderHtmlConfig, RenderHtmlStyle};
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("invalid HTML options: {0}")]
Html(String),
#[error("Tree-sitter backend: {0}")]
Backend(String),
#[error("unknown or unloaded language: {0}")]
UnknownLanguage(String),
#[error("duplicate language ID or alias: {0}")]
DuplicateLanguage(String),
#[error("invalid query: {0}")]
Query(String),
#[error("invalid UTF-8 range: {0:?}")]
InvalidRange(std::ops::Range<usize>),
#[error("injection nesting exceeds 32 layers")]
InjectionDepth,
#[error("invalid theme: {0}")]
Theme(String),
}