aboutsummaryrefslogtreecommitdiff
path: root/Sources/NorgKit/Models
diff options
context:
space:
mode:
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
)
}
}