Legend:
  + added
  - fixed
  * changed

1.131.0 (2021/04)

+ add: improved the way how option "undo_limit" is applied. Now Undo limit is not N simple memory-items, but N 'actions', where 'action' is one simple command (typing a char, Del, BkSp etc), one multi-caret editing, or one mass-replacement. (thanks @tmsg)
+ add: panels Output/Validate are now based on 'editor' control (before it was a 'listbox' control), so it's possible to select some text range and "copy" this range (thanks @jkeks)
+ add: panels Output/Validate: context menu has item "Toggle word wrap"
+ add: plugin Comments: after toggling line comment, shift caret horizontally too (thanks @xcme)
+ add: plugin Sort: new option "ini_files_case_sensitive" for "Ini files: sort sections and keys" (thanks @BBServ)
+ add: option "dim_unfocused" allows value<0 (thanks @kvichans)
+ add: Undo for commands "move selected lines up/down" undoes all commands by single step (thanks @xcme)
+ add: Linux/BSD: app locates config in ~/.config if it was run from /opt/AnyDir (thanks linux.org.ru)
+ add: handle plugin exceptions in Command.__init__ (thanks @Shovel)
* change: renamed option "undo_for_caret_jump" to "undo_mouse_clicks", changed its default (thanks @xcme)
* change: changed default of "renderer_offsets__linux" to true for Qt5 version (thanks @Maia-Everett)
- fix: option "undo_persistent" did not work when file was loaded from session

1.130.0 (2021/04)

+ add: HTML auto-completion: support HTML entities (like &nbsp;)
+ add: HTML auto-completion: update tags/attribs lists (thanks @d-mal)
+ add: much faster multi-carets editing, with 100+ carets and heavy lexer (thanks @JairoMartinezA)

+ add: work on Undo/Redo (thanks @xcme)
    + add: Undo: Caret movements were considered as actions that could be cancelled/repeated. It led to unneeded caret jumps. Now it looks more like undo/redo manages the content, not caret.
    + add: Undo: If last change was performed in area which isn't visible now, then undo/redo actions will highlight for a while the line and insert a short delay before the undo/redo action.
    + add: Undo: New options "undo_for_caret_jump" and "undo_pause".
    + add: Undo: Paste followed by other editing were considered as single action, so undo cancelled both the pasting and the editing at once. Now these actions are separated.
    + add: Undo: If pause (1500 msec) is passed between typing actions, undo them by steps.
    * change: Multi-caret edition - undo all chars at once, like ST3.

+ add: tab's context menu has new item "Pinned"; pinned tabs captions show prefix "!" (thanks @kvichans)
+ add: command "set tab color..."
+ add: command "reset tab color"
+ add: command "toggle tab pinned state"
+ add: better work of the feature which shows UI-tab titles like "test.txt * folder1" / "test.txt * folder2" (thanks @kvichans)
+ add: better statusbar "message" cell: instead of hiding the text it dims it; floating tooltip for that cell shows 30 last messages (thanks @Shovel)
+ add: app updates 'enabled state' of toolbar buttons (visible on colorful toolbar theme)
- fix: calculating width of some Unicode chars (thanks @cser)

1.129.5 (2021/03)

+ add: code-tree for CSS lexer shows colored squares near 'Colors' items (thanks @NQUARE)
+ add: lexer CSS: show color formats 'rgb', 'hsl', '#aabbccdd' in code-tree (thanks @NQUARE)
+ add/change: reworked the way how app saves/restores per-file-history for properties: word wrap, show unprinted chars, show line numbers, show folding column, show minimap, show micromap, show ruler; format of JSON history: changed 'bool' values to 'int'
+ add: wiki topic https://wiki.freepascal.org/CudaText#Brackets_auto-pairing_logic
- fix: problem with "CudaExt / Code-Tree Symbol list" and non-ASCII file text (thanks @kvichans)
- fix: command 'Redo' could not work sometimes (thanks @xcme)
- fix: crash after installing lexer, while lite-lexer SQL^ was active (thanks @JairoMartinezA) 
- fix: regression since 1.124.0: Console's right-click menu is incomplete (thanks @kvichans)
- fix: regression since 1.127.0: broken work of lite lexers with minimap (thanks @tmsg)
- fix: regression since 1.128.0: app crashes on start, if lexers have 'grammar' (examples: C#, Pascal, SQL)
- fix: plugins hotkeys become broken in current app session, after any plugin installation (thanks @JairoMartinezA, @OlehL)

1.129.0 (2021/03)

+ add: handle config JSON files with UTF-8 BOM (patch goes to FreePascal as well)
+ add: better logic of brackets auto-closing (and selection surrounding) for case of multi-carets (thanks @xcme)
+ add: command "Install from GitHub" / "Download as zip" supports all branch names (thanks @Shovel) 
* change: paint end-of-line text marks ("LF", "CRLF", "CR", "EOF") by lines, not by font
- fix: crash in last change in "Help / Check for updates"

1.128.5 (2021/03)

* change: for CSS auto-completion, use another provider of CSS names/properties, now it's cudax_css.py module
* change: auto-completion for CSS and HTML was 70% rewritten, pls report any issues
+ add: better logic of skipping brackets on typing: skip ')' in case 'f(|)' but don't skip in case 'f(text|)' (thanks @xcme)
+ add: option "auto_close_brackets" supports more chars: ~ * # <
+ add: detect Debian/Ubuntu to download deb-file in "Help / Check for updates" (thanks @ildarkhasanshin)
+ add: API to show "masked password" editor fields and "numbers only" editor fields (thanks @Shovel)
- fix: Find dialog had reset "O" option after restart (thanks @xcme)
- fix: minor issue with "Don't save" choice in "Save tabs?" dialog (thanks @GHNewbiee)
- fix: regression with option "ui_lexer_themes":false (thanks @MiroslavMatas)
- fix: few standard plugins were using deleted APIs (thanks @dinkumoil)

1.128.0 (2021/03)

+ add: load lexers using multi-threading, this improved loading speed by 15-20%
+ add: update app icon (by @Shovel)
+ add: option "key_up_down_allow_edge" (thanks @kvichans)
+ add: UI-tabs: paint < > scroll arrows dimmed, when no scrolling is needed (thanks @d7_2_laz)
+ add: clicking on editor's scrollbar puts focus to editor (thanks @GHNewbiee)
+ add: tab title "UntitledN" counter is reset after tabs are closed, and only 1 tab is left (thanks @GHNewbiee)
+ add: save/restore history scroll-position for 2nd part of splitted UI-tab (thanks @GHNewbiee)
- fix: sometimes, arrows up/down over tab-char could restore previous column wrong (thanks @tiun)
- fix: issue with painting of 'ghost caret' on typing/deleting text (thanks @quesada)
- fix: render UI-tab rounded corners for all tab positions: top/bottom/left/right

1.127.0 (2021/02)

+ add: multi-threading is now used to paint the minimap, painting with minimap is now 2x faster
+ add: when UI-tabs are not 'angled', they have rounded corners (no option yet)
* change: UI-tabs are now not 'angled' by default
* change: 'angled' UI-tabs were not painted ok on some OS/desktops, so disabled them yet: on Linux Qt5, on macOS
* change: partially revert changes for tab-group splitters from 1.126.0 (thanks @Shovel)
* change: remove lexer VBScript to add-ons
- fix: work with minimap after click on minimap-current-view-area (thanks @xcme)
- fix: some pixel artifacts on 'flat' UI-tabs (thanks @JairoMartinezA)
- fix: error when PHP auto-completion is called after e.g. "0~" (thanks @Shovel)
- fix: regression, option "renderer_offsets" was ignored
- fix: coloring of code-blocks in e.g. reST lexer

1.126.4 (2021/02)

+ add: internal optimizations in renderer, pls report any bugs
+ add: on opening user.json or default.json, program shows information panel about "Options Editor" (thanks @Shovel)
+ add: option "autocomplete_autoshow_chars" now works with national letters (thanks @tmsg)
+ add: Addon Manager: don't reinstall CudaLint/CudaFormatter when a linter/formatter is installing
- fix: with word-wrap, click on parts of huge line with CJK, gave wrong caret position

1.126.0 (2021/02)

+ add: added built-in tree-helper for Markdown, and plugin cuda_tree_markdown is removed, it is in ignore-list now (thanks @GHNewbiee)
+ add: added built-in tree-helper for MediaWiki, and plugin cuda_tree_mediawiki is in ignore-list now
+ add: added built-in tree-helper for reStructuredText, and plugin cuda_tree_rest is in ignore-list now
+ add: better handle splitters moving in tab-group modes '3 vert', '3 horz', '6 grid' (not yet in modes '4v', '4h', '6v', '6h')
+ add: UI-tabs in "multi-line" style can now be scrolled too, vertically (thanks @GHNewbiee)
+ add: added API useful for plugin "Terminal Plus" (thanks @Shovel)
+ add: Addon Manager: auto-install CudaLint/CudaFormatter when a linter/formatter is installing
+ add: lexer PHP: support attributes of PHP 8: #[Name]
- fix: keys Up/Down, with selection overlapping editor border, caused wrong horizontal scrolling
- fix: bug in detecting lexers 'PKGBUILD', 'Dockerfile' (thanks @Nori13)

1.125.0 (2021/02)

+ add: auto-completion for file URI file:///, controlled by new option "autocomplete_file_uri"
+ add: Wiki topic https://wiki.freepascal.org/CudaText#File_URI_auto-completion
+ add: API to support new plugin "Terminal Plus" (thanks @Shovel)
+ add: on window resizing, editor keeps "index of top line"
+ add: option "ui_cmdpalette_filter_keep" (thanks @JairoMartinezA)
+ add: feature "plugin_groups": char '&' is now stripped before RegEx check (thanks @JairoMartinezA)
+ add: lexer CSS: better std properties lists
* change: Command Palette now hides very simple commands: arrows, Enter, Delete, BackSp, Tab, Home, End, PageUp, PageDown, Shift+arrows, Shift+Home etc.
* change: removed menu item "Options / Settings-hotkeys", added text-hint in the Command Palette instead (thanks @JairoMartinezA)
- fix: if "wrap_mode" is set, app could not correctly restore "index of top line" for session files
- fix: if plugins ConfigToolbar + ExternalTools were used, and toolbar button was created for ext-tool, it was stored to ConfigToolbar config wrong (thanks Markus F.). You _must_ update all ConfigToolbar buttons which refer to tools: ie press "Command" button and choose a tool again, then OK.
- fix: auto-completion must not work in 'comments', but it worked at the end of 'comment' line
- fix: auto-completion must scroll to caret after the text insertion
- fix: auto-completion issue with "dim_unfocused"

1.124.0 (2021/02)

+ add: option "dim_unfocused", it allows to dim background color of editors in passive tab-groups
+ add: option "scrollbar_themed", it allows to use OS native scrollbars
+ add: option "scrollbar_arrows"
+ add: option "ui_dialogs_in_taskbar"
+ add: when ui-tabs are 'flat', show underline for passive groups with dimmed color (thanks @JairoMartinezA)
+ add: if user.json does not exist yet, the file "settings_default/userinit.json" (if exists) is copied to user.json
+ add: save to session also UI-tab splitted state (on/off, vert/horz, percents of window size) (thanks @GHNewbiee)
+ add: command "split tab: split horizontally" (thanks @JairoMartinezA)
+ add: command "split tab: split vertically"
+ add: command "split tab: don't split"
+ add: API allows much more access to Console panel fields (thanks @Shovel)
+ add: allow multi-selections to touch, without joining them (thanks @JairoMartinezA, @cser)
+ add: lexer Batch: highlight `tick_blocks`; highlight variables with chars ~.,()
* change: hide micromap when there is only one line (in multi-line editors)
* change: changed submenu "View / Split tab / ..." to new 3 items: "Don't split", "Vertically", "Horizontally" (thanks @OlehL)
* change: program will not save to session filenames from CudaText: "settings/history.json", "settings/history session.json"
- fix: Linux: minimizing modal plugin's dialogs could freeze the CudaText (thanks @GHNewbiee)
- fix: Markdown tree-helper must skip headers inside <pre>..</pre>

1.123.0 (2021/01)

+ add: support HTML color-codes highlighting in text background, option "underline_color_size" needs special value for this (thanks @pagewerk)
+ add: Wiki topic https://wiki.freepascal.org/CudaText#HTML_color_codes_underlining
+ add: Wiki topic https://wiki.freepascal.org/CudaText#Automatic_folding_of_comments
+ add: Wiki topic https://wiki.freepascal.org/CudaText#Show_pictures_in_the_text
+ add: commands 'type a char'/'backspace'/'delete'/'undo'/'redo'/'left'/'right', when with multi-carets, should not scroll to first(last) caret (thanks @JairoMartinezA)
+ add: commands 'indent selection'/'unindent selection' now support multi-carets
+ add: auto scale 'margin lines' width (thanks @Shovel)
+ add: Project Manager: big speed up of "Go to file" with ~1000 files (thanks @dopm)
+ add: dialogs "Themes", "Color theme" are now resizable; dialog "Themes" is now scalable (thanks @Lastique)
- fix: Qt5 version: plugin dialogs flickering (thanks @Lastique)
- fix: Windows XP: themed menu font size was incorrect (thanks @zanud)
- fix: regression with restoring "index of top line" from session, with word-wrap and w/o it (thanks @JairoMartinezA)
- fix: regression with commands "left"/"right" not scrolling to caret (thanks @JairoMartinezA)
- fix: regression with bad positioning of tab-groups 'splitters' on start (thanks @GHNewbiee)
- fix: option "saving_trim_spaces" didn't move caret to shorter line end (thanks @GHNewbiee)
- fix: 'preview tab' could not work if dragged to another tab-group

1.122.5 (2021/01)

* change: added option "undo_max_carets" (default is 5000). Many editing commands are now much faster for >5000 carets (before, such commands could last for several minutes, with 30K carets). WARNING: this clears the undo-information when you have >5000 carets.
* change: changed default of "auto_fold_comments" to 0; one crash was fixed regarding to this (thanks @OlehL)
+ add: added option "autocomplete_commit_single_item" (thanks @MiroslavMatas)
+ add: Project Manager: sort files by extension (thanks @GHNewbiee)
+ add: Addon Manager: supports translation too (patch by Markus)
+ add: lexer CSS: more known properties; fix highlighting inside '@media{}' blocks
+ add: updated Python libraries in py/sys/
- fix: Find dialog option "Hi" did reset the selection (thanks @MiroslavMatas)
- fix: color of groups-splitters in few ui-themes (thanks @GHNewbiee)
- fix: command "duplicate lines" with forward/backward selection gave different selections (thanks @JairoMartinezA)
- fix: Lexer Detecter didn't detect 'Dockerfile'
- fix: when selection is performed with Ctrl+drag, unpressing of Ctrl gave the weird effect (thanks @tiun)
- fix: editor snaps twice to line specified as command line param, e.g. 'cudatext my.cpp:20' (thanks @Shovel)
- fix: regression: not working Python, if "pylib__linux" has some special form (thanks @sikmir, @Shovel)

1.122.0 (2021/01)

* add/change: Addon Manager: removed command "Re-install...", now all addons are in the "Install..."; already installed items are marked with "◄local ?►", and items with updates are marked with "◄local ?, web ?►" (thanks @cser, @kvichans)
+ add: hide caret for unfocused editor controls (very old issue; thanks @OlehL)
+ add: option "auto_fold_comments", it automatically creates folding-ranges for many commented lines (thanks @JairoMartinezA for tests)
* change: deleted settings "fold commented lines" from standard lexers (C, Lua, PHP, Python), to better support "auto_fold_comments"
+ add: plugins API allows to catch clicks on statusbar cells (thanks @xcme)
+ add: support Windows Python 3.4, if such a package is installed from addons (package made by @tiun)
+ add: regex engine allows to escape the underscore char (thanks @SlMaker)
- fix: options "caret_blink_time", "caret_blink_en" were not applied to Console, Find/Replace, API editors (thanks @kvichans)
- fix: commands "find next", "find all and select" left the progressbar visible (thanks @kvichans)
- fix: Project Manager failed with Windows Python 3.4 (thanks @pohmelie)
- fix: Options Editor failed with Python 3.4

1.121.0 (2021/01)

+ add: command "delete word" (ie delete entire words under carets) like in VSCode
+ add: command "settings: clear find/replace dialog history"
+ add: command "settings: clear console input history"
+ add: Find dialog: add search options+actions to '...' menu (thanks @kvichans)
+ add: Find dialog: allow to hide more buttons (regex, case, words, confirm replace) via "find_hidden_buttons" (thanks @kvichans)
+ add: Find dialog: when undocked, show search messages also in Find dialog caption (thanks @kvichans)
+ add: Find dialog: "Highlight all" action shows working time in msec (thanks @tmsg)
+ add: lexer Python and others with indentation-based folding: implement proposal where blocks can be closed only when brackets ()[]{} are fully closed
+ add: lexer Python: don't find special words before '=', e.g. in 'f(type=v)' (thanks @APEC)
+ add: lexer Python: highlight decorators ('@ddd', '@Ddd.ddd') with special color (thanks @APEC)
+ add: lexers C, C++: better highlight of several operators, like <=> ||= &&= : # ##
+ add: lexers C, C++: better highlight of preprocessor directives
- fix: Find dialog: regression caused by addition in 1.120.0 (thanks @hamasaki)
- fix: Find dialog: code-tree selection was not updated via buttons "find next/previous" (thanks @JairoMartinezA)
- fix: command "duplicate line (advanced)" regression (thanks @kvichans)
- fix: plugin Emmet crash

1.120.0 (2021/01)

+ add: Find dialog has new toggle button "Hi", it means "Highlight all matches". Matches are highlighted with a rounded border, which color is taken from "SeparLine" syntax theme item. Editor also auto-scrolls to the first match, like in Sublime. (thanks @xcme, @tmsg)
* change: Find dialog has changed layout: removed input-field labels; shortened button captions to "|<" (find first), ">" (find next), "<" (find previous), "..." (show menu with "count all", "extract all" etc) (thanks @OlehL, @myCrack)
+ add: option "find_hi_max_lines"
+ add: option "find_hi_move_caret" (thanks @xcme)
+ add: option "find_hotkey_op_hi"
+ add: option "find_hidden_buttons" is extended, it can now hide several toggle-button options
+ add: lexer C++: code-tree improvement: change icons for "namespace"; detect "struct name<T>"; avoid C++ keywords "requires" in code-tree
+ add: lexer C++: highlight labels, in "goto label;" and "label: statement;"
+ add: lexer Bash: highlight numbers in form like "100suffix"
+ add: sync Asian code-page convertion code with Lazarus patch (Support EUDC to PUA Microsoft mapping) by @powerpcer
* change: option "ui_active_border" changed to integer, allowing setting the border width (thanks @xcme)
* change: changed default values of "find_suggest_sel"/"find_suggest_cur_word" to be like in ST3 (thanks @xcme)

1.119.0 (2020/12)

+ add: command "delete to document begin" (thanks @acicovic)
+ add: allow empty-string value of "pylib" option to disable Python engine (thanks @xcme)
+ add: option "ui_menu_themed_font_size", Windows only (thanks @dinkumoil)
+ add: wiki topic: https://wiki.freepascal.org/CudaText#Activating_internet_links
- fix: command "delete to file end" was very slow on huge files; renamed this command to "delete to document end"
- fix: options "auto_close_brackets" and all "autocomplete_*" were working bad with lexer-specific configs (thanks @Shovel)
- fix: caret shape was reset with Vim Mode plugin started (thanks @acicovic)
- fix: Windows: error in "Addons Manager / Install from GitHub" (thanks @acicovic)
- fix: lexer JS: tokenizing of some new JS operators

1.118.0 (2020/11)

+ add: non-text file detection: ignore last 2 bytes at the file end (thanks @ThomasHeinrichSchmidt)
+ add: Addon Manager: support all git branch names in "Install from GitHub" (thanks @dinkumoil)
+ add: support translation for more std plugins: ProjManager, TabsList, MakePlugin (patch by Markus)
+ add: support Python 3.9 on macOS (thanks @neurolabusc)
- fix: lexer Bash: (( #text ))
- fix: issue in API on_state (thanks @Shovel)
- fix: hex viewer cannot scroll big file to the end

1.117.6 (2020/11)

+ add/change: option "mouse_middle_click", it replaces 2 options "mouse_mid_click_scroll"/"mouse_mid_click_paste", and adds choice "goto definition"
+ add/change: with option "paste on middle click", don't set caret pos, just paste (thanks @Ordu)
+ add: on Unix, just ignore Windows-only plugins (they can be installed e.g. by syncing 2 PCs)
+ add: if new tab was opened without disk file, it was edited, its content was erased, then don't show confirmation to save that tab on closing (thanks @dinkumoil)
+ add: mouse hover highlighting for statusbar cells
+ add: can work if CudaText runs via symlink on Unix systems (thanks @Peter2121)
+ add: option "auto_delete_bookmarks" (thanks @JairoMartinezA)
+ add: lexer C++: fixes for code-tree
- fix: fixes for standard plugins' translation (patch by Markus)
- fix: dragging of sel-rect in minimap stopped when mouse goes lefter/righter of minimap
- fix: on deleting block with n bookmarks, bookmarks shifted upper too much

1.117.0 (2020/10)

+ add: detect encoding also by Python standard from https://docs.python.org/3/reference/lexical_analysis.html#encoding-declarations (thanks @tmsg)
+ add: Wiki topic https://wiki.freepascal.org/CudaText#Encoding_detection
+ add: options "find_indent_vert"/"find_indent_horz" are now respected in Undo/Redo commands (thanks @xcme)
+ add: option "find_indent_vert": big values >= 100 (or <= -100) now center position vertically
+ add: plugin Project Manager supports "Find in Files 4" with its command "Find in directory" (thanks @dhealey, @kvichans)
+ add: plugins Comments, Sort, Emmet are translatable like many others (patch by Markus)
+ add: can assign hotkey to Left Backslash key on 102-key keyboard (thanks @xcme)
+ add: after "save file as", clear read-only editor state (thanks @MrPiccad)
* change: shortened button captions in Find dialog: "First", "Next", "Prev", "Select", "Mark"
* change: deleted static auto-completion files for JS and Python (data/autocomplete/*.acp), because they interferred with Snippets plugin and intelligent auto-completion plugins
- fix: even with "def_encoding_utf8":true, app must not activate UTF8 if file has clearly not the UTF8 encoding (thanks @tmsg)
- fix: some plugin APIs didn't properly shift carets+markers (thanks @MiroslavMatas)

1.116.0 (2020/10)

+ add: Find dialog: when "search in selection" is checked, and "find first"/"find next" is called, editor places marker instead of caret, so we don't break the selection, and can "find next" all matches (thanks @xcme)
+ add: Wiki topic https://wiki.freepascal.org/CudaText#Text_searcher_features
+ add: Wiki topic https://wiki.freepascal.org/CudaText#How_to_support_Spell_Checker_in_lexer
+ add: plugin "Sort" has new command "Sort char-separated values in lines"
+ add: option "marker_size"
+ add: command "duplicate line(s)" supports multi-carets
+ add: command-line options -nsl and -nss (option -ns is a shortcut to both of them) (thanks @tmsg)
+ add: command-line option -z=uhex
+ add: CSS auto-completion: more complete colors list for color-properties (thanks @d-mal)
+ add: CSS auto-completion: add standard values to all properties: inherit, initial, unsert, var() (thanks @d-mal)
+ add: CSS auto-completion: better auto-inserting of bracket for functions
+ add: Unix: better support paths with ~/ (didn't work if app was run by external tools)
+ add: dialog Find/Replace: second press of Ctrl+F / Ctrl+R returns focus to editor (thanks @xcme)
+ add: dialog "Save tabs?" shows button "don't save/ keep in session" more often, now ignoring "t" in "ui_history_disabled" (thanks @tmsg)
+ add: lexer CSS: highlight names of "system colors" (thanks @d-mal)
+ add: lexer XML: better support Spell Checker (thanks @EcherArt)
- fix: crash and not sync'ed editors when in splitted view (thanks @xcme)
- fix: code-tree was reset on change grouping mode to "1+2" (thanks @JairoMartinezA)
- fix: "distraction-free mode" was partially reset: by Option Editor plugin call, by lexer changing
- fix: some plugins crashed when app was run with -s= command-line param
- fix: flags in "View / Toggle unprinted chars" were reset on switching tabs (thanks @xcme)

1.115.0 (2020/10)

+ add: HTML auto-completion works also inside 1) A HREF="...", 2) LINK HREF="...", 3) IMG/SCRIPT/INPUT/FRAME/IFRAME/AUDIO/VIDEO/SOURCE SRC="..."; it shows there folder names and file names with appropriate types (depends on tag)
+ add: rewritten Wiki topic https://wiki.freepascal.org/CudaText#Auto-completion
+ add: Windows shell extension: CudaText context menu entry now shows up in context menu of drives, folders, background of a folder's Explorer window and the Desktop. (by Andreas Heim @dinkumoil)
+ add: Undo/Redo handles markers too; format of "persistent undo" files is extended, but it's backward compatible
- fix: if caret is at the end of long line, and we toggle word-wrap, editor should scroll to new caret pos (thanks @xcme)
- fix: scaling of sidebar buttons (thanks @th-schall)
- fix: cannot scroll to the left by mouse selection; now it works if cursor is on bookmark column or folding column (thanks @MrPiccad)

1.114.0 (2020/10)

+ add: CSS auto-completion:
    a) added lot of missed CSS props/values (by @d-mal)
    b) added completion for CSS @-rules and pseudo-elements beginning with ":" and "::" (thanks @d-mal)
    c) don't suggest CSS props/values outside of {} brackets
+ add: all auto-completions are disabled if caret is inside comments
* change: before, "Save" command was ignored if called on unmodified file. It confused users, when file was modified by external program, and was not like in ST3. To change it, added option "ui_save_always" with changed default. (thanks @gh_origin, @tmsg)
* change: Find dialog: action buttons are aligned to the right
* change: several options "find_show_nnnn" replaced with single string option "find_hidden_buttons"; more buttons can be hidden now
+ add: don't treat ASCII chars "end of file" and "form feed" as non-text
+ add: updated FreePascal JSON library, now it don't allow incorrect strings/booleans/numbers
+ add: Windows: UI theme has additional 5 colors "top menu ...", all "none" by default to use "tabs ..." colors
+ add: Windows: option "ui_menu_themed" (thanks @tmsg)
+ add: Unix: when Python engine is not detected, app adds menu item "Plugins / Find Python library". It calls new command "find python library" (available in Command Palette). This command finds the library, suggests several possible filenames, and writes chosen filename to user.json.
+ add: lexer JavaScript: don't highlight "class" after dot, better detect RegEx literals
- fix: command-line option -ns must win over "ui_reopen_session_cmdline":true (thanks @tmsg)
- fix: Windows: error with command-line filename '\name.ext' (thanks @tmsg)
- fix: regression in regex engine with ^ and $ (thanks @hycmos)
- fix: save-as dialog forced .txt extension for names w/o extension (thanks @tmsg)

1.113.0 (2020/09)

+ add: option "numbers_style" has additional value for "relative" line numbers, almost like in VSCode
+ add: Windows: top menu bar is themed
+ add: dialog "File is too big" also shows file size (in Mb)
+ add: dialog "File is maybe not text" must not appear at all for too big files
+ add: for files bigger than 50Mb, editor won't detect file encoding and force UTF8 (reason: much slower loading for non-UTF8 encoding)
+ add: Wiki page https://wiki.freepascal.org/CudaText_plugins
+ add: Wiki topic https://wiki.freepascal.org/CudaText#Tabs_features
- fix: few bugs in lexers C++, JavaScript

1.112.1 (2020/09)

+ add: Project Manager: read folders much faster (avoid reading additional subfolder level)
+ add: Project Manager: option "File masks to ignore" replaced with 3 options: "Ignore files", "Ignore folders" (both are ;-separated Unix wildcards) and "Ignore all hidden files/folders"
- fix: Project Manager: handle Windows permission errors, fix showing root dirs like C:\ (thanks Henrik)
- fix: regression on minimap painting

1.112.0 (2020/09)

+ add: improved TRegExpr engine: supported negative lookbehind: (?<!foo)bar
+ add: tooltip of "show function-hint" has changed colors, font, position near the caret (thanks @OlehL)
+ add: tooltip of "show function-hint" hides by Esc, by moving caret to another line, by window moving/resizing (thanks @OlehL)
+ add: option "ui_alt_hint_time"
+ add: option "ui_tab_x_rounded"
- fix: few minor visual bugs with minimap (thanks @xcme)
- fix: Windows "Restore window" bug (Lazarus bug, thanks @JairoMartinezA)

1.111.5 (2020/09)

+ add: to improve rendering speed, minimap is now rendered via BGRABitmap library (much faster, but program size is bigger by ~1.5Mb)
+ add: reworked cache of highlighted lines; now it works faster and has auto-adjusted size (it's changed to big value on toggling minimap on)
+ add: mouse-wheel scrolling goes smoothly over inter-line gaps
+ add: option "minimap_scale"
- removed option "renderer_cache_lines"

1.111.0 (2020/09)

+ add: improved TRegExpr engine:
    + regexp: supported recursion: (?R) with alias (?0)
    + regexp: supported subroutine calls: (?1) ... (?89)
    + regexp: supported possessive quantifier: a++ a*+ a?+ a{n,m}+
    + regexp: supported atomic groups: (?>foo|bar|ok)
    + regexp: supported negative lookahead: foo(?!bar)
    + regexp: supported Perl syntax for named groups: (?'name'expr) and subroutine calls: (?&name)
    + regexp: supported Unicode characters after U+FFFF (ie surrogate pairs) for '.', '\W', '\S', '\D' etc.
    + regexp: added \z; changed behavior of \Z (match also before final line-break)
    + regexp: added error message for unknown metachars (like \X \E)

+ add: option "ui_reopen_session_cmdline" (thanks @notteumani)
+ add: before: editor doesn't load last session when command-line file is opened; now: it also doesn't save current session in this case, so old session is not lost (thanks @notteumani)
+ add: lexer C++: keywords of C++20
- fix: issue with "Add next occurrence of selected word" (thanks @JairoMartinezA)
- fix: engine of lite lexers: broken highlighting after horizontal scrolling (thanks @skarasov)
- fix: lexer Python: code-tree for func "def name(param: type)" (thanks @skarasov)
- fix: lexer Python: code-tree for "class name(dotted.name)" (thanks @OlehL)
- fix: regression in Markdown tree-helper (thanks @kvichans)

1.110.0 (2020/08)

+ add: improved TRegExpr engine: supported Unicode categories \pL \p{L} \p{Lu}, and negative variant with \P. List of available categories: https://www.compart.com/en/unicode/category/
+ add: option "renderer_offsets", to fix rarely visible artifacts on Linux (thanks @VicDobrov)
+ add: lexer reStructuredText: fix 2 kinds of code-blocks; add rule for table blocks; add rule for local links
+ add: lexer Bash: highlight invalid hex/octal literals (thanks @VicDobrov)
- fix: incorrect horizontal caret pos, when line with full-width chars is scrolled horizontally (bug first found in 2017, thanks @David-Croose)
- fix: after command "find cur selection next", command "find next" must reuse text (thanks @kvichans)
- fix: search engine bug when search text is multi-line + Unicode (thanks @kvichans)

1.109.2 (2020/08)

+ add: lexer JSON: fully reworked, now it underlines all invalid chars, invalid float numbers, identifiers
+ add: lexer PHP: fixed HereDoc blocks; supported Unicode class names
+ add: macOS: system dialog from menu item "Edit / Special characters" is now supported (thanks Lazarus developer Dmitry)
- fix: regression: cannot continue column-selection after carets are moved (thanks @kvichans)
- fix: lexer Python: regression with some blocks folding
- fix: lexer Bash: regression with style of "if(", "for("

1.109.0 (2020/08)

* change: changed location+format of saved window positions in history.json (main window, floating panels, resizable dialogs)
+ add: options for statusbar font: "ui_font_statusbar_name"/"ui_font_statusbar_size", defaults are UI font name/size (thanks @VicDobrov)
+ add: theme colors for statusbar font/background, defaults are "none"
+ add: don't run tree-helper on huge files, re-use option "lexer_folding_max_lines"
+ add: if file was deleted/renamed outside of CudaText, "Save" should re-create the file (thanks @JairoMartinezA)
- fix: bug in rendering unprinted "trailing only" whitespace (thanks @JairoMartinezA)
- fix: lexer Bash: (( )) blocks inside $() (thanks @VicDobrov)

1.108.5 (2020/08)

+ add: improved RegExpr engine:
    + support named groups: (?P<name>expr) and named references: (?P=name)
    + support named groups in "replace with": ${name}
    + support positive lookahead: foo(?=bar)
    + support positive lookbehind: (?<=foo)bar

1.108.2 (2020/08)

+ add: lexer Python: don't highlight words after dot (e.g. 'type' 'len'); fold "async for"
- fix: commands "brackets: pair highlight..." state was reset on tab switching (thanks @John)
- fix: fixed API ed.cmd() for plugin Differ (thanks @hycmos)
- fix: lexer YAML: folding
- fix: lexers C, C++: fixes for "struct" code-tree items, number literals
- fix: treehelper for Markdown: bug with `code` at line start
- fix: "floating point error" in Python on Win10 2004 (thanks @John)

1.108.0 (2020/07)

+ add: lexer YAML is preinstalled
+ add: lexer Markdown: support YAML front matter
+ add: lexer Bash: highlight (( )) blocks, [[ ]] blocks; highlight meta-chars starting with ! and %; support \ escape; fold brackets {}
+ add: lexer Bash: highlight HereDoc blocks (almost all kinds, even with quoted block id)
+ add: lexer Bash: show in code-tree funcs w/o keyword "function"
+ add: lexer PHP: support _ in numbers; reworked HereDoc support; fixes
+ add: command "Check for updates" is supported on Linux/macOS/BSD
+ add: on loading session with missing files, show 'NOTE: File from session not found' errors in console
+ add: show number over Console sidebar button for 'NOTE:' lines too
- fix: lexer JS: bug with '==<?php ?>', bug with comment '/********/'
- fix: regression in Python lexer: style of func names
- fix: regression in Project Manager: options dialog could not save options
- fix: regression for last session loading when using command line (thanks @MiroslavMatas)

1.107.5 (2020/07)

+ add: option "ui_tab_show"
+ add: option "ui_sidepanel_on_start" (thanks @CoMPi)
+ add: option "ui_bottom_on_start"
+ add: option "ui_tab_padding" (thanks @wb027)
+ add: option "ui_tab_font_scale" (thanks @wb027)
+ add: ui-theme item "tabs, font, active tab" (thanks @wb027)
+ add: command "toggle ui-tabs"
* change: if command-line files/folders passed, don't load session on start (thanks @wb027)
- fix: lexer Python: number-rule fix (thanks @kvichans)

1.107.0 (2020/07)

+ add: Find dialog shows "Find" field syntax-highlighted in RegEx mode; program also does underlining of mismatched ()[] brackets there
+ add: option "carets_primitive_column_sel", which activates new mode of column selection; see new wiki topic https://wiki.freepascal.org/CudaText#Behaviour_of_column_selection
* change: new option is "true" by default, mode of column selection is changed
+ add: API finder_proc (thanks @kvichans)
+ add: modern credits list in the About dialog
+ add: lexer Bash: support comments inside `backticks`
- fix: issues with commands "move lines up/down", occuring on the final line w/o EOL

1.106.5 (2020/07)

+ add: plugin Sort has new option [sort] max_lines=5000 in settings/plugins.ini, to avoid almost-hanging on huge documents
+ add: Project Manager: double click switches file-tab from "preview" to "normal" style (thanks @kostyarin_)
+ add: zip plugin installer: instead of 2nd confirmation about plugin hotkeys, show single confirmation with more buttons
+ add: auto-detect XML for UTF-8 BOM too
+ add: better value of "links_regex"
+ add: API allows to register plugin events also in settings/plugins.ini
* change: Project Manager uses plugins.ini for events, so if you have used its options "Load on program start"/"On opening GIT/SVN repo...", check these options again in config dialog
- fix: lexer Python: regression for r- f- b-strings
- fix: regression in "Title case", "Sentence case" commands for multi-line selections
- fix: Emmet work was wrong after Unicode chars (thanks @d-mal)
- fix: export to HTML: entities like '&nbsp;' were lost on export
- fix: lexer "Search results": fixed indent-based folding
- fix: lexer HTML: bug for '<table width=30%>'; bug for '< nottag' (thanks @Anonymoustus)

1.106.0 (2020/06)

+ add: deepest fold-range, containing line of first caret, now has highlighted lines on gutter; added color in UI-theme for this
+ add: better detection of word-boundary in search (not RegEx), to be like in VSCode and others
+ add: better "links_regex" value (thanks @JairoMartinezA)
+ add: on clicking hyperlinks, app shows additional confirmation button; this is controlled by new option "ui_links_confirm"
+ add: support combo-hotkeys with simple letter in 2nd/3rd part, e.g. Ctrl+Q H (thanks @tmsg)
+ add: encodings koi8, iso...15 added to viewer as well
- fix: crash in "export to HTML" (thanks @MiroslavMatas)
- fix: regression in folding in HTML/XML lexers
- fix: mouse click on selected block did not place caret on clicked pos (thanks @hycmos)
- fix: plugin Session Manager was inited for filenames w/o extension
- fix: hotkeys with Num-keys did not work (thanks @tmsg)
- fix: regression with option "nonword_chars" (thanks @hamasaki)

1.105.5 (2020/06)

+ add: option "lexer_folding_max_lines" - when document has too many lines, parser doesn't find fold-blocks
+ add: reworked parser code which handles indentation-based folding (e.g. in Python); reworked lexer Python for this; all lexers in add-ons which use indentation-based folding will be reworked soon
+ add: for Python lexer, fold-blocks endings now exclude commented lines
+ add: on editing in Python, parser better updates fold-blocks started above caret (thanks @OlehL)
+ add: on first command entering in Console, app auto-runs line "from cudatext import *", so you don't need to do it
+ add: documentation: readme/tutorial/LexerIndentFolding.odt
* change: removed option "ui_max_ranges_codetree" (use "lexer_folding_max_lines" instead)
- fix: slow rendering of viewer control under GTK2 (Linux/BSD)
- fix: ui-tab dirty flag was not updated sometimes (thanks @dinkumoil @OlehL)
- fix: broken folding after running "move line up/down" many times fastly (thanks @OlehL)
- fix: replace with confirmation: did not respect options "find_indent_*"
- fix: regressions in hotkey system (thanks @tmsg)

1.105.0 (2020/06)

+ add: rewritten system of keymapping, how keymappings are assigned to documents. Previous system was bad. It was slow (each tab switching was loading lexer-specific hotkeys from file). It had bugs (lexer-specific hotkeys did not load sometimes, see GitHub issues 2620 2648). (thanks @OlehL)
+ add: internal caching of calculated hyperlinks; maybe (not visible on average PC) it gives smoother scrolling by Up/Down arrows
+ add: zip package installer shows additional confirmation to install hotkeys, if plugin provides them (e.g. CudaExt provides ~50 hotkeys, not OK for some users)
+ add: dialog "Configure hotkey" has additional "Set" button which makes "Clear"+"Extend"
+ add: support encodings: koi8r, koi8u, koi8ru (thanks @eastorwest)
+ add: option "newdoc_lexer" allows lite lexers too
+ add: better value of "links_regex"
- fix: floating groups didn't show ui-tab icons
- fix: input of complex hotkeys (like "Alt+1 * Alt+2") had "shared history" for all documents
- fix: width of some Unicode chars (thanks @ritmation)
- fix: Linux/BSD: rendering of tab-chars (thanks @tmsg)
- fix: lexer Markdown: rule for ``` (thanks @JairoMartinezA)

1.104.0 (2020/06)

+ add: much faster rendering on Linux (gtk2) for texts with Unicode (but not full-width) chars
+ add: several internal Unicode functions are optimized, which speeds up case-insensitive search, whole-word search, \w in regex
+ add: better value of "links_regex" (chars like '()[]#,:' appear in URL only after '?')
+ add: detect read-only also on "File / Reopen" (thanks @Petrik_Pjatochkin)
+ add: lexer Markdown: many improvements, including folding of fenced blocks
* change: removed option "hex_chars", maybe later will be replaced by another option
- fix: Project Manager messes with folder of Open/Save-as dialogs (thanks @kvichans)
- fix: lexers HTML, XML dynamic highlighting was shifted

1.103.5 (2020/06)

+ add: command-line option -id=name to set single-instance id, on Unix (thanks @tmsg)
+ add: improve work of command-line file masks with relative paths, on Unix, with single instance (thanks @tmsg)
+ add: option "max_line_len_parsed" (thanks @tmsg)
+ add: option "ui_history_disabled" has sub-item to disable only selection (thanks @hamasaki)
+ add: lexer Lua now has dynamic-highlighting rules (thanks @tmsg)
* change: change default value of option "unindent_keeps_align" to be like ST3
- fix: program didn't save files on closing, if "ui_auto_save_session":true and "ui_history_disabled":"t" (thanks @tmsg)
- fix: regression for Undo after Save (thanks @hamasaki)
- fix: command "focus next group" didn't work sometimes (thanks @MiroslavMatas)
- fix: some commands and APIs didn't respect read-only mode (thanks @wibotwi)
- fix: crash on regex replace if replace-with is "$" (thanks @wibotwi)
- fix: crash if option "links_regex" has invalid regex
- fix: regression in handler of "ui_notif_confirm":1 (thanks @kvichans)
- fix: regression in commands "fold/unfold/toggle block at current line" if lexer don't show "staples" (thanks @MiroslavMatas)
- fix: commands "find current word/selection next/previous" did not respect options "find_indent_*" (thanks @kvichans)

1.103.0 (2020/06)

+ add: better logic of "line states": now "added" lines don't change state to "modified" during editing (thanks @tmsg)
+ add: allow to disable storing some elements to history/session, via new option "ui_history_disabled" (thanks @tmsg)
+ add: allow to specify underscore "_" as non-word char, by placing at as _first_ in "nonword_chars" option (thanks @tmsg)
+ add: option "spacing_y" now has OS suffix
+ add: option "zebra_step"
+ add: API to get/set editor font
+ add: API to get/set editor hyperlinks behaviour
* change: improved logic of undo/redo a little, additional caret jump will appear on redo (thanks @akizuha)
- fix: regressions in search for multi-line text and "find selection next" (thanks @kvichans)
- fix: macros with repeated commands to move caret (e.g. "caret line down" 100 times) did only 1 move (thanks @tmsg)
- fix: 3 years old issue. If complex commands are invoked via fastly pressed hotkeys, some commands were lost. E.g. if hotkey for "toggle line comment" was pressed fastly 20 times, it could run ~17 times. (thanks @kvichans for seeing it)
- fix: Windows: "cannot create file" error if program runs from "Program Files" folder. You should not put CudaText to "Program Files".
- fix: commands "close tab", "close all tabs", "close other tabs" didn't work correctly when floating group is active
- fix: minor issues in HTML auto-completion

1.102.0 (2020/06)

+ add: optimizations in lexer engine; tests on huge XML/HTML files ("ui_max_size_lexer":150) show that parsing is faster (than v1.100) 1.2 - 2 times
+ add: Find dialog allows backward search even in RegEx mode (thanks @tmsg)
+ add: to speedup rendering, program uses predefined char widths for the following: Cyrillic, Greek, German, Japanese, Chinese, Korean, Hebrew, Arabic, Indian
+ add: on moving caret left/right, skip positions of combining (accent) chars, like other programs do
+ add: better render combining (accent) chars on Linux/macOS
+ add: command line parameter -nn
+ add: option "renderer_cache_lines"
* change: removed option "unicode_wide_allowed"
* change: removed menu item "File / Export to HTML" (command still exists in Command Palette)
* change: in parser's RegEx engine, removed support of rarely needed \l \L \g \G
- fix: very old problem in parser's RegEx: \s did not catch line-breaks (it affects e.g. HTML lexer, it has rule which finds JS blocks)
- fix: problem in API: "ed" got wrong editor for "floating groups" after plugin shows modal dialog
- fix: "Find next" with RegEx did continue the search from the last found location and not from the caret (thanks @tmsg)
- fix: Emmet plugin bad result if called after '<a href="text"'
- fix: ui tab does not show tooltip after moving it with "move tab to next group" (thanks @dinkumoil)

1.101.5 (2020/05)

+ add: optimization in unfolding code, so unfolding of ranges, which have lot of folded subranges, is ~20x faster
+ add: optimization in rendering of "colored ranges" (they are present in Bash lexer for $(...) and AutoIt lexer for multiline comments). Syntetic test files, with huge count of colored ranges, show much faster scrolling.
+ add: option "ui_notif_confirm" to enable confirmation on file auto-reloading
+ add: dialog "Save Tabs" has new button "Toggle"
+ add: lexer Lua: better code-tree for functions in class; folding of {}
+ add: commands "move tab to group 1", "move tab to group 2"
+ add: commands "move tab to group floating-1/ floating-2/ floating-3"
- fix: lexer JS: highlighting of regex'es
- fix: folded ranges didn't restore from history (if scroll pos: on top)
- fix: opening files in "preview tab" (Project Manager) gave incorrect filename sometimes (with "ui_notif":true)

1.101.0 (2020/05)

+ add: undo-data records also "line states", ie "undo" reverts "line states" to initial value (thanks @tmsg)
+ add: command line: support key -s to specify custom settings folder (thanks @tmsg)
+ add: command line: support file masks with '*', e.g. "cudatext readme/test*.htm*" (thanks @tmsg)
+ add: when "unprinted symbols" are visible, render curved-arrow for wrapped parts of long lines (thanks @tmsg)
+ add: paired file tabs (2 files in a single tab) now correctly save/restore to/from sessions
+ add: for stability, when user removes lexer in Lexer Library dialog, app doesn't deallocate lexer object but only "marks" it (prevents access to deallocated memory objects)
+ add: Wiki topic: https://wiki.freepascal.org/CudaText#Dialog_.22Save_tabs.22
* change: changed format and file extensions of persistent undo/redo (used with "undo_persistent":true)
- fix: bug in regex engine with regex like [\.-] and [.\-] (thanks @SlMaker)
- fix: lexer Batch issues
- fix: several editor settings (wrap mode, show minimap/micromap/ruler/line-numbers/folding/unprinted) could not load from lexer-specific configs (thanks @tmsg)
- fix: Project Manager crash on calling Project Properties (thanks @JairoMartinezA)

1.100.0 (2020/05)

+ add: options "statusbar_nnnn" support new macro {selchars} - total number of selected characters
+ add: option "mouse_click_links"
+ add: option "max_line_len_for_accurate_width"
+ add: open URLs and e-mails (with and without "mailto:") by double-click
+ add: open URLs starting with "www." and "ftp."
+ add: optimizations for "dynamic highlightings" code
+ add: switch ui tabs by Shift+wheel
+ add: Wiki topic: https://wiki.freepascal.org/CudaText#Sessions
+ add: Wiki topic: https://wiki.freepascal.org/CudaText#Markers
+ add: API to show button on sidebar's bottom without loading the plugin
* change: replaced 3 rarely needed options "unprinted_xxxx_scale" with single option "unprinted_symbols_scale"
* change: ui tabs: mouse wheel scroll step is now 20% of width
* change: toolbar button "Sort" was removed. It gave the same commands as "Plugins / Sort" but it had only 5 of all 20 commands.
- fix: plugin "Open URL" didn't catch double-click sometimes (thanks @JairoMartinezA)
- fix: folding icon on gutter did not work in some cases
- fix: Project Manager cannot open files in binary viewer sometimes
- fix: Project Managet cannot open recent projects
- fix: regex search bug with regex like "[.-]test" (thanks @SlMaker)
- fix: lexer PHP: several fixes for code-tree and folding
- fix: incorrect caret pos in long lines (len>500) with CJK chars (thanks @larrylau)
- fix: bug from 1.99, file can be loaded from session without lexer set

1.99.0 (2020/05)

+ add: speedup loading big ascii files by 5-6%
+ add: new big Wiki topic: https://wiki.freepascal.org/CudaText#CudaText_vs_Sublime_Text.2C_different_answers_to_questions
+ add: new big Wiki topic: https://wiki.freepascal.org/CudaText#Program_perfomance
+ add: plugin Lexer Detecter: speedup loading when no lexer found (110ms->2ms)
+ add: Find/Replace dialog: on regex error, show error more detailed
+ add: lexer Markdown: highlight checkboxes in lists: [ ] [x] [X]
* change: lexer HTML: don't fold <p> tags (tags produce folding icon which don't work when there're many tags on a line)
- fix: API ini_read/ini_write deleted quotes from quoted values (thanks @dinkumoil)
- fix: crash when CudaText is opened from file manager, with specific history data (thanks @dinkumoil, @OlehL)
- fix: bug in regex search with regex'es like "a+", "a{2,4}" (thanks @Petrik_Pjatochkin, @ritmation)
- fix: Project Manager: fuzzy search in "Go To File" was not handy (thanks @4goodapp)
- fix: crash on start on Linux (some Lazarus bug)
- fix: Emmet bug with "!" abbrev (thanks Rickard)
- fix: Emmet bug with "span.classname" (thanks Rickard, @d-mal)
- fix: crash of External Tools/ FindInFiles on files with null bytes (thanks @kvichans)
- fix: on app closing, hex viewer painted something on Windows desktop (thanks @dinkumoil)
- fix: not smooth edge of triangled ui-tabs
- fix: italic "comments" at line ends were cropped with some fonts

1.98.0 (2020/04)

+ add: number of errors in Console (number of lines "Traceback (most recent call last)") is shown over Console sidebar button
- fix: plugin "New File" bug with lexer XSLT (thanks @dinkumoil)
- fix: behaviour of Left/Right keys on multi-selection (thanks @JairoMartinezA)
- fix: bug in API timer_proc (thanks @kvichans)
- fix: can't open files from project when "ui_tab_disabled":true (thanks @Cauterite)
- fix: lexer Python: folding (thanks @JairoMartinezA)
- fix: lexer PHP: keywords
- fix: lexer HTML: JS in script tag

1.97.5 (2020/03)

+ add: Windows: .lnk files targets are now resolved
+ add: option "key_left_right_wrap_with_carets" (to be like EmEditor with multi-carets)
+ add: option "log_sessions"
* change: file history (caret, bookmarks etc) is now saved to session file *.cuda-session. This makes session files independent from main history.
* change: Ctrl+MouseWheel and commands "current document font size..." change editor's font scale by 10% steps, instead of font-size by 1
+ add: Emmet: expand abbreviation also by Tab-key (Tab-key works as usual if there is no abbreviation)
+ add: Project Manager: sets its current folder as folder of Open/Save-as dialog
+ add: command "current document font size: reset"
+ add: lexer HTML: default extension is now 'html'
+ add: lexer Bash: minor fix
- fix: bad work of HTML auto-completion with '<tag attrib=| >' and '<tag attrib="|" >' (thanks @AleXY)
- fix: bad saving of External Tools plugin hotkeys to keys.json (thanks @AleXY)
- fix: broken highlight of multi-line strings on editing text after them (thanks @AleXY)
- fix: invisible file tab in group-2 on loading session (thanks @kvichans)

1.97.0 (2020/03)

+ add: several commands, they work fast and don't keep Undo, they are intended for huge text files. All these commands don't consume additional memory (unlike in many other editors).
    + add: commands "(without undo) sort asc. / desc. / asc. ignore case / desc. ignore case".
    + add: command "(without undo) delete all blank lines"
    + add: command "(without undo) delete adjacent blank lines"
    + add: command "(without undo) delete all duplicate lines"
    + add: command "(without undo) delete all duplicate lines, keep blanks"
    + add: command "(without undo) delete adjacent duplicate lines"
    + add: command "(without undo) reverse lines"
    + add: command "(without undo) shuffle lines"
+ add: lexers HTML/XML show folded tags better (and old option "fold_style" allows to show them even better)
+ fix: fixed selection by mouse, when mouse cursor is after folded block rectangle
+ add: added plugin "Lexer Detecter" which is used when file is opened and it has no lexer, plugin suggests to download+install lexer from addons (it has database of all existing lexers)
+ add: second click on "Search" sidebar button shows Replace dialog instead of Find dialog
+ add: minor optimizations in editor control
+ add: export to HTML: removed empty first line; cleaned up HTML code
+ add: lexer Python: add styles for std functions, exceptions; rework word lists; highlight complex numbers

1.96.2 (2020/03)

+ add: highlight and open (by command "Open URL") e-mails, even without 'mailto:'
+ add: proper underline HTML colors #rgba, #rrggbbaa too
+ add: lexer C/C++: support multi-line strings (with \ before newline)
+ add: lexer PHP: separate style for "function modifiers", highlight system variables, more keywords
+ add: lexer PHP: show "traits" in code tree
* change: changed layout of lexer-parsing-progressbar in the right/bottom corner, it's always visible now
- fix: crash on start, when FTP plugin was active on exiting
- fix: crash on start, when document loads from session with wrapped state

1.96.0 (2020/02)

+ add: reworked strings storage system:
  + it takes less memory for ASCII text lines
  + for non-ASCII lines, it takes more memory, but it works much faster, so scrolling in smoother
+ add: rendering speed much increased at the end of huge lines (length>1M)
+ add: toggling word-wrap speed much increased on huge lines
+ add: bracket finder ignores long lines (length>500)
+ add: plugin Tabs List: command "Tabs List / Open" focuses plugin; plugin handles Enter/Space keys
+ add: lexer VBScript improved
+ add: lexer Ini improved
- fix: app didn't handle errors in plugins and crashed on them
- fix: app had saved redundant information to session files (now session files will be smaller)
- fix: for files loaded from session, app didn't save history (caret position, etc)
- fix: error after "Plugins / Sort / Remove blank lines"

1.95.0 (2020/02)

+ add: RegExpr engine updated, with lot of patches, see https://github.com/andgineer/TRegExpr/blob/master/History.txt
+ add: Python API speed optimized again (thanks @Artem3213212)
+ add: can scroll tab captions (when they don't fit) by mouse wheel
+ add: lexer Lua improved
* change: lexer PowerShell removed to add-ons
* change: removed option "ui_console_compact"
* change: reworked internal manager of side/bottom panels
- fix: lexers HTML/PHP/XML produced elements with newlines which gave some slowdown
- fix: command "find next" with regex and zero-length match
- fix: regex replace to "\n" in single line file
- fix: regex replace to "\t"
- fix: broken code-tree look if "ui_tab_position" is left/right
- fix: macro recording gave error when Find dialog button was pressed
- fix: editor restored bad scroll pos, on opening file from command line with wrap=on (years old bug)

1.94.0 (2020/02)

+ add: Project Manager improvements (show pretty paths in recent file list; fixed crash on unfolding deleted folder; use case-insensitive sorting)
+ add: program starts little faster (Linux/Windows: by 10..20%)
+ add: command line supports all params (-r -e -nh -z) for single instance mode too (thanks @dinkumoil)
+ add: command line parameter -i, to read the contents of stdin (Unix only)
+ add: command line parameter -ns, to disable loading saved session
+ add: if mouse selecting was started, and mouse is moving over gutter, selecting must continue
+ add: lexer Python: support Unicode ids, fix rules for hex/octal/binary numbers
+ add: lexer JavaScript: support in code-tree functions like "name: function(...){}"
+ add: lexer Markdown: support Unicode text
+ add: lexer HTML: proper highlight few more attribs
+ add: Addon Manager shows new dialog for "Download all" command
+ add: HTML auto-completion must insert "<" char if called on empty place
+ add: optimizations in Python API speed (thanks @Artem3213212)
+ add: show Go To dialog on clicking statusbar first cell
* change: lexers removed to add-ons: Diff, Makefile, Pascal, Properties, Ruby
* change: plugin Sort: changed config file to settings/plugins.ini, [sort] section
- fix: memory leak in TreeHelpers (thanks @Artem3213212)
- fix: command line param -n was broken on Windows
- fix: auto-completion was broken in PHP block (bad default of "autocomplete_html_lexers")
- fix: command "settings: reload/apply config" (thanks @OlehL)
- fix: commands didn't support paired file-tab: "save file", "save file as", "reopen file", "copy filename", "lexer properties"

1.93.0 (2020/01)

+ add: Emmet plugin: added command "Dialog" to show interactive preview dialog for abbreviations
+ add: Emmet engine now has several "emmet_" options (to replace "Emmet profiles" from SynWrite)
+ add: file viewer ( https://wiki.freepascal.org/CudaText#File_viewer ) gives popup menu on statusbar "mode" cell, to change viewer mode (text, binary, hex, unicode)
+ add: show ? marks when DBCS (Asian) codepages cannot convert chars
+ add: lexer PHP: support new heredoc syntax (of PHP 7.3)
- fix: Find/Replace: find-next for reg.ex. "\b" stopped at found position forever
- fix: Find/Replace: could not mass replace reg.ex. "\b" to for example "__"
* change: submenu "File / Encoding / ..." replaced with simple menu item "File / Encoding..." which calls popup menu
* change: renamed commands "zoom in" / "zoom out" to "current document font size: bigger" / "... smaller"
* change: deleted option "ui_tree_time_focus"

1.92.0 (2019/12)

+ add: support encoding UTF-32, LE and BE, with and without BOM
+ add: support encoding ISO-8859-15
+ add: plugin API for mass search, e.g. to speedup "Highlight Occurrences" plugin
+ add: command "font size: reset"
+ add: command "add next occurrence of selected word" must keep selection direction
+ add: must allow to save untitled+unchanged documents (do "Save as" for them)
* change: changed default of "indent_size" to 0 (auto-detect from tab_size/tab_spaces)
- fix: backward search for multi-line blocks with empty lines
- fix: lost editor focus with old color theme

1.91.0 (2019/12)

+ add: Windows: shell extension DLL (x32, x64), it was written by Andreas Heim (@dinkumoil). Run Cmd script from Explorer to install/uninstall the DLL.
+ add: Find/Replace dialog has new button "Replace global", to replace all matches in all opened documents
+ add: Ctrl+click on selection was ignored before, now it can start drag-drop with copying
+ add: option "key_bksp_wrap": allows BackSpace to go to previous line
+ add: dialog "Go to bookmark" reworked: it shows bookmarks in all opened documents; it shows tab titles; it has filter inputbox
* change: Command Palette commands "find first", "find next", "find all ..." now search for current text of Find dialog inputbox
- fix: lexer Bash: issue with line comment
- fix: must not clear code-tree on closing passive (lefter) tab
- fix: must not clear code-tree on clicking active tab

1.90.0 (2019/11)

+ add: Command Palette shows items "opened files: ..."
+ add: Command Palette shows items "recent files: ..."
+ add: Command Palette: support filtering by category: #p (plugins), #l (lexers), #f (opened files), #r (recent files)
+ add: Command Palette: Ctrl+J means "move down", Ctrl+K means "move up"
+ add: option "ui_tree_sublexers"
* change: Command Palette and other menu-dialogs: keys Home/End are used for input box, Ctrl+Home/Ctrl+End for listbox
- fix: command "Close all" ignored modified state of 2nd file in pair-tab
- fix: some APIs worked only for active editor, it gave issues in "File Type Profile" plugin
- fix: command "go to screen top" was broken
- fix: trying to fix rare program freezing with "ui_notif" option
- fix: listbox in sidebar plugins (Tabs List, etc) should use color of Code Tree, not of Command Palette
- fix: typing bracket with _backward_ multiline selection
- fix: re-opening UTF8-BOM file could show the BOM
- fix: horizontal scrollbar could hide even with scroll offset present

1.89.4 (2019/11)

+ add: bracket highlighting now also finds nearest surrounding brackets (like VS Code)
+ add: lexer C: fix keywords, fix ligatures
+ add: lexer C++: fix keywords, fix ligatures
+ add: lexer Ruby: fix keywords, fix ligatures
* change: bracket highlighting now ignores brackets in comments/strings (to show surrounding brackets in real code)
* change: deleted menu item "Help / Changelog"
* change: deleted folder "readme" from Linux/macOS installers

1.89.2 (2019/11)

+ add: horizontal scrollbar in Output/Validate panels (it auto shows for long lines)
+ add: don't run Multi Installer on first start, just show info message
+ add: lexer CSS: support more standard properties
+ add: lexer CSS: underline incorrect units after numbers
* change: replace option "hide_horiz_scrollbar" with "scroll_style_horz" (enum)
- fix: theme filenames in mixed case could not be used
- fix: file session did not restore saved encoding
- fix: not working HTML auto-completion tag list
- fix: incorrect multi-caret positions after Del on complex selections
- fix: slow start of plugin Config Toolbar
- fix: reset of file encoding after Reopen command

1.89.0 (2019/10)

+ add: built-in bracket highlighting, no more need in plugin Bracket Helper, and it works much faster than plugin. It supports most of plugin's features, including show brackets on gutter, including checks for syntax elements.
+ add: option "bracket_highlight"
+ add: option "bracket_symbols"
+ add: option "bracket_distance"
+ add: command "brackets: pair highlight: on"
+ add: command "brackets: pair highlight: off"
+ add: command "brackets: pair highlight: toggle"
+ add: command "brackets: jump to pair"
+ add: command "brackets: select to pair"
+ add: command "brackets: select to pair, inside"
+ add: plugin Spell Checker keeps font color of highlighted words
+ add: lexer JSON: reworked code tree
+ add: lexer Markdown: minor fixes, adapted for Spell Checker
+ add: Project Manager: "Go to file" command reworked, much faster now on big projects
+ add: Project Manager: feature from Kate editor: on opening a file from Git/SVN repo, project is created and file is focused in that project (if no named project was opened before); added option in the plugin dialog
- fix: macOS: crash on copying vertical block to clipboard
- fix: crash with non-ASCII text after showing Command Palette
- fix: plugin Tabs List: font options didn't work

1.88.3 (2019/10)

+ add: Linux: program can open virtual files like /proc/version, /proc/meminfo
+ add: command "markers: select to last marker"
+ add: command "markers: delete to last marker"
+ add: arrow keys skip position inside Unicode surrogate pairs
* change: menu item "View / Lexers" now shows dialog, like Command Palette
- fix: tree-helpers did not work (when no folding ranges)
- fix: Unicode surrogate pairs gave crash in Python plugins
- fix: rendering of Unicode surrogate pairs (when lexer sees surrogates as symbols)
- fix: plugin API sometimes changed file encoding to UTF16
- fix: Linux: dialog labels with CJK text were clipped

1.88.0 (2019/10)

* change: option "word_chars" replaced with "nonword_chars" (to be like Sublime & Atom)
* change: detection of file changes in external programs is rewritten. Now it uses thread, not timers (per each file-tab) as before. It should work more reliable and fast.
* change: confirmation "File was changed outside. Reload?" changed from messagebox to modalless panel inside file-tab
* change: clicking micromap doesn't move caret
* change: names of color themes now stores to user.json (reading of old setting from history.json is supported)
+ add: option "caret_keep_visible_on_scroll"
+ add: option "ui_notif" was returned back
+ add: paired file-tab: auto-reloading works for second file; if both files were changed outside, 2 "Reload?" prompts appear at the same time
+ add: don't reload file, which was deleted outside
+ add: during drag-drop of text fragment, editor shows red marker for drop position
+ add: zip file installer: for lexers and lite-lexers, support to install lexer-override settings in "lexer*.json"
+ add: plugin Tabs List: reworked, using listbox with x and circle marks
+ add: plugin Tabs List: added options in [columns] section to specify additional listbox columns (width values: >0 - in pixels, <0 - in percents, =0 - auto-stretch; show values: 0 or 1)
+ add: file with ASCII char 07 is still considered as text
+ add: command "ui: focus editor notification panel"
+ add: command "ui: hide editor notification panels"

1.87.2 (2019/09)

+ add: option "mouse_scroll_speed_vert"
* change: command "Select all" now doesn't scroll to document end; it's like in Sublime & EmEditor & GEdit
* change: new dialog to choose UI+syntax themes "Options / Themes...", instead of two menu-dialogs
* change: removed option "ui_notif"; to disable file auto-reload, set "ui_notif_time" to 0
- fix: show unprinted symbols "only in selection" was wrong with wrapped text
- fix: file saving with write-error stops file auto-reloading
- fix: issue with command "find current word next"

1.87.0 (2019/09)

+ add: can show unprinted characters only in selection (like Sublime). To do this, add char "x" to the option "unprinted_content"
+ add: selecting words by double-click: allow clicking after line end too
+ add: command "Toggle side panel / code tree" (same as "Show side panel / code tree" but it toggles)
+ add: command "Add next occurrence of selected word": must find not whole words, if not whole word was initially selected (like Sublime)
- fix: command "Add next occurrence of selected word": bug when no selection (didn't repaint editor)
- fix: program should not crash if file-tab is closed during lexer parsing
- fix: to hide Lazarus/GTK2 bug when mouse-over buttons remain highlighted, program disables this button highlighting on Linux
- fix: slow response of scrollbars on Windows

1.86.5 (2019/09)

+ add: dialog Go To allows negative line numbers and negative values in %, this goes relative to file end (like VS Code)
+ add: lexer parser optimizations: now parsing of big files is ~30% faster
+ add: minimap highlightes entire lines with selections, with theme color "current line BG" (similar to VS Code)
- fix: on big files (lot of folding ranges), program had big slowdown on text editing

1.86.0 (2019/09)

* change: Windows build upgraded to Python 3.6, option "pylib" (on Windows) is now ignored
+ add: Windows build: added support for Python 3.4...3.8; the existing python3x.dll with latest number from app folder is used
+ add: Windows build: Addon Manager has packages "Windows Python37 32-bit" and "... 64-bit"; after installing one of them, and app restart, app will use Python 3.7
+ add: drag&drop from Windows Explorer to floating groups (f1, f2, f3)
+ add: Char Map dialog has hotkeys Ctrl+Up, Ctrl+Down to change combobox choice
+ add: plugins "Terminal", "Find in Files": input fields consider option "ui_active_border": true
+ add: lexer JavaScript: code-tree supports function/class names with Unicode and $ char
+ add: lexer "Batch files" improved (by @dinkumoil)
- fix: macOS: wrong display of menu-dialogs (if nagative font size in user.json)

1.85.0 (2019/08)

+ add: on moving selection in Theme menu dialog, program previews selected theme (like Sublime)
+ add: program saves to history the last selected item in Command Palette
+ add: lexer VBScript improved (by @dinkumoil)
* change: deleted option "ui_listbox_centered", changed behaviour for its default
* change: function call-tip in plugin "Python IntelliSense" has different look and position

1.84.4 (2019/07)

+ add: allow zip packages with "type=cudatext-package": installs all files+folders into root of CudaText, including any number of data/* and py/* subfolders
+ add: allow zip packages with data with _empty_ "subdir" field
+ add: Tabs List: added config file with few options: show_index_group, show_index_tab, show_index_aligned, font_name, font_size
+ add: improved "single instance" code, so now it's possible to open N selected files from Windows Explorer (patch by Andreas Heim @dinkumoil)
+ add: new framework appeared in add-ons: CudaFormatter. Addon Manager and Multi Installer support it.
+ add: lexer VBScript improved (by @dinkumoil)

1.84.0 (2019/07)

+ add: on detecting lexer by file extention, if several lexers are Ok, menu dialog appears to choose lexer
+ add: menu Plugins is translatable: use files "data/langmenu/cuda_nnnnnn/ru_RU.ini" with section [menu] to translate
+ add: menu dialogs Translations/Themes/Bookmarks place initial selection in listbox
+ add: command "folding: fold selected lines" (makes persistent fold range, which stays after lexer parsing)
+ add: Project Manager: command "Open all project files" (like SynWrite)
+ add: lexer Bash: support base-N numbers
- fix: session loading did not restore group mode
- fix: various issues with lexer dynamic highlight (visible when dynamic highlight is on)
- fix: lexer border styles save/load to .cuda-lexops files
- fix: treehelper crash with Windows filename

1.83.1 (2019/06)

+ add: Find dialog: option "find_hotkey_op_tokens", hotkey for 'syntax elements'
+ add: Find dialog: 'syntax elements' has checkable style
- fix: plugin "Insert Time" bug

1.83.0 (2019/06)

+ add: dialog Find/Replace has option button to choose "syntax elements" (like SynWrite): any, only comments, only strings, only comments+strings, except comments, except strings, except comments+strings
+ add: embedded Emmet engine (written by Rickard Johansson); preinstalled plugin Emmet which uses this engine (old plugin "Emmet Lite" is now almost not needed, remove it).
+ add: sidebar shows "badges" with number of items in Output and Validate panels
+ add: ui-theme colors for sidebar "badges"
+ add: plugin "Insert Time": if text selected, replace it on insertion
* change: menu items in "Options / Settings-more" moved one level up

1.82.0 (2019/06)

+ add: Ctrl+Tab shows new dialog, which cycles through tabs in recently used order; it's controlled by new option "ui_tab_switcher_dialog"
+ add: Emojis are rendered better
+ add: Windows: place IME window near caret, close IME window on click in text
+ add: Windows: system log off is handled (current session is saved)
+ add: command "switch tab, to next"
+ add: command "switch tab, to previous"
+ add: command "switch tab, simply to next"
+ add: command "switch tab, simply to previous"
+ add: command "switch tab, dialog"
+ add: command "switch tab, to recent"
- fix: High-DPI on Linux
- fix: focused groups 2..6 were not detected for statusbar/title update
- fix: Ctrl+Tab didn't work in floating groups

1.81.2 (2019/05)

+ add: command "open file, in text viewer"
+ add: command "open file, in hex viewer"
+ add: command "open file, in unicode viewer"
* change: replaced option "ui_max_lines_codetree" to "ui_max_ranges_codetree" (which is more accurate limit)
- fix: multi-selection by mouse was broken in last few releases
- fix: very slow unfold action in huge files
- fix: block staples can paint incorrectly in huge files
- fix: changed tab's title can sometimes show without "*" mark
- fix: Find dialog: popup position with Alt+Down

1.81.0 (2019/05)

+ add: option "indent_auto_rule": RegEx which allows to make additional indent on pressing Enter
+ add: program can use _default_ lexer-specific configs from folder settings_default
+ add: few default lexer configs for "tab_size"/"tab_spaces": C, C++, CSS, JS, JSON, Pascal, Python...
+ add: few default lexer configs for "indent_auto_rule": Lua, Pascal, Python, Ruby (not needed for C-like lexers)
+ add: dialogs "Lexer library", "Lexer properties" made resizable, they save size
+ add: program saves to session name of current side-panel and bottom-panel
* change: 3 submenus in the Options menu - Themes-UI, Themes-Syntax, Translations - were replaced with menu-dialogs; added 3 commands to call them
- fix: plugin "Numbered Bookmarks" had incorrect bookmark color on dark themes
- fix: detection of "modified" state for 2nd file in pair-tab (e.g. default.json+user.json)

1.80.2 (2019/05)

+ add: double-click now selects a) group of spaces, b) group of symbol chars (like EmEditor)
+ add: lexers C, C++: show "typedef ...{...}" in code-tree
+ add: lexer JSDoc: highlight multiline typedefs {{...}}
- fix: crash during code-tree filling
- fix: macOS: bottom panel splitter moved bad

1.80.0 (2019/05)

+ add: UI can now be scaled freely, independing of OS high-DPI mode. Added options "ui_scale", "ui_scale_font".
+ add: more UI elements support scaling (minimap, micromap, splitters etc)
+ add: Project Manager supports "toolbar icons" of any size (before: only 16x16). Icon set "Mui" (icon size: 20, 24, 32, 48) was added to add-ons.
+ add: menu items in "Edit" menu are auto disabled (Undo, Redo, Copy, Cut, Paste, Delete)
+ add: don't show warning "File is maybe not text" because of char(27)
+ add: dialog "Save tabs?" saves its size
+ add: dialog "Char map" saves its size
* change: deleted option "ui_statusbar_height"
* change: deleted option "numbers_font_size"
* change: deleted option "ruler_font_size"
* change: deleted option "ruler_size"
* change: deleted option "micromap_width"
- fix: bugs with vertical scrollbar, it wasn't auto moved

1.79.2 (2019/04)

+ add: option "ruler_mark_caret"
* change: plugin file "install.inf": CPU names for "os=" line changed to longer names like in Free Pascal: i386, x86_64, arm, sparc
- fix: bug fixes

1.79.0 (2019/04)

+ add: option "zebra"
+ add: API
+ add: lexers C/C++: improved rules for float/int/hex numbers
- fix: few bugs with vertical sync-scrolling in Differ plugin
- fix: scrollbars did scroll by 1 pixel on clicking arrows, must scroll faster by char size
- fix: bug with wrong caret pos after pasting multiline block on empty line

1.78.5 (2019/04)

+ add: improve behaviour of option "auto_close_brackets":true, now it works with multi-selections too (brackets surround multi-selections)
+ add: on mouse selection, editor draws dotted frame to show mouse rectangle
+ add: option "show_mouse_sel_frame"
+ add: toolbar button "Options Editor" (calls Options Editor plugin dialog)
+ add: toolbar theme icon "opt.png"
+ add: command "selection: remove first caret"
+ add: command "selection: remove last caret"
* change: changed command name "expand selection to word" to more concrete "add next occurrence of selected word"
- fix: crash with plugin Config Menu and changed translation
- fix: bug in lexer engine for Unicode, which caused wrong tokenizing of Unicode names in Clojure lexer
- fix: Linux: must not set dialogs (e.g. Command Palette) border-style to "none", this causes dialog to have "system always on top" style

1.78.0 (2019/04)

+ add: API for EditorConfig plugin
+ add: show tooltip over UI tabs with filenames (instead of showing filenames in statusbar)
+ add: plugin Sort: added command "Remove duplicate lines, but keep blanks"
+ add: option "newdoc_ends" allows value for CR endings
+ add: on plugin installation app now skips all hotkeys (from install.inf) which are busy in config
* change: removed command "toggle menu bar"
- fix: CSS auto-completion bugs
- fix: option "saving_force_final_eol" behaviour
- fix: Windows: on rare PCs app hangs with hidden main menu
- fix: on switching tabs, word-wrap state was reset (with lexer-specific cfg)

1.77.2 (2019/03)

- fix: critical bug when BkSp/Del/letter pressing is reverted by editor
- fix: bugs with "ui_tab_disabled":true
- fix: memory leak with lexer usage

1.77.0 (2019/03)

+ add: preinstalled TreeHelper for Markdown
+ add: added tiny progress-bar for lexer parsing progress
+ add: added rendering of selection background, when it's after line end (with "caret_after_end":true)
+ add: option "autocomplete_close_chars"
+ add: improved context menu for "Tab size" statusbar cell
+ add: plugin Comments improved: stream comment for entirely selected single line is added inside that line; stream comment for entirely selected 2+ lines is added on 2 new lines
+ add: dialog "Settings - theme - syntax" shows colored marks in listbox
+ add: huge lines (length>4k) are now completely ignored by lexers (so file containing single huge line, e.g. minimized JSON, will take no time at all)
- fix: crash with Differ plugin (click on interline gap)

1.76.2 (2019/03)

+ add: command "convert tabs (leading) to spaces"
+ add: statusbar cell "Tab size" menu has additional items "Convert indentation to spaces", "Convert indentation to tabs"

1.76.0 (2019/03)

+ add: memory optimizations (less memory usage on mass-replace)
+ add: mouse wheel scrolling works also with pressed mouse button
+ add: AddonManager dialog "Remove add-on" improved: it allows to remove plugins, lexers, themes, translations, snippets
+ add: AddonManager allows to write in "registry" that plugins require another plugins; removed support for install.inf keys "req", "reqlexer" because AddonManager support must be enough
- fix: more fixing of corrupted encoding of "history files.json"

+ add: lexer JavaScript highlights JSDoc comments (added hidden lexer JSDoc)
+ add: lexer JavaScript improved: improved keywords, highlighted uppercase constants, better supported arrow functions, fixed many issues
+ add: lexers CSS, HTML improved (fixed rule "color")

1.75.4 (2019/02)

+ add: UI tabs: round X mark on mouse-over
+ add: HTML color underlining supports "hsl", "hsla" functions
- fix: issue with highlighting in e.g. Bash lexer
- fix: cannot set none-lexer after lite lexer
- fix: corrupted config "history files.json" for Unicode file names (Windows)
- fix: one-instance feature cannot handle Unicode file names (Windows)

1.75.0 (2019/02)

+ add: much improved memory usage by lexer engine (1.5...1.8 less memory on 2M+ size files)
+ add: much improved scrolling speed on big files with lexer (3M+ size)
+ add: preinstalled plugin "Snippet Panel"
+ add: TreeHelpers are handled by built-in code, and CudaTree plugin is obsolete - you must remove it (later plugin will be removed from Addon Manager)
* change: during text/folding change, editor is repainted more often, this helps to solve issue when command "Fold all" doesn't update screen
+ add: lexer C improved: better code-tree

1.74.0 (2019/02)

+ add: API to allow 2 files in a single tab. This is big help for Differ plugin. Big internal changes for this.
+ add: API to allow "background passive bookmarks". This is help for Differ plugin.
+ add: command "Settings - default/user" opens 2 files in a single tab
+ add: Addon Manager: if plugin folder is Git repo, Update dialog shows its version as "Git" and runs "git pull" when updating this plugin
+ add: Addon Manager: command "Install from Github" improved: now it suggests to clone Git repo or download it
* change: bookmarks render on minimap, while custom attribs (Editor.attr) do not render

1.73.0 (2019/01)

+ add: preinstalled plugin "Sort"
+ add: added toolbar sub-menu with "Change case" actions
+ add: added toolbar sub-menu with "Comment/Uncomment" actions
+ add: added toolbar sub-menu with "Sort" actions
+ add: speedup rendering when lot of color-attributes (Editor.attr) added
* change: history file now stores percent sizes of groups, not pixel sizes (sizes history will reset one time)

- fix: autocompletion: disabled auto-show inside comments/strings; other issues
- fix: all installed plugins (400+ command items) gave misfunction
- fix: clicking tab on inactive group must focus it
- fix: rare crash on dragging scrollbar (Windows)

+ add: lexer JavaScript improved: BigInt, underscore in numbers
+ add: lexer Markdown improved: speedup
+ add: lexer reStructuredText improved: many fixes
+ add: lexer C++ improved: support ## in ident name

1.72.0 (2019/01)

+ add: command "folding: fold block at current line" allows caret inside all block lines (not only block start)
+ add: option "find_show_extract", allows to hide Extract button
+ add: API (gaps improved)
* change: deleted 3 commands "folding: fold range....", because they were duplicated by commands "folding: fold block...."
- fix: caret pos after commands "scroll line up/down" was wrong sometimes
- fix: trying to fix Linux/Mac issue when caret stops blinking sometimes

* change: lexer removed to addons: C#
* change: lexer removed to addons: Perl
* change: lexer removed to addons: Tcl
* change: lexer removed to addons: Haskell
* change: lexer removed to addons: Apache config
* change: lexer removed to addons: Delphi resources
+ add: lexer Python improved: fix numbers with "_"
+ add: lexer Bash improved: highlight keywords in separate style; highlight func names, "-params"; highlight half of symbols in new style
+ add: lexer Ruby improved: disabled regex rule (temporary?); fixed heredoc rule; highlight "par:" and ":par"; highlight octals/decimals; highlight more std funcs
+ add: lexer C# improved: highlight modifiers in separate style; add 'await'/'async'
+ add: lexers C, C++ fixed

1.71.0 (2019/01)

+ add: dialog Find has new Extract button: it finds all matches in RegEx mode and puts them to a new document (plugin Extract Strings also does this)
+ add: Addon Manager "Update" dialog can update also lexers/themes/translations
+ add: if curly brackets {} typed and caret is inside them, Enter makes additional indented line between brackets (uses option "indent_size")
+ add: in the list of recent files, paths are shorted with ~ char (for home folder)
+ add: option "find_hotkey_extract"
* change: Addon Manager doesn't support versions in old files v.inf
- fix: reworked dragging of Minimap's highlighted area; now it must feel like Sublime
- fix: bug in Option Editor (leads to saving to lexer-specific config)

+ add: lexer C improved: highlight more keyword groups
+ add: lexer C++ improved: more std words; support hex&floating numbers
+ add: lexer CSS improved: more std words; better highlight @media; highlight units after number
+ add: lexer XML improved: handle incorrect comment endings

1.70.0 (2019/01)

+ add: smooth per-pixel scrolling in editor; it can be disabled by option "smooth_scroll"
+ add: option "undo_persistent" (disabled by default), which allows to keep Undo/Redo data in files, in .cudatext folder near original file
+ add: dialog Go To supports "+" at end of text to select to entered position (like SynWrite "Extend selection")
+ add: on saving file in 1-byte encoding, app checks that Unicode text can be converted to this encoding, and if it cannot, app saves file in UTF-8
+ add: tooltips for UI tabs buttons (x, +, <, >, v)
+ add: Console panel highlights special lines (>>> and Python errors)
+ add: Console panel shows result of entered expressions (even without "=" prefix)
+ add: Output and Validate panels have context menu
+ add: option "ui_tab_show_x" has additional value (show "x" for mouse-over and active tabs)
+ add: commands "focus group 1...6"
+ add: menu items "Toggle statusbar"/"Toggle sidebar"/"Toggle toolbar" now save option to user.json
* change: changed default value of option "pylib__linux" to "libpython3.so"
- fix: Windows: flickering on start if window was maximized

+ add: lexer JavaScript improved:
    + show anonymous functions (...)=>{...} in code tree
    + highlight true/false/null/this/undefined in new color
    + highlight func/class names in new color
    + highlight HTML tags (needed for CSS-in-JS syntax)
+ add: lexer Python improved: highlight func/class names
+ add: lexer Assembly improved: highlight more word groups, fix folding
- fix: lexer Ruby
- fix: lexer Bash

1.68.0 (2018/12)

+ add: option "ui_tab_variable_width", can set variable width tabs
+ add: option "ui_tab_size_x_max"
+ add: option "ui_tab_show_x_size"
+ add: too long UI tab captions are now truncated in the middle, by "…" char
+ add: Linux: selection is auto-copied to OS Primary Selection (for max line count ~200). So plugin "Auto Copy to Clipboard" is almost not needed (it can copy to usual clipboard though).
+ add: can continue column selection after multi-carets. After column selection made, then Shift+Right used (it converted column block to multi-carets), you can continue column selection by Shift+Alt+Down
+ add: plugin Multi Installer skips more error messages (about incompatible OS, API)
+ add: command "Close and delete file" also works in picture viewer and binary/hex viewer
* change: removed menu items "Help - Mouse usage", "Help - Lexers"
- fix: most of app hotkeys didn't work in picture viewer (e.g. F1, Ctrl+Tab)
- fix: Windows: dialog positions on 2 monitors configuration
- fix: macOS: Ctrl+click didn't call context menu in all places
- fix: macOS: minimap didn't paint

1.67.0 (2018/12)

* change: changed app subfolder in home folder:
       Linux, FreeBSD: ~/.config/cudatext (or $XDG_CONFIG_HOME/cudatext if variable set)
       macOS: ~/Library/Application Support/CudaText
+ add: much improved painting of minimap (spaces/tabs should paint correctly in multiline comments/strings, or in plain text)
+ add: localization of statusbar first cell (default values for ui_statusbar_* options are changed)
+ add: option "staples_props"
+ add: option "ui_menu_show"
+ add: option "ui_statusbar_show"
+ add: option "ui_toolbar_show"
+ add: command "ui: toggle sidebar"
+ add: option "autocomplete_commit_chars" (like VS Code)
+ add: option "ui_statusbar_panels" can specify auto-sized cells; default is changed for this
+ add: menu item "View - Toggle sidebar"
+ add: File Types config has default entry to detect XML by signature
+ add: option "autocomplete_add_opening_bracket" now doesn't insert bracket if it's already in text
+ add: UI theme color "block staples, for caret" (default is "none")
+ add: lexer Ruby much improved
* change: deleted option "staples_indent"
* change: deleted option "ruler_text_indent"
* change: history file don't store visible state of toolbar/statusbar/menubar, these are options in user.json now
- fix: rendering artifacts in Bash lexer on fast editing (issue #1710)
- fix: freezing by NN sec in big file, if pressing (Ctrl+A, Del) during lexer parsing

1.66.0 (2018/11)

+ add: statusbar have tooltips
+ add: dialog "Go to": can enter absolute decimal offset (d1000) or hex offset (xFF00)
+ add: dialog "Go to": title shows detailed hint
+ add: deepest block staple, containing first caret, is highlighted (like VS Code)
* change: removed 5 unprinted_ options ("unprinted_spaces", "unprinted_spaces_trailing", "unprinted_ends", "unprinted_end_details", "unprinted_end_arrow")
+ add: single option instead of deleted ones: "unprinted_content", and it has new sub-option to show unprinted spaces/tabs only at begin/end of lines
+ add: option "wrap_mode" has new possible value "wrap at minimum of window edge / margin" (like VS Code)
+ add: if many zip files opened via "File - Open file", they install silently, reported only count of zip files
+ add: for horizontal scrollbar, app adds 4 spaces after longest line (before: was 1, VS Code has 5)
+ add: assigned hotkeys Shift+Enter, Shift+BkSp (same as Enter, BkSp)
+ add: checking/warning for outdated files/dirs of CudaText, which should be removed by user
* change: end-of-line marks changed to "LF", "CRLF", "CR"
* change: encoding names "cpNNNN" changed to lower case
* change: removed option "newdoc_eol", instead added option "newdoc_ends" with new possible value Auto
* change: removed encoding aliases "ANSI", "OEM", now app uses/shows direct names only
* change: removed 2 commands for "ANSI" encoding alias
* change: removed option "unprinted_end_dot_scale"
* change: removed option "ui_statusbar_tabsize"
* change: separate config file "plugin groups.json" not used, instead used section "plugin_groups" in user.json
* change: separate config file "filetypes.json" not used, instead used sections "detect"/"detect_line" in user.json
* change: plugin Multi Installer: removed options to make menu groups
- fix: plugin Show Unsaved Changes failed on Rus text in "ANSI" encoding (one of reasons to remove aliases)
- fix: command "Invert selection" gave redundant carets at text begin/end

1.65.0 (2018/11)

+ add: option "saving_trim_final_empty" - delete redundant final empty lines
+ add: command "show+focus bottom panel / console"; default hotkey Ctrl+` was assigned to this command
+ add: command "show+focus bottom panel / output"
+ add: command "show+focus bottom panel / validate"
- fix: mass replace command has 2 stages, but stage-2 didn't show progress and couldn't be stopped
- fix: lexer HTML: disabled CSS highlight in attribute style="" because it gave problems

1.64.2 (2018/10)

+ add: new options for caret shape: "caret_view", "caret_view_ovr", "caret_view_ro"
+ add: caret shape(s) can have height bigger than full cell, e.g. 140%
* change: deleted options "caret_shape", "caret_shape_ovr", "caret_shape_ro"
+ add: improved lexer Markdown (highlighted math blocks, table chars; fixed definition lists)

1.64.0 (2018/10)

+ add: file-types config allows to detect lexer by first line of text. See details in the wiki.
+ add: option "ui_listbox_centered", allows to place menu dialogs (e.g. Command Palette) on screen center
+ add: option "ui_console_compact", allows narrow layout of bottom panels
+ add: improved auto-closing of brackets, it works if next char is one of ;:.,=>
+ add: app detects missed elements in old color themes, and shows it in console, on loading theme
+ add: dialog "Go to" ignores letter chars
+ add: command "settings: font size: bigger"
+ add: command "settings: font size: smaller"
+ add: lexer Markdown improved (<kbd> content highlighted, fixed rule for strikeout text)
* change: deleted deprecated command "Restore lexer styles"; you can delete old "settings/lexer styles backup.ini"
* change: deleted option "log_debug"
* change: deleted option "ui_float_groups_in_taskbar"
* change: deleted option "comment_full_line_if_no_sel"
- fix: fixes for non-blinking caret

1.63.0 (2018/10)

+ add: option "ui_auto_save_session", allows closing without questions, like in Sublime Text
+ add: option "lexer_postpone_until_shown", it makes much faster app start with lot of files from session
+ add: more system libs are placed to subfolder "py/sys"
* change: folder "py/requests" was moved to "py/sys", so delete this old copy: "py/requests"
* change: lexers Go, YAML removed to add-ons
- fix: painting gutter decoration on wrapped line
- fix: with complex multi-selections (from Invert Selection), Delete command could brake text (now text is Ok, only carets pos need fixing)

1.62.0 (2018/09)

+ add: new files "settings/*.cuda-lexops" - lexer properties, which user can change in "Lexer Props" dialog; they auto-save on OK press in Lexer Props, and auto-restore on app start
+ add: now it's not needed to use "Restore lexer styles" command (it was temp helper); command will be removed soon; and file "settings/lexer styles backup.ini" not updated now
+ add: Multi Installer: options "Make menu group 'nnn'" (make groups in Plugins menu)
* change: dialog "Lexer Properties": some fields (lexer name, commenting) made read-only
* change: dialog "Lexer Properties": removed "Style type" option

1.61.0 (2018/09)

+ add: API to show decorations on gutter (will be used in Brackets Hilite plugin)
+ add: Addon Manager: new versioning system. Before: only plugins versions are saved, to v.inf files. Now: all add-ons versions are saved to a single file, settings/packages.ini. Old versions (v.inf) still show in the Update dialog.

1.60.5 (2018/09)

+ add: option "ui_tab_recent_on_close"
+ add: bind Shift+Alt+click to vertical selection (from first caret to clicked pos)
+ add: updated Multi Installer (suggest SQL, suggest more addons for HTML/CSS/JS/PHP)
+ add: API (to modify tab context menu)
* change: renamed file "py/cudax_lib/__init__.py" to "py/cudax_lib.py"; please delete old folder (py/cudax_lib)

1.60.0 (2018/08)

+ add: ability to group Plugins menu: see Wiki help topic "Plugin groups config"
+ add: preinstalled plugin Multi Installer (by Artem Gavrilov). It allows to quickly install bunch of add-ons for popular languages (HTML/CSS/JS/XML/Python etc). It is also auto-called on clean app installation (when "settings/history.json" not exists).
+ add: improved lexer JavaScript (Code Tree made correct for anonym functions)
+ add: improved lexer CSS (fix coloring of properties)
+ add: improved TutorialLexer4, added "Advice for C-like lexers"

1.59.2 (2018/08)

+ add: Code Tree filter: save filter (with dropdown list) to session
+ add: theme color "treeview, selected BG, not focused"; allows to see if Code Tree focused
* change: deleted option "lexer_line_separators"
- fix: on opening session, closing all tabs with confirmation was not correct
- fix: API for tab groups

1.59.0 (2018/08)

+ add: detection of UTF16 LE/BE without BOM
+ add: grouping modes "6 vert" and "6 horz"
+ add: Code Tree filter: each tab has its own filter text (initially empty)
+ add: Code Tree filter: input is combobox now; use Enter to add current text to dropdown
+ add: tab context menu items: "Copy filename only", "Copy filepath only", "Copy full filepath"
+ add: Project Manager option "Open files by double-click"
+ add: improved lexer HTML: highlight <tag style="..."> content with CSS lexer
+ add: improved lexer Markdown: highlight {++add++}, {--del--}, {~~edit~~}
+ add: command "code tree: clear filter"
+ add: command "code tree: focus filter"
+ add: command "code tree: focus treeview"
+ add: command "ui: hide bottom panel"
+ add: on folding a range, caret(s) pos is corrected if it was inside that range
- fix: lexer Python: wrong highlighted strings like r'\'
- fix: CSS autocompletion inside <tag style="..."> didn't work with multiline string

1.58.2 (2018/08)

+ add: Code Tree has additional filter field
+ add: option "ui_tree_filter_layout"
+ add: more Unicode "white space" characters are shown in hex form
+ add: find/replace with regular expressions: "\w" supports all Unicode word letters
+ add: API
+ add: command line parameter -nh (no history)
+ add: command line parameter -z (open in viewer)
+ add: command "code tree: go to block for current node"
+ add: command "code tree: go to block for current node, and select"
+ add: on file opening, syntax colored text appears faster
+ add: on deleting lexer, its files .acp and .cuda-lexmap are also deleted
+ add: Project Manager option "Use 'preview tab' on item clicking"
+ add: Addon Manager now deletes most of its temporary files (please delete old folders cudatext_NNNNN in temp dir)
+ add: option "centering_width" now has effect only with "One group" mode
* change: option "ui_statusbar_tabsize" changed its default, now it supports app translation
* change: action "Set tab color" saves its settings not to user.json (please cleanup your user.json from *palette* keys)
* change: command line parameters: long keys variants are removed, only short ones left
* change: option "newdoc_eol" now affects Windows only (it's "Unix EOL" on Unix)
* change: deleted option "ui_statusbar_wrap"
* change: deleted option "ui_tree_show_lines"
* change: deleted option "ui_tree_cache"
- fix: minor UI fixes
- fix: Unix: support Python 3.7
- fix: Windows: support UNC filenames with "single instance"
- fix: lexer JSON (string rule)
- fix: group-mode commands *vert/*horz were swapped, if Config Menu plugin was used; you need to correct menu config for plugin

1.57.0 (2018/06)

+ add: preinstall plugin Options Editor (by @kvichans). And it can be updated in AddonManager as usual.
+ add: improve lexer JSON (different color for string before ":")
+ add: improve lexer Pascal (code tree for nested class of 1 level)
+ add: improve lexer Assembly (hilite labels, show labels in Code Tree, hilite dec/binary numbers with suffix)

1.56.4 (2018/06)

- fix: group-modes "1+2 horz/vert" gave errors
- fix: better support Auto Save plugin
- fix: lexer Pascal must support & char

1.56.3 (2018/06)

+ add: improved plugin "Insert Time": added command "Insert in default format", and command "Config" in "Options / Settings-plugins"
+ add: API

1.56.0 (2018/06)

+ add: option "autocomplete_html_lexers"
+ add: option "autocomplete_css_lexers"
+ add: add-ons can require other add-on(s) via install.inf file
- fix: HTML auto-completion must work in PHP files
- fix: HTML and PHP snippets were not adjusted for new PHP/PHP_ lexers
- fix: with "ui_one_instance":true, cannot open folder from 2nd instance (fixes by @vhanla, @fwhcat)
- fix: after "trim spaces" actions, must fix caret pos, if after line ends

1.55.1 (2018/05)

- fix: initial window position was forced to first monitor
- fix: app taskbar button was always on first monitor
- fix: position of auto-complete listbox sometimes not ok

1.55.0 (2018/05)

+ add: side panel and bottom panel can be floating (undocked).
    + menu item "View - Toggle floating side panel"
    + menu item "View - Toggle floating bottom panel"
    + command "toggle floating side panel"
    + command "toggle floating bottom panel"
+ add: floating tab groups 1/2/3. Now you can put tabs to 2nd monitor. To move tab to floating groups, in tab's context menu call "Move tab to group - Floating 1/2/3".
+ add: option "ui_float_groups_in_taskbar"
+ add: hotkey for "Command palette" set to famous Ctrl+Shift+P (second hotkey is F1)
* change: renamed menu item "Help - Commands" to "Help - Command palette"
* change: changed default of options "minimap_tooltip_show" and "fold_tooltip_show" to false
- fix: minimap rendering for PHP
- fix: lexers HTML, PHP (rule for &#nnnn;)
- fix: lexer Markdown (rule for header)

1.54.0 (2018/05)

+ announce:
  new plugin CudaTree with sub-plugins, TreeHelpers.
  Most useful TreeHelpers: for Markdown, for PHP.
+ add: API
* change: lexer PHP code tree simplified (hidden $vars, HTML tags, JS items)
- fix: highlighting error in "lite lexers"
- fix: issue when pasting block w/o EOL, at empty line

1.53.4 (2018/05)

+ add: it's possble to show current char in the statusbar: statusbar options support new macros {char} {char_dec} {char_hex} {char_hex4}
- fix: crash when AddonManager installs a lexer, with any lexers active in tabs
- fix: crash when Lexer Library deletes a lexer active in tabs
- fix: issue in LaTeX lexer with "dynamic hiliting"
- fix: lexer VBScript

1.53.0 (2018/05)

+ add: can specify different fonts for italic / bold / bold+italic font-styles:
     + option "font_name_i"
     + option "font_name_b"
     + option "font_name_bi"
     + option "font_size_i"
     + option "font_size_b"
     + option "font_size_bi"
+ add: option "autocomplete_up_down_at_edge"
+ add: option "find_suggest_in_selection"
+ add: command "toggle window always on top"
* change: changed default of "font_ligatures" to true
* change: deleted option "spacing_x"
* change: deleted commands "show side panel: tabs list / project" (doable via plugin actions)

1.52.0 (2018/05)

+ add: implemented editor tooltips over [...] folded marks
+ add: option "fold_tooltip_show"
+ add: option "ui_sidebar_on_right"
+ add: UI-theme "white"
+ add: lexer PowerShell improved
+ add: command "show side panel, project"
+ add: command "show side panel, tabs list"
- fix: command "show side panel, code tree"
- fix: TabsList plugin made "ghost panels" which overlap Code Tree

1.51.2 (2018/05)

+ add: lexer PHP changed - to support PHP linters, and PHP file type icons. It is cloned from HTML lexer, with micro changes. Old PHP lexer renamed to PHP_.
+ add: lexer VBScript: improved folding
+ add: API

1.51.0 (2018/04)

+ add: lite-lexers speed increased on very long lines
+ add: file tab captions show folder specifier, if they have same file name (e.g. 2 tabs with index.js will show as "index.js - dir1", "index.js - dir2")
+ add: AddonManager: menu item "Download: show links" (to paste to download manager)
+ add: Find/Replace dialog:
     + input fields are auto-sized
     + separate dialog is resizable
     * buttons have minimal width (for small screens)
     + option "find_show_select_all"
     + option "find_show_mark_all"
+ add: command "Scroll to begin"
+ add: command "Scroll to end"
+ add: command "Scroll page up"
+ add: command "Scroll page down"

1.50.0 (2018/04)

+ add: restored deleted unicode options:
       "unicode_proportional" (was "font_width", int, now boolean),
       "unicode_wide_allowed",
       "unicode_full_width"
+ add: dialog "File is maybe not text" gives additional buttons: viewer text mode, viewer unicode mode
+ add: option "ui_tab_disabled", to disable tabs (except first tab)
+ add: lexer Python: support for continuation char inside strings

1.49.0 (2018/04)

+ add: detection of letter chars improved, now should work for all international alphabets
+ add: command "Options / Settings - default/user", to open 2 configs
+ add: config "default.json" opens as read-only
* change: menu item "Groups" renamed to "=" and moved on top menu level
* change: changed console output: now output is buffered, and result is flushed to UI control when app is idle
* deleted option "font_width"
* deleted option "unicode_wide_allowed"
* deleted option "unicode_full_width"

1.48.0 (2018/04)

+ add: option "font_width", it gives new method to detect width of Unicode characters
+ add: improved plugin "Make Plugin", added code to read/write options
- fix: restoring of scroll pos on opening file

1.47.5 (2018/03)

+ add: API, support for plugin Terminal
+ add: improved auto-closing bracket: now when you type ")" after "(", closing bracket not duplicated (like PyCharm)
+ add: options "log_console", "log_debug"
+ add: option "unicode_full_width"
* change: renamed option "allow_wide_chars" to "unicode_wide_allowed"

1.47.0 (2018/03)

+ AddonManager/Install:
  + add: full list is sorted by caregory+name
  + add: allows to choose kind of addons, first item <Category>
  * change: disabled fuzzy search
  * change: filter only by addon name (not by description)

+ add: API
- fix: "lexer dynamic hiliting" was broken after text editing
- fix: command File/Reopen must keep bookmarks

1.46.0 (2018/03)

* change: dialog "Go to" simplified, now it's simple modal form, like Commands dialog
- fix: with session reopened, if single file opened from shell, it wasn't activated
- fix: "restore lexer styles" didn't work

1.45.2 (2018/03)

+ add: minimap can show nice tooltip, when mouse cursor moves over minimap area (like KWrite)
+ add: option "minimap_tooltip_show"
+ add: option "minimap_tooltip_line_count"
+ add: option "minimap_tooltip_width"

1.45.0 (2018/03)

+ add: avoid flicker of folded blocks (unfold-fold) when editing Markdown/Python/etc files
+ add: ProjectManager: option "Toolbar icons"; option uses icons in folder data/projtoolbaricons
+ add: sidebar button "hamburger", which shows copy of main menu as popup
+ add: command "show main menu as popup"
+ add: command "toggle main menu", menu showing is saved to history
+ add: lexer PowerShell: small fixes
* change: TabsList: removed Config dialog

1.44.0 (2018/03)

+ add: pictures: allow dragging, zooming by Ctrl+ mouse wheel (Command+ on macOS)
+ add: pictures: show zoom % in statusbar
+ add: save to session/history also numbered bookmarks (was: only usual bookmarks)
+ add: option "hide_horiz_scrollbar"

1.43.0 (2018/02)

+ add: plugins can force show sidebar button, even if they don't run on start. New section in install.inf: [sidebar1] .. [sidebar3]. Used in plugins: ProjectManager, TabsList, FTP.
+ add: option "ui_toolbar_theme", with default theme
+ add: add-on type "toolbar theme", which installs icon set(s) for new option
+ add: improved look of "Go to bookmark" dialog
- fix: scroll pos didn't restore for inactive tabs (e.g. in session)

1.42.0 (2018/02)

+ add: reworked Code-Tree handling, fixed some crashes
+ add: reworked minimap, it paints faster/nicer
+ add: API for Code-Tree, now it's possible to make plugins which fill code-tree for some files
+ add: must not activate passive+unmodified tab by clicking its X
+ add: must disable tab closing during file loading/saving
+ add: optimizations for huge lines (len 1M+)
+ add: cursors for auto-scroll support high-DPI (thanks, FTurtle)
+ add: option "autocomplete_add_opening_bracket"
* change: sidebar: changed color to darker, changed icon set to white
* change: lexer Pascal: don't add fold-range "unit".."end."
- fix: flickering on making tab "near current tab"
- fix: flickering on opening many files (File/Open or session)
- fix: Windows IME input

1.40.0 (2018/02)

+ add: bookmarks support is rewritten. Now a bookmark is not deleted when its line is deleted. And memory usage of text storage is smaller now.
+ add: option "ui_tab_size_x_min", so can set tabs always wide
+ add: show "startup time" in console panel
+ add: support some more HTML5 tags
+ add: sidebar theme "octicons light 20x20"
- fix: Tabs List plugin (used deleted API)

1.39.0 (2018/01)

+ add: API
- fix: horz scrollbar incorrect on long lines (>window size)
- fix: "More carets" commands didn't consider tab-chars
- fix: "Check for updates" in x32 version

1.38.3 (2018/01)

+ add: option "indent_size" allows value 0: use indent from options "tab_size", "tab_spaces"
+ add: API
- minor fixes

1.38.0 (2018/01)

+ add: API to show floating tooltips (new plugin "HTML Tooltips")
+ add: show "zero-width space" as other unprinted chars

1.35.0 (2018/01)

+ add: auto-completion listbox in HTML allows multi-carets (like Sublime does)
+ add: on macOS, some features use Command-key instead of Ctrl-key: Ctrl+click; Ctrl+(double click); Ctrl with drag-drop of text
+ add: API
* change: option "lexer_dynamic_hilite" turned off by default (problems with option on macOS; slows down)
- fix: dialog Find: Shift key runs search

1.34.0 (2018/01)

+ add: many optimizations in core for scrolling speed on huge lines (4M chars)
+ add: Ctrl+(double click) now selects additional word
+ add: command "Selection - Expand selection to word" (like in many editors)
+ add: option "allow_wide_chars"
+ add: commands "find current word/sel next/prev": they select current word before search
* change: option "find_hotkey_find_next" is now hotkey, which is independant from focused input; its value "Enter" is ignored, other value works. "Enter" is now hardcoded hotkey.
- fix: cannot find string with trailing EOL (multi-line input)

1.32.2 (2018/01)

- minor fixes
+ add: API

1.32.0 (2018/01)

+ add: deleting of huge block (w/o undo) is instant now (before it was n seconds)
+ add: code-tree has horiz scrollbar
+ add: statusbar menu for tab-size: added sizes 3, 5, 6, 7
+ add: Project Manager variables for ExtTools plugin: {ProjMainFileNameOnly}, {ProjMainFileNameNoExt}
+ add: API for statusbar
- fix: Windows high-DPI wrong scaling of plugin dlgs
- fixes

1.31.0 (2017/12)

+ add: option "ui_non_text" has additional values, to auto open binary files in binary/hex modes
+ add: binary viewer uses "middle dot" unicode char
+ add: binary files save to sessions
+ add: lexer Perl reworked (hilite multiline comments, fix funcs in code-tree)
- fix: lexer C# (tree for funcs)
- fix: if disk file is read-only, then normal, app must not reopen it r/o

1.30.0 (2017/12)

+ add: binary viewer. It is called when non-text file is opened, with additional prompt. File size for binary viewer can be any.
+ add: dialog "Go to" works with binary viewer: can enter percents with "%" char, or hex offset
+ add: dialog "Go to" for editor: can enter percents with "%" char
+ add: prompts "file is not text", "file is too big" changed to one dialog (to allow binary view)
+ add: option "viewer_binary_width"
- fix: lexer C# code-tree for generic func

1.28.2 (2017/12)

- fix: major bugfix, crash on paste command (in 1.28.0)
- fix: files weren't added to recents on app closing
+ add: if deleting too big block (bigger than option "undo_limit"), do it fast w/o undo

1.28.0 (2017/12)

+ optimized memory usage on big files. E.g. Windows x32 version with 100M log: mem usage was 900M, now 720M.
+ add: support mouse wheel horizontal scrolling
+ add: macOS: can drag-drop folder from Finder onto CudaText icon
* change: lexer SCSS removed to add-ons
* change: lexer LESS removed to add-ons
* change: lexer "SynWrite acp files" removed to add-ons
* change: lexer "SynWrite snippets" removed to add-ons

1.27.0 (2017/12)

+ add: lite lexer SQL^
+ add: lexer API supports lite lexers
+ add: console lines "Init: cuda_nnnn" on loading plugins; option "py_init_log"
* change: usual lexer SQL removed to add-ons
+ add: AddonManager: added option "Install: show confirmation and report"
* change: AddonManager: removed confirmation "Install selected addon?"

1.26.0 (2017/11)

+ add: Lite lexers - for huge files, e.g. 800Mb XML file. Lite lexers don't support code-tree, folding, rich hiliting; but they work very fast on any file size (with average line length).
+ add: for too big files (option exists already) now lite lexers are detected
+ add: lite lexer XML^
+ add: lite lexer JSON^
+ add: lite lexer Log files^
- fix: wrong column selection, if tab-chars at line start

1.25.0 (2017/11)

+ add: option "ui_tab_multiline" - enable multi-line tabs
+ add: option "ui_max_lines_codetree" (default 8K lines) - disable code-tree for too big files
+ add: show console log, when session or project loads/saves
* change: lexer JSON: code-tree simplified (was slow on big files)
- fix: issue with last session, if "ui_reopen_session":false
- fix: Linux copy-to-clipboard could append zero char
- fix: option "autocomplete_autoshow_chars" must ignore numbers
- fix: some groups-related commands

1.24.3 (2017/11)

- fix: wrong scaling of few dialogs on Win10 high-dpi
- fix: if same file opened again, its tab wasn't activated
- fix: bug in 1.24.1, session's first loaded tab not parsed
- fix: major bug, code-tree didn't update on editing file
+ added: option "ui_tree_cache"
+ added: API

1.24.0 (2017/11)

+ added: non-RegEx search engine is rewritten. It now finds text in big (10Mb+) files 10-15 times faster. RegEx search is still slow, it builds string buffer from entire file.
+ added: lexer Bash: reworked to hilite ${complex vars} and `complex backtick commands`, now don't hilite "echo" command
+ added: lexer Pascal: support keyword "operator" (hilite, show in code tree)
* change: dialog Find: Select-all don't join adjacent selections to bigger selection
* change: dialog Find: disable option "words" for multi-line input

1.23.6 (2017/11)

+ added: encoding "OEM", it maps to one of locale dependent OEM encodings (cp437, cp850, cp852, cp866 etc)
+ ProjectManager: show x icon for already deleted files
- fix: prev version shows "Cannot focus invisible window" on reopening session

1.23.5 (2017/11)

+ added: option "ui_tab_angled" (bool value), improved painting of angled tabs
* removed: option "ui_tab_angle" (int value)
+ added: menu item "View - Toggle always on top"
+ API
* lexer SQL: removed code tree support

1.23.0 (2017/10)

+ ProjectManager: single click opens file in the preview tab (italic caption), like in Sublime
+ added: option "ui_tab_preview_font_style"
+ API for preview tab

1.22.4 (2017/10)

+ added: option "ui_tab_position": can place tabs on top/bottom/left/right
* deleted option "ui_tab_bottom"
+ ask "file changed outside. reload?" also if file undo history is not empty
+ show "changed N lines" status after few commands (e.g. trim spaces)

1.22.0 (2017/10)

+ added: option "ui_tab_flat" (tabs look like in new Sublime)
+ added: caching of Code Tree content, so much faster switch betweeen tabs
+ added: UI theme color "tabs, flat, focus mark"
- fixed: commands "go to screen top/bottom/center" must work ok on long wrapped lines

1.21.0 (2017/10)

+ added submenu "Options / Settings-plugins", so plugins can put config commands here, instead of "Plugins". Two standard plugins (Tabs List, Comments) use this menu. http://wiki.freepascal.org/CudaText#Plugins
+ API for "Vim Mode" plugin
+ added commands: "go to line absolute begin/end (+select)" (keys Home/End consider spaces)
+ added commands: "go to word end (+select)" - like in Vim
+ added commands: "go to word next/prev, simple (+select)" - do alternate word jumps like in Vim

1.20.0 (2017/09)

+ reworked UI tabs: added option "ui_tab_button_layout"
+ option "ui_reload_unsaved_confirm"
- fix: painting on resize
- fix: ProjectManager using of old API

1.19.2 (2017/09)

+ main toolbar is now wrappable
+ UI tabs: added scroll arrows (left side) for lot of tabs
+ UI tabs: don't paint angled tabs (slow) if tab count>10
+ added theme color "tabs, special marks"
* change theme "sub": side panel made dark

1.19.0 (2017/09)

+ colored underlines for HTML's rgb(), for ex rgba(200, 200, 0, .4)
+ support no-break-space U+00A0: in show unprinted, in go-to-next-word
+ replace with reg.ex.: support change case (modifiers \U \L) for Unicode
+ option "ui_tree_show_tooltips" (turn off, if tooltips are irritating)
+ option "mouse_click_number_selects_eol"
+ improved lexer JS (reg-ex hiliting)
+ improved lexer LESS (numbers hiliting)
+ ProjectManager: commands "Go to main file", "Open main file"
+ ProjectManager: don't allow duplicate items
- fix: fold-marks didn't render on folded lines
- fix: must handle file creation error for command line
- fix: command "go to last editing pos"

1.18.0 (2017/09)

+ preinstalled plugin "Show Unsaved Changes" (command like in ST3)
+ Project Manager: allow drag-drop folder on CudaText - add folder to project
+ dialog "Go to": can enter line:column
+ code tree: context menu item "Sorted"
+ API for dialog "Go to"
+ API to embed editor-control to dialogs

1.17.0 (2017/09)

+ API to shade text (used in plugin Focus Mode)
+ Project Manager: added commands "Add current file", "Add all opened files"
+ lexer Bash: hilite varname before "=", don't hilite keyword after "."
- fixed: high-dpi in ProjManager and bottom panels
- fixed: initial dir of save-dialogs for untitled tabs
- fixed: wrong saved keys.json if "overwrite duplicate hotkey" was used with plugins
- fixed: code-tree lost vert scrollbar

1.16.0 (2017/08)

+ save-as untitled tab: suggest first free filename: new.txt, new1.txt, new2.txt... (like SynWrite)
+ reworked confirmation for duplicate hotkeys in Hotkey dialog (ask to overwrite inside this dialog)
+ mouse column selection: used "cross" cursor (like TextMate)
+ in single line inputs, make right edge of text near the edge of control (like Windows)
+ option "copy_column_aligned_by_spaces"
+ Addon Manager: don't allow to remove standard plugins
+ Addon Manager: cache addon filelists for 10 minutes
* dialog "Lexer library" reworked, used normal buttons on top, added button Hide/Show instead of checkmarks
- fixed: Project Manager "Show panel" command
- fixed: checkmarks in View/Groups menu
- fixed: column selection by mouse: "caret_after_end":false must not break column
- fixed: problem with ":line" in command line and single instance

1.15.0 (2017/08)

+ option "centering_width"
+ option "centering_for_distraction_free"
+ option "ruler_numeration"
+ command "go to screen center"
+ command "force final end-of-line"
+ Addon Manager: suggests to install several addons, one after another
+ Addon Manager: install-command splitted to: a) Install - items w/o installed ones, b) Re-install - already installed items
* removed option "ruler_from_1"
- fixed option "indent_makes_whole_line_sel"

1.14.5 (2017/08)

+ lexer-specific config + lexer-specific hotkeys config are supported for none-lexer ("lexer -.json", "keys lexer -.json")
+ lexer analysis for big files (>100K, option) is delayed now. Syntax analysis starts only after user ends typing text, and pause passed. Much faster on big files.
+ big optimizations for loading big files (>5Mb); e.g. 280 Mb log loaded before: 22sec, now: 7sec.

+ option "lexer_delayed_parsing_size"
+ option "lexer_delayed_parsing_pause"
+ option "ui_tab_new_near_current"
+ option "ruler_from_1"
+ option "unprinted_spaces_trailing"
+ option "indent_kind" has value "by spaces up to opening bracket" (like in ST3)
+ option "indent_makes_whole_line_sel"
+ option "autocomplete_trigger_chars" (like in ST3)
+ option "ui_statusbar_panels" has item for wrap-mode panel (default is hidden)
+ option "ui_statusbar_wrap"
+ option "wrap_enabled_max_lines", ie disabled word-wrap for huge files (>60K lines) to speedup
+ menu item "View - Toggle micromap"
+ menu item "View - Toggle unprinted chars - Spaces/tabs trailing only"
+ command "toggle word wrap mode (off/window/margin)"
+ Addon Manager: "Install from Github" saves version like "github 2016.10.20"
+ saving file error shows Retry/Cancel message (was OK only)
* removed option "autocomplete_autoshow_lexers" (use lexer-specific configs instead)

lexers:
+ added syntax-theme color for php-tag (<?php ?>)
+ added hilite of php-tag in lexers: HTML, CSS, JS
+ added hilite of standard color names in CSS
* changed link chain of lexers. Was before: PHP includes HTML, HTML includes CSS/JS, CSS/JS includes nothing. Now: HTML includes PHP/CSS/JS, CSS/JS includes PHP, PHP includes nothing. File type *.php is now handled by HTML lexer.

fixes:
- fixed case-insensitive search in menu dialogs for non-En chars
- fixed non-working plugin hotkeys after any plugin installing
- fixed parasite scrolling if file was closed not on top
- fixes in JSON, Pascal lexers

1.13.1 (2017/07)

- reworked part of syntax hilite code, and fixed old 2 bugs of incorrect selection(s) rendering
+ added commands "column select without key modifier: on/off"; when mode turned on: a) mouse drag makes column selection, b) Shift+arrows make column selection
+ added statusbar field, for above mode (shows "-" for normal mode, "||" for column mode)
+ console: context menu item "toggle word wrap"
+ option "ui_console_wrap"
+ improved C++ lexer (fixed detect funcs for tree, updated keywords)
+ Project Manager: reaction to Enter key; option 'Open file after Go To File command'

1.12.0 (2017/06)

+ supported addons "filetypeicons" for Project Manager, e.g. "VSCode Material 24x24"
+ Project Manager: option "Icons theme"
+ Addon Manager: integrated function of "Install from Github" plugin
+ Insert Time plugin rewritten, it has several date formats and config file
+ commands dialog: focus last chosen item
+ commands "scroll line up/down" keep caret on screen after scroll
+ commands "go to screen top/bottom"
+ find/replace: auto turn on multi-line, on Ctrl+Enter press

1.11.0

+ new main icon (by FTurtle)
+ Project Manager: file type icons (from VSCode program)
+ Project Manager: expand "." to full dir name
+ focused input (in find/replace/goto/console) has its border highlighted
+ option "ui_active_border"
+ options "find_hotkey_*" for hotkeys in find/replace dialog
+ find/replace: hotkey Enter on focused replace-box: runs "Replace next" and keeps focus
+ find/replace: set hotkey for "Find first" to Alt+Enter
* find/replace: changed hotkey for "Replace next" to Alt+Z, "Replace without find next" to Ctrl+Alt+Z
* find/replace: changed hotkeys Alt+5/Alt+6/Alt+7 to Alt+O/Alt+E/Alt+K
* changed icons of toolbar
* removed option "log_dialogs"
- Windows: one more fix to show prev instance with ui_one_instance (by @vhanla)

1.10.0

+ preinstalled plugin Tabs List
+ Project Manager: read only toplevel dirs from disk, and read other dirs only on unfolding them in treeview (patch by @pohmelie)
+ Project Manager: added toolbar
+ API
* finder: don't put backward selection on find-backward
* lexer help file converted from CHM format to ODT
- fix: loosing editor focus on Linux

1.9.3

+ preinstalled Project Manager plugin
+ can open folder names from command line, e.g. "cudatext ." like Atom/Sublime can do
+ menuitem "File - Open folder", it calls Project Manager
+ menuitem "Help - Check for updates", it calls Addon Manager
+ API

1.9.1

+ finder: replace-all made much faster (note: when confirmation is on, you will see unchanged text, it will replace later)
- finder: count-all must find w/o overlaps (non-regex mode)
+ API

1.9.0

+ distraction-free mode, see http://wiki.freepascal.org/CudaText#Full-screen
+ added option "ui_fullscreen" with new values
* removed option "ui_fullscreen_hide"
* option "margin" changed default to 2000 (ie, hide)
- fixed: Win10 old issue when 2nd app instance cannot popup to front
+ API

1.8.6
- fixes for Windows high-dpi (dialogs, toolbar btns, folding icons)
+ API

1.8.5
- fixed for Windows high-dpi (scale more UI items)
- fix slow scrolling with minimap shown
+ option ui_tree_theme
+ command "place bookmarks on carets"
+ replace-all: show elapsed time in sec.

1.8.3
+ API (reworked dlg_proc)
+ Addon Manager: plugin Updater (like SynWrite)
* Addon Manager: used new channels url
+ Windows: support font ligatures (font Fira Code, only if caret not on line)
+ option font_ligatures
+ dialog Find: must show on top of CudaText dialogs
+ toolbar: add buttons Indent, Unindent

1.8.1
+ API (dlg_proc) for powerful dialogs
+ Linux: better support for font ligatures (std lexers changed a little)

1.8.0
* changed values for "newdoc_encoding" to short (like in API)
* changed suffix for macOS config keys from "__osx" to "__mac"
* changed: option "def_encoding_utf8" has OS suffix
+ API
- fix: Tab-key didnt jump in Find dialog

1.7.9
+ autocomplete listbox: chars .,;=<> should input to editor and close listbox
+ command line: added key --enclist
+ API
- fix: wrong minimap view color
- fix: minimap click scrolled editor to right

1.7.8
+ macOS: horiz scroll by trackpad should work now
+ option ui_sidebar_show
+ option mouse_wheel_speed_vert
+ option mouse_wheel_speed_horz
+ command line: improved help (--help)
+ command line: aliases for keys (-h -v -r -n -w)
+ command line: added key --enc=
* command line: renamed key: --readonly
* changed format of file date in session (was number, now readable)
- fix: tabs "x" must act on mouse-up

1.7.7
+ menu item "File - New from template" (same as click on arrow near "new icon")
+ updated FCL-JSON lib from current FPC trunk
+ dont escape "/" in user.json
* changed ui_sidebar_theme to "octicons_20x20"

1.7.6
+ option "ui_sidebar_theme"
* sidebar buttons for "Search", "Go to"; deleted toolbar icons for the same
* toolbar hidden by default
* you should delete old files data/sideicons/*.png, now folder here
+ command "hide dialog: find"
+ command "hide dialog: go to"

1.7.5
- fix: moving window to 2nd monitor (Win10)
- fix: auto-scroll-horz didnt start on moving mouse on scrollbar/minimap
- fix: vertical block selection until file end

1.7.4
* different UI of sidebar tabs (I find it more useful)
+ theme color "side-toolbar BG"
+ Ctrl+[drag-drop] does copying of block
- Alt+[drag-drop] fixed if scrolls editor up/down

1.7.2
+ command-line key --help (Linux users angry)
+ command-line key --version
+ command-line key --window=x,y,width,height
+ writes to stdout on using command-line filename/dir
- fix: macOS: caret not visible on dark theme
- fix: any click should show caret

1.7.1
+ Linux gtk2: middle-click-paste uses "primary selection" (alternate gtk clipboard), command Copy copies to primary selection too

1.7.0
+ option "mouse_mid_click_paste"
+ option "log_dialogs"
+ checkmarks visible for ConfigMenu's menu too
* default for "ui_statusbar..." changes {x} to {xx}
* renamed option "mouse_browser_scroll" to "mouse_mid_click_scroll"
* deleted option "backup" (warning shows if option set), use plugin Backup File instead
- Linux gtk2: keep clipboard text on exit
- fixes in API

1.6.9
- fixes, adds in API

1.6.8
+ Alt+click now does goto-definition
+ option "mouse_goto_definition"
+ option "autocomplete_autoshow_lexers" can have none-lexer as "-"
+ AddonManager: use temp-file on downloading (safer)
+ AddonManager: message retry/ignore/abort on download errors
+ addons install.inf has field for API ver
- dont suggest multi-line sel to Find dialog

1.6.7
+ API for timer
* change default for undo_after_save

1.6.6
+ find/replace: option "in selection"
+ command "goto last editing pos" uses find_indent_vert/horz
+ handled click on micromap
+ API additions

1.6.5
+ windows version-info, for antivir
+ improve report, after installing lexer
+ command "Fold level 1" (was only 2..9)
+ command "Fold all" folds with nested ranges
- fix lexer-parser, bug when Python part inside Latex file

1.6.4
- fix deleting block, till begin of line
- fix replace-all, regex "\n" to "__"

1.6.3
+ lexer Python: update for Py3.6
+ session contains state (visible/size) of side/bottom panels
+ micromap shows selections (e.g. after "Find/ Select all")
+ micromap shows marks of "Hilite Occurrences" plugin; added theme color
+ micromap shows marks of "Spell Checker"; added theme color

1.6.1
- fixed toolbar API
+ new dialog "Addon installed"
* don't use cudatext.exe.manifest file

1.6.0
+ big internal changes in core, to support inter-line gaps (it is like "phantoms" in Sublime)
+ option "gutter_fold_icons"
+ paint unprinted arrow-left at end-of-file
+ command "Copy bookmarked lines"
+ command "Delete bookmarked lines"
- fix: Linux: hotkeys broken, if Ru layout active at start (bug in Lazarus)
- fix: issues with caret/scroll, after fold/unfold commands
