#### 2026-05-13 *0.1.32* - Fix focus problem with Texter (new tab/close active tab) - Fix ordered list content offset in MD-mode in TextArea #### 2026-05-12 *0.1.31* - Implemented OS Recent files support (add opened files to OS Recent files list) #### 2026-05-09 *0.1.30* - Attempt to fix menu crash on MacOS #### 2026-05-06 *0.1.29* - Show tooltips with full pathname for Recent files menu items - Set maxWidth=500 for Recent files menu #### 2026-05-05 *0.1.28* - Fix invalidate all line layouts in TextArea on window size change #### 2026-05-04 *1.0.27* - Another attempt to fix hang with "recover confirmation" dialog - Update UltraCanvas to support MacOS HiDPI #### 2026-05-01 *1.0.26* - Fix hang when Splash and "recover confirmation" dialog shown in same time #### 2026-04-30 *1.0.25* - Fix cursor position in Markdown mode #### 2026-04-28 *1.0.24* - Fix Markdown toolbar (was not received events) - Major rework in the UltraCanvas (implemented optimized rendering) - Fix scroll down beyond the content - Fix font zoom change #### 2026-04-24 *1.0.23* - New: XML syntax highlighting with xml/xsd/xsl/xslt/xhtml extension support. - New: SVG syntax highlighting (inherits XML) with full SVG element and attribute vocabulary. - New: POM (Maven) syntax highlighting (inherits XML) with Maven element vocabulary. - New: RSS/Atom feed syntax highlighting (inherits XML) with feed element vocabulary. - New: KML syntax highlighting (inherits XML) with Google Earth geographic vocabulary. - New: JSON syntax highlighting with JSONC/GeoJSON/WebManifest variants. - New: YAML syntax highlighting with full YAML 1.1/1.2 boolean-spelling constants. - New: Texter "Data / Config" file filter covering JSON/XML/YAML/TOML/INI/POM/RSS/Atom/KML. - New: Texter "Vector Graphics (Text)" file filter for .svg/.svgz. - New: Texter New-Document dialog templates for SVG, POM, RSS, Atom, KML. - Well-known filenames (pom.xml, manifest.json, feed.xml, atom.xml, rss.xml, site.webmanifest) now auto-select their dialect highlighter before falling back to plain extension lookup. #### 2026-04-24 *1.0.22* - Moved Markdown toolbar under the tabs bar so tabs bar deos not moved when Markdown toolbar switched on/off - Implemented local 'Tab' key handling in the search/replace component to switch between 'search' and 'replace' inputs - Fixed search/replace bug when replaced string has content of "search" string - Fix search bar text colors/font size and other minor changes #### 2026-04-24 *1.0.21* - Fix tooltips rendering and file paths - Fix Markdown cursor position on mouse click #### 2026-04-23 *1.0.20* - Some color fixes for Dark mode #### 2026-04-17 *1.0.19* - Fix restore opened tab after load - Tabbed container active tab is not updated currently after load new file #### 2026-04-17 *1.0.18* - Many updates in UltraCanvasTextarea - Disable focus on TextArea in Markdown mode on file load and on tab switch if cursor at 0,0 position - Do RestoreSessionAndRecoverBackups immediately without waiting splash screen to close. - Fixed save all files on exit. #### 2026-04-17 1.0.17 - Change design of Recent files menu. Increase max recent files to 30 - Migrate Texter's Recent Files submenu to the new API. The submenu now regenerates itself on every open from the recentFiles list. - Fix Texter zoom shortcuts #### 2026-04-16 1.0.16 - Full rework of display and rendering the text. Use Pango layout to format text. Allow to use variable height lines #### 2026-04-06 1.0.15 - Fix markdown word-wrap rendering for blockquotes and code blocks #### 2026-04-05 1.0.14 - restore all tabs on relaunch, fix duplicate "Recovered" titles - Cursor line highlighting - Fix splash screen appearing on wrong monitor in multi-monitor setups #### 2026-03-28 *1.0.13* New Features - Inline Search/Replace bar (VS Code-style, UltraCanvasSearchBar) replacing the modal find dialog - Async match counting with background thread and cancel support - Search history and replace history persisted to config file - Match count display ("3 / 12") with live update on text change - Case-sensitive and whole-word toggle in search bar settings popup - "First match" jump button added to search bar Improvements - onHistoryChanged callback persists search/replace history on every change - Hex mode cursor byte offset used as search anchor in hex documents #### 2026-03-25 *1.0.12* New Features - Drag-and-drop file open: HandleDragEnter, HandleDragOver, HandleDragLeave, HandleFileDrop - Drop overlay rendered while external drag is hovering - Recent files list with persistent storage and submenu rebuild - Tab context menu - EOL type dropdown in status bar (LF / CRLF / CR) - Encoding dropdown in status bar with full re-encoding on save (BOM preserved) - Language / syntax dropdown in status bar - Zoom dropdown in status bar with configurable zoom percent steps - TextEditorConfigFile — INI-based config with XDG, %APPDATA%, and macOS paths - Session restore on startup (reopens previously open files + active tab index) Improvements - Encoding detection: BOM check → UTF-8 validation → heuristics (DetectEncoding) - Binary file auto-detection → opens directly in Hex mode - Raw bytes cached per document (up to 10 MB) for lossless re-encoding on save - Windows .rc resource script with version info embedded in EXE (1.0.12) #### 2026-03-17 *1.0.11* New Features - Hex / Binary editor mode (TextAreaEditingMode::Hex) with address panel, hex panel, ASCII panel - Hex undo/redo stack (separate from text undo stack) - Hex cursor navigation (nibble-level, row/column, page up/down, panel toggle) - Hex search (byte-level find/find-next) - Hex selection with mouse - MarkdownHitRect::isAnchorReturn — ↩ backlink icon on {#id} headings scrolls to jump source Improvements - SetBounds() override triggers layout recalculation on resize #### 2026-03-11 *1.0.10* New Features - AutosaveManager — periodic backup every 60 seconds for modified documents - Crash recovery dialog on startup: offers to restore autosaved files - Session + backup restore merged into RestoreSessionAndRecoverBackups() - Legacy autosave path migration (/tmp/UltraTexter/Autosave/) - AutosaveDocument() per-tab with stable backup path derived from file path + tab index #### 2026-03-02 *1.0.09* New Features - Backlink icons (↩) on {#id} headings — click returns to the line that jumped here - Anchor backlink map (markdownAnchorBacklinks) built during prescan - Abbreviation support (*[abbr]: expansion) — hover tooltip, word-boundary aware - Footnote support ([^label]: content) — multi-line continuations, inline rendering - Definition list support (term / : definition pairs, lazy continuation merging) - Emoji shortcode rendering (:fire:, :check:, :computer: etc.) - Table word-wrap: cell text wraps inside columns with markdown-aware font measurement - Code span font switching inside table cells for correct width measurement - sAnchorReturn hit rect type for ↩ backlink icons Improvements - H1–H6 font size clamped to line height with per-level ceiling multipliers (prevents overflow) - Header text vertically centred within fixed row height - Blockquote continuation segments rendered with quote indent - List item continuation segments rendered with list indent - Abbreviation definition lines and footnote definition lines hidden from rendering (except on cursor line) - Definition hidden/continuation lines suppressed from rendering - mdScrollBaseOffset computed from markdownLineYOffsets[firstVisibleLine] for correct table row positioning - Tokenizer cache: re-uses token vector across display lines from the same logical line #### 2026-02-26 *1.0.08* New Features - Initial standalone Markdown plugin component (UltraCanvas::MarkdownElementType enum) - Element types: Text, Header, Bold, Italic, Code, CodeBlock, Link, Image, and more #### 2026-02-21 *1.0.07* New Features - Self-contained inline search/replace bar (embedded panel, not a dialog) - Find mode (single row) and Replace mode (double row) - Settings popup menu (case sensitive, whole word checkboxes) - Search history popup and replace history popup - onFindNext, onFindPrevious, onReplace, onReplaceAll, onSearchTextChanged, onHistoryChanged callbacks - UpdateMatchCount(current, total) display label #### 2026-02-14 *1.0.06* New Features - DetectEncoding() — BOM + UTF-8 validation + heuristics - DetectBOM() — UTF-8 BOM, UTF-16LE/BE BOM detection - ConvertToUtf8() / ConvertFromUtf8() via POSIX iconv - GetSupportedEncodings() — full encoding list for dropdown - MAX_RAW_BYTES_CACHE = 10 MB per document