fix: insert heading-start newlines before hidden prefixes

This commit is contained in:
Valdemar Lorenzen
2026-10-21 15:30:16 +02:00
parent b5a0edd5bf
commit 489fa84b3c
4 changed files with 42 additions and 4 deletions
@@ -49,6 +49,38 @@ func headingsFollowVisibleParagraphEditingAndRoundTrip() throws {
#expect(editor.markdownString == after)
}
}
for before in ["\n# Title", "\n## Title", "Text\n\n###### Title", "- [ ] 🦊\n\n## Title"] {
reset(before)
editor.undoManager?.beginUndoGrouping()
editor.doCommand(by: #selector(NSResponder.deleteBackward(_:)))
editor.undoManager?.endUndoGrouping()
let joined = editor.markdownString
editor.breakUndoCoalescing()
editor.undoManager?.removeAllActions()
editor.undoManager?.beginUndoGrouping()
editor.doCommand(by: #selector(NSResponder.insertNewline(_:)))
editor.undoManager?.endUndoGrouping()
#expect(editor.markdownString == before)
#expect(editor.selectedRange() == NSRange(location: (editor.string as NSString).range(of: "Title").location, length: 0))
editor.undoManager?.undo()
#expect(editor.markdownString == joined)
editor.undoManager?.redo()
#expect(editor.markdownString == before)
#expect(controller.save())
#expect(try NotesStore(directory: directory).notes.first?.contents.string == before)
}
for (before, position, after) in [
("## Title", 3, "\n## Title"),
("## Title", 5, "## Ti\ntle"),
("## Title", 8, "## Title\n"),
("Text\n## Title", 4, "Text\n\n## Title"),
("```text\n## Title\n```", 11, "```text\n## \nTitle\n```")
] {
reset(before)
editor.setSelectedRange(NSRange(location: position, length: 0))
editor.doCommand(by: #selector(NSResponder.insertNewline(_:)))
#expect(editor.markdownString == after)
}
for level in 1...6 {
reset("### Title")
editor.undoManager?.beginUndoGrouping()