oak_json/highlighter/
mod.rs

1use crate::kind::JsonSyntaxKind;
2
3/// 高亮类型的本地定义
4#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5pub enum HighlightKind {
6    /// 关键字
7    Keyword,
8    /// 字符串
9    String,
10    /// 数字
11    Number,
12    /// 注释
13    Comment,
14    /// 标识符
15    Identifier,
16    /// 字面量 (null, true, false)
17    Literal,
18}
19
20/// 高亮器 trait
21pub trait Highlighter {
22    /// 对给定的文本进行高亮处理
23    fn highlight(&self, text: &str) -> Vec<(usize, usize, HighlightKind)>;
24}
25
26/// JSON 语法高亮器
27pub struct JsonHighlighter;
28
29impl JsonHighlighter {
30    pub fn new() -> Self {
31        Self
32    }
33}
34
35impl Highlighter for JsonHighlighter {
36    fn highlight(&self, text: &str) -> Vec<(usize, usize, HighlightKind)> {
37        // TODO: 实现基于词法分析的高亮
38        Vec::new()
39    }
40}