Every change to FlyText is recorded here. Current version is v1.3 —
the desktop app checks the website's version automatically under "Settings → New version".
A release about making the editor feel effortless to move around in. Dragging the scroll bar
in long text files now stays in lockstep with the content, at the same fluidity you get in
HEX mode.
Fixed
Scroll bar dragging was jerky in text files (HEX view was already smooth). Three stacked causes, all fixed: the bundled Scintilla build had pixel-scroll scrolling (ScrollWindow) commented out, so every scroll step repainted the whole viewport (up to 33 ms on CJK text) — it now blits the shifted pixels and repaints only the exposed lines; the main window repainted the entire title bar, menu, toolbar, tab bar and status bar on every frame even when only the scroll bar was dirty — layers outside the damaged rectangle are now skipped; and each mouse move during a drag synchronously waited on that repaint — the drag now records the target line and coalesces the actual scrolling onto the message loop, keeping the input path clear.
Scrollbar thumb and text content now update in the same frame and stay pixel-aligned while dragging.
v1.2 Historical
A release about navigability across long files and many files. The outline panel gives
hundred-thousand-line source files a table of contents, the tab bar stops cramming together,
and double-launching no longer opens a second instance.
Added
Outline panel (right side): line-level heuristic parsing; C-family languages track brace depth while stripping comments and strings to list functions, global variables and types; text files list headings. Click to jump to the line; the current symbol highlights as the caret moves. Off by default (View → Outline), state persisted. Limits: 16 MB / 200k lines / 10k entries.
Scrollable tab bar with dropdown: tabs scroll horizontally when they overflow, the active tab auto-scrolls into view; a dropdown button on the right edge lists all tabs, unsaved ones marked with ●.
Single-instance forwarding: a second launch restores and focuses the existing window; files passed on the command line are forwarded to the running instance via WM_COPYDATA and the new process exits.
HEX mode: binary files open as a byte-level hexadecimal view with ASCII preview, directly editable.
Split view: two side-by-side panes of the same file for comparison.
Minimap: whole-document overview; click or drag to navigate.
Bookmarks: F2 to toggle and jump, dedicated marker column in the sidebar.
Pinned tabs: keep important files at the front; Pin / Unpin / Close Others / Close Right.
Line & column editing: line-level copy, delete, move up/down, join; Ctrl + drag for rectangular selection and batch editing.
Autosave & auto-reload: saves when the window loses focus; reloads immediately when a file changes externally.
Auto-editing: auto-closing brackets and quotes, smart indent on Enter.
20 UI languages: the site and app support Simplified Chinese, English, Japanese, German, Arabic and 15 more.
Fixed
Code folding had never actually worked (SCI_SETPROPERTY("fold") was called before the lexer existed, writing only to the property table); it now runs after lexer creation.
Build output panel rendered black-on-white: SetupLexer was mistakenly called while creating the edit control, overwriting the default colors; it now applies after creation and refreshes with the theme.
Submenu hover misalignment: hit-testing used raw indices including separators while rendering compared non-separator indices, shifting every item after a separator by one row.
The bookmark folding margin mask was missing marker 24, so bookmarks were "added but never drawn" (easy to miss since F2 navigation worked); they now live in a dedicated marker column.
The main window's WM_COMMAND dispatch whitelist was missing the 300–399 range, silently dropping bookmark commands (330–333).
Custom-drawn minimize/maximize buttons now use SetCapture on press and only fire if released inside the button — dragging away no longer mis-triggers.
External-change detection loop: only the active tab was checked; now a 250 ms delayed timer plus a re-entry flag prevents the "answer → dialog closes → re-activate → prompt again" loop.
Changed
The outline panel ships off by default (was on); enable it once via View → Outline and the choice persists.
Removed
Minimap: removed shortly after v1.2 shipped. The rendered text was too small to read, and its navigation role is better served by the outline panel and the scroll bar. (Kept in the Added list above for the record.)
v1.1 Historical
Filled in the infrastructure a modern editor needs: version checking, file hashing, encoding
conversion, session persistence — and polished license activation to a usable state.
Added
In-app version check: when the settings window opens, it queries /api/version/latest in the background and only shows an update button when a new version exists.
File hash tool: Tools → MD5/SHA submenu; streams in 64 KB chunks to compute MD4 / MD5 / SHA-1 / SHA-256 (CryptoAPI) and SHA3-256 / Keccak-256 (self-implemented sponge), copying the result to the clipboard.
Local AI code autocomplete: with the optional FlyAI inference service, whole-line ghost-text suggestions accepted with Tab — code never leaves the machine.
Encoding conversion submenu: convert between UTF-8 / UTF-8 BOM / UTF-16 / GBK and more; configurable default encoding.
Sublime-style find panel: resizable, with an options area and rounded inputs; find history supported.
Automatic encoding & line-ending detection: BOM and CRLF / LF / CR detected on open.
Session & UI persistence: tabs, caret positions, zoom level and theme preference are all remembered.
About-box philosophy copy, fully translated in 20 languages.
Fixed
Faster large-file opening: two scanning passes merged into a single ScanMeta; text loading switched to SCI_ADDTEXT.
Main UI flicker after closing the settings window.
Vertical centering of text in edit controls (ES_MULTILINE + EM_SETRECT).
The unregistered notice now appears after a random 2–3 minute delay instead of nagging at launch.
Installer file associations are now per-type checkboxes (txt / log / md / json / xml / html / css / js / ts / py / c / cpp), avoiding antivirus false positives on blanket registry writes.
v0.1 First public release
The first public build of FlyText. Pure Win32 + Scintilla, statically linked CRT with
/MT, runs on Windows 7+ with no runtime to install.