aboutsummaryrefslogtreecommitdiff
path: root/Sources/NorgKit/Models
diff options
context:
space:
mode:
authorRuben Beltran del Rio <jj@r.bdr.sh>2026-06-19 22:06:26 +0200
committerRuben Beltran del Rio <jj@r.bdr.sh>2026-06-19 22:15:42 +0200
commit647296d5a0799c2e9de05cd41b50bd161cdeac85 (patch)
tree61dd769ceadba7f139d2c299119e6b1b86d849ab /Sources/NorgKit/Models
parentc796b061f2d1a1da02c92b71d518af6cef16d33a (diff)
Add NorgLexerHEAD1.1.0main
Diffstat (limited to 'Sources/NorgKit/Models')
-rw-r--r--Sources/NorgKit/Models/DetachedModifier.swift6
1 files changed, 5 insertions, 1 deletions
diff --git a/Sources/NorgKit/Models/DetachedModifier.swift b/Sources/NorgKit/Models/DetachedModifier.swift
index 1f28c36..51d53ff 100644
--- a/Sources/NorgKit/Models/DetachedModifier.swift
+++ b/Sources/NorgKit/Models/DetachedModifier.swift
@@ -6,6 +6,7 @@ struct DetachedModifier {
let status: TaskStatus?
let statusIndex: String.Index?
let content: Substring
+ let markerRange: Range<String.Index>
/// Finds and parses a detached modifier if present. The accepting markers
/// is used to reduce the markers being parsed.
@@ -21,12 +22,14 @@ struct DetachedModifier {
let markerByte = utf8[i]
guard markers.contains(markerByte) else { return nil }
+ let markerStart = i
var level = 0
var run = i
while run < end, utf8[run] == markerByte {
level += 1
run = utf8.index(after: run)
}
+ let markerRange = markerStart..<run
guard run < end, ASCIIHelper.isWhitespace(utf8[run]) else { return nil }
@@ -55,7 +58,8 @@ struct DetachedModifier {
level: level,
status: status,
statusIndex: statusIndex,
- content: TextHelper.whitespaceTrimmed(line[contentStart...])
+ content: TextHelper.whitespaceTrimmed(line[contentStart...]),
+ markerRange: markerRange
)
}
}