Pragtical v3.12.5 Release
Pragtical v3.12.5 is out with fixes for editing around folded code and wrapped lines, safer syntax loading for language plugins, and build updates for newer SDL3 and CMake combinations.
Folded Code Editing
Editing at folded boundaries now behaves more predictably. Pragtical expands collapsed regions before inserting a newline on a fold header or before a visible fold ending token, which preserves normal indentation and caret placement without disrupting edits after the folded endpoint.
This release also keeps collapsed folds stable across insertion and deletion, improves movement and selection around hidden folded lines, and avoids inactive split views rewriting the shared document selection when their private fold state differs from the active view.
Thanks to justin330 for reporting the issue and providing continous testing and feedback.
Wrapped Line Movement
Vertical cursor movement on wrapped lines now resolves the saved horizontal offset within the requested visual row. This prevents repeated Up and Down commands from getting stuck when moving through documents with uneven long lines.
Thanks to 2trvl for also reporting this and testing the fix.
Syntax Loading
Syntax definitions may now omit the symbols table when they only need
pattern-based tokenization. Pragtical defaults missing symbol tables to an empty
table, matching how symbol entries are used as exact text overrides.
The tokenizer fixture coverage was also extended for the C3 and C3 Contract language definitions.
Build Updates
The SDL3 fallback build now passes _GNU_SOURCE through CMake's required
definitions on Linux. This keeps SDL3 feature probes consistent under CMake 4
and avoids conflicting fallback declarations during CI builds.
The bundled SDL3 wrap was updated to v3.4.14, and the plugins subproject wrap was refreshed to include the latest language fixture coverage.
Downloads on GitHub.
Changes Log
Enhancements
- Default missing syntax symbols (#583)
