Skip to main content

Crate tui_syntax

Crate tui_syntax 

Source
Expand description

§tui-syntax

Tree-sitter based syntax highlighting for TUI applications.

This crate provides syntax highlighting that integrates with ratatui, returning styled Line and Span types ready for rendering.

§Features

  • Tree-sitter based highlighting (accurate, fast)
  • Helix-compatible TOML theme format
  • Built-in themes (One Dark, GitHub Light)
  • SQL language support built-in
  • Extensible to other languages via tree-sitter grammars

§Example

use tui_syntax::{Highlighter, themes, sql};

// Create highlighter with default dark theme
let mut highlighter = Highlighter::new(themes::one_dark());

// Register SQL language
highlighter.register_language(sql()).unwrap();

// Highlight some SQL
let lines = highlighter.highlight("sql", "SELECT * FROM users WHERE id = 1;").unwrap();

// `lines` is Vec<ratatui::text::Line> ready to render

Re-exports§

pub use languages::html;
pub use languages::json;
pub use languages::sql;
pub use languages::Language;
pub use languages::LanguageError;

Modules§

languages
Language definitions for syntax highlighting.
themes
Built-in themes for syntax highlighting.

Structs§

Highlighter
Syntax highlighter that produces ratatui-compatible styled text.
Theme
A syntax highlighting theme.
ThemeStyle
A style definition for a syntax element.

Enums§

HighlightError
Error during highlighting.
StyleModifier
Style modifiers (bold, italic, etc.)
ThemeError
Error loading or parsing a theme.