Skip to content

Markdown4D 2.3.0

Latest

Choose a tag to compare

@cmgeuze cmgeuze released this 22 Sep 08:12
· 113 commits to main since this release
fc30a74

Selection mapping

Inline nodes carry the source offsets they were parsed from, and a text run names the node its characters were read from. The viewers answer TryGetSelectionSourceSegment with the stretch of markdown a selection was rendered from, and the editors gained SelectRange and TryAdoptPreviewSelection to take that selection over.

TMarkdownSegment is now documented precisely: StartOffset is 1-based and EndOffset points at the first character past the node. A node whose text no longer matches the source character for character reports StartOffset = 0, which is the case inside a table cell, on a line whose tab the parser replaced by spaces, and for nodes an extension built itself.

IDisplayTextRun has a new SourceNode member; implementations outside the library need to add it.

Formatting commands

Bold, italic and strikethrough read the markdown before they change it. A selection that half covers marks of the same style takes that whole stretch in, and a selection that already carries them throughout has them taken off, so running a command twice leaves the text as it was. Ctrl+B and Ctrl+I work wherever the focus is, and a command run from the preview formats the selected text instead of the hidden caret.

Studio

View mode buttons in the VCL and FMX toolbars. The split view keeps both panes visible, the contents pane no longer starves it, and the editor is never focused while it is hidden.

Tests

Both suites build and run on Win32 and Win64x, and build.bat covers all four combinations.