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

tui-pattern-highlighter

ratatui的一个简单的搜索模式高亮器

4个版本

0.2.2 2024年8月10日
0.2.1 2024年7月17日
0.2.0 2024年5月30日
0.1.0 2024年5月27日

#8 in #highlighter

Download history 243/week @ 2024-05-25 29/week @ 2024-06-01 4/week @ 2024-06-08 96/week @ 2024-07-13 17/week @ 2024-07-20 2/week @ 2024-07-27

每月115次下载

MIT许可协议

8KB
88

tui-pattern-highlighter

Version Tests Docs

ratatui的一个简单的搜索模式高亮器

示例

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);

依赖项

~8–15MB
~172K SLoC