diff options
Diffstat (limited to 'Sources/NorgKit/Models')
| -rw-r--r-- | Sources/NorgKit/Models/DetachedModifier.swift | 6 |
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 ) } } |