From 25fc48fb17b53fe1c155c4f53f673ed91fdd8f74 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Fri, 19 Jun 2026 19:16:25 +0200 Subject: Initial extraction from Norganize --- .../NorgEditor/Highlighting/NorgHighlighter.swift | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Sources/NorgEditor/Highlighting/NorgHighlighter.swift (limited to 'Sources/NorgEditor/Highlighting/NorgHighlighter.swift') 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) + } + } +} -- cgit