diff options
| author | Ruben Beltran del Rio <jj@r.bdr.sh> | 2026-06-19 19:16:25 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <jj@r.bdr.sh> | 2026-06-19 22:32:15 +0200 |
| commit | 25fc48fb17b53fe1c155c4f53f673ed91fdd8f74 (patch) | |
| tree | de96add2a7ae8c5cc79a354fbffa26e80349cc15 /Sources/NorgEditor/Highlighting/NorgHighlighter.swift | |
Initial extraction from Norganize
Diffstat (limited to 'Sources/NorgEditor/Highlighting/NorgHighlighter.swift')
| -rw-r--r-- | Sources/NorgEditor/Highlighting/NorgHighlighter.swift | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Sources/NorgEditor/Highlighting/NorgHighlighter.swift b/Sources/NorgEditor/Highlighting/NorgHighlighter.swift new file mode 100644 index 0000000..c8bd2de --- /dev/null +++ b/Sources/NorgEditor/Highlighting/NorgHighlighter.swift @@ -0,0 +1,23 @@ +import Foundation +import NorgKit + +/// A syntax highlight span. +public struct NorgHighlight: Equatable, Sendable { + + public let range: NSRange + public let kind: NorgToken.Kind + + public init(range: NSRange, kind: NorgToken.Kind) { + self.range = range + self.kind = kind + } +} + +public enum NorgHighlighter { + + public static func highlights(in text: String) -> [NorgHighlight] { + NorgLexer.tokenize(text).map { token in + NorgHighlight(range: NSRange(token.range, in: text), kind: token.kind) + } + } +} |