#pattern #highlighter #ratatui #dead #search-pattern #tui #line

tui-pattern-highlighter

a dead simple search pattern highlighter for ratatui

4 releases

0.2.2 Aug 10, 2024
0.2.1 Jul 17, 2024
0.2.0 May 30, 2024
0.1.0 May 27, 2024

#876 in Command-line interface

MIT license

8KB
88 lines

tui-pattern-highlighter

Version Tests Docs

a dead simple search pattern highlighter for ratatui

Example

use tui_pattern_highlighter::highlight_line;
use ratatui::{
    style::{Color, Style},
    text::{Line, Span, Text},
};

let line = "Hi @buddy";
let pattern = r"@\w+";
let highlight_style = Style::new().bg(Color::Blue);

let expected_line = Line::from(vec![
    Span::from("Hi "),
    Span::from("@buddy").style(Style::new().bg(Color::Blue)),
]);

assert_eq!(highlight_line(line, pattern, highlight_style), expected_line);

let text = "Hi @buddy\n@stranger hello";
let pattern = r"@\w+";
let highlight_style = Style::new().bg(Color::Blue);

let expected_text = Text::from(vec![
    Line::from(vec![
        Span::from("Hi "),
        Span::from("@buddy").style(Style::new().bg(Color::Blue)),
    ]),
    Line::from(vec![
        Span::from("@stranger").style(Style::new().bg(Color::Blue)),
        Span::from(" hello"),
    ]),
]);

assert_eq!(highlight_text(text, pattern, highlight_style), expected_text);

Dependencies

~7–13MB
~148K SLoC