Legend: + added - fixed * changed 1.213.0 (2024/04) + add: new command "File / Rename..." (idea by @pintassilgo) + add: Find-dialog has new option 'Im': immediate search, ie find-as-you-type; old option 'Hi' is not connected with find-as-you-type anymore (idea+testing by @pintassilgo) + add: Project Manager improvements: added hotkeys Ctrl+C / Ctrl+X / Ctrl+V / Del / etc (all visible in the context menu); added context menu commands "Backup", "Copy path", "Properties..."; added toolbar button "Recent projects" (patch by @ildarkhasanshin) + add: better "links_regex" option value - fix: on toggle split-view, show folding for paired editor if it has Pascal tree-helper (thanks @mix-7) 1.212.1 (2024/04) + add: command 'duplicate line(s)' moves caret down, like in Sublime and VSCode (thanks @victorel-petrovich) + add: micromap column widths are now always auto-sized to the current micromap width, which is often different with "micromap_on_scrollbar":true (idea by @pintassilgo) + add: C-like languages: Enter press on line-end can make unindent considering above code, if "indent_auto" is on (idea by @pintassilgo) + add: C-like languages: Tab press on empty line can make indent considering above code, if "indent_auto" is on (idea by @pintassilgo) + add: improved auto-completion: in several cases, user actions must auto-close the listbox (thanks @pintassilgo) + add: on saving "user.json", avoid extra space before ":", it was like '"key" : "value"' + add: painting of 'block staples': always paint the 'bottom edge' for lexers with indent-based folding, even if option "staples_props" tells to hide bottom edge * change: changed default of option "staples_props" to "0,40,0,0", to look like Sublime and VSCode (thanks @pintassilgo) * change: minimal height of micromap's thumb area was increased from 4 to 16 - fix: command 'indent' without selection gave empty selection which was expanded with arrow-keys - fix: too slow repainting of 'red text-drag-drop mark', at least in Qt5 version (thanks @pintassilgo) - fix: Find-dialog did not apply Hi option on dialog showing, when some search was already made (thanks @iconv) - fix: regression in 1.211.4: caret jumps to the top of the editor on scrolling, if 'Hi' find-option is on 1.211.4 (2024/03) + add: scrollbar (application-themed scrollbar) width can be adjusted with new option "scrollbar_size" (thanks @stewcam) + add/change: when find-dialog "Hi" option is on, and document is 'big' (option "find_hi_max_lines" has effect, or horizontal scrollbar is wider than 400 chars), show Hi_All marks only for the visible screen area and update marks on scrolling; it should not slow down editor significantly (thanks @pintassilgo) + add: find-dialog "Hi" option: finding in the visible screen area is now much faster for huge lines (handles only visible portion of the line) - fix: many seconds freezing when 'select all' + 'delete' runs in ~600K lines file (thanks @hycmos) 1.211.0 (2024/03) + add: text search without RegEx has big speedup on huge lines; e.g. for line len=400K, with 25K matches, 'Count all'/'Select all'/'Mark all' are improved from ~30 sec to ~0.5 sec + add: text replacement (with and without RegEx) has big speedup on huge lines; e.g. for line len=400K, with 25K matches, 'Replace all' is improved from ~110 sec to ~0.5 sec + add: when option "find_hi_max_lines" limit is over, still highlight occurrences, but only in the visible editor area; button "Hi" in the Find dialog is not disabled anymore (thanks @pintassilgo) + add: lexer 'Search results' better supports code-tree + add: after inserting line-break by Enter line became space-only? then make it empty. like Sublime (thanks @pintassilgo) + add: detection of JS scripts by 'shebang', like '#!/usr/bin/node' * change: Find dialog: on typing in input field with 'big' document (count of lines > 2000), Highlight_All action is started not immediately, but by timer (thanks @pintassilgo) * count of lines is controlled by new option "find_hi_timer_lines":2000 * timer interval is controlled by new option "find_hi_timer_interval":500 * change: changed default of option "find_hi_max_line_len" from 4k to 800k, because 'find all' is much faster now * change: deleted option "picture_types" - fix: Windows: forgot to add DLL files libwebp32.dll / libwebp64.dll - fix: allow plugin Highlight_Occurrences to react (by on_scroll) also to window resizing 1.210.5 (2024/03) + add: allow plugin HTML_Tooltips to show preview for WEBP pictures too - fix: CSS autocompletion: better add ';' if both {} brackets are on the current line; don't add ';' at all if we completed the property name (thanks @d-mal) - fix: snippets for 'void' HTML tags had bad endings (thanks @d-mal) - fix: Qt5 version: char '|' cannot be entered in Code-tree filter field / FindInFiles plugin (thanks @mix-7) - fix: Windows: fix for installation/uninstallation problems of the shell extension on new versions of Windows 11 (by @dinkumoil) - fix: plugin commands were not recorded to macros, if called from Plugins menu - fix: plugin HTML_Tooltips shows preview of BMP pictures buggy 1.210.0 (2024/03) + add: use new version of fcl-json lib to faster load big 40Mb-size session files with big changed file text + add: can disable Ctrl+Enter hotkey in the Find-dialog via new option "find_ctrl_enter" (thanks @pintassilgo) + add: can disable 'Highlight all' feature of Find-dialog for huge lines via new option "find_hi_max_line_len" (thanks @pintassilgo) - fix: plugin Insert_Pics cannot set 'scroll last line on top' property for the splitted-view editor (thanks @SamC) - fix: Windows: fix focusing main app window by Alt-Tab from _non-modal_ plugin dialogs (no such major plugins exist yet) (thanks @veksha) - fix: Qt5 version: hotkeys display for `, Ctrl+`, Minus, Shift+Minus, Shift+= (fixed in Lazarus) - fix: Qt5 version: FindInFiles plugin input fields are empty after pressing "Find" (fixed in Lazarus) 1.209.0 (2024/01) + add: new option "ui_timer_idle"; e.g. value 50 will speed up reaction of LSP plugin to text editing, ie appearance of LSP diagnostics gutter icons (thanks @veksha) + add: removed limitation 500 for option "py_change_slow"; e.g. value 50 will speed up reaction of LSP plugin to text editing (thanks @veksha) + add: optimization for plugins ExTerminal / Terminal Plus: adding a line to document end now works faster (thanks @veksha) + add: progressbar-form is shown additionally when loading big text from session (> 10Mb; < option "ui_session_max_text") + add: Project Manager saves to project 'unfolded tree-nodes' list (patch by @veksha) + add: improved decoration API, to allow 3+ decors exist for the same line; it affects LSP plugin when it places decorations (thanks @veksha) + add: improved API for file saving, it allows to make command "Save a copy as..." which exists in Notepad++; seems this new command will be added to CudaExt plugin * change: addition to the format of Undo-history, format is backward compatible with 1.208.5 * change: Project Manager: 2 menu items (configure plugin; configure project) removed from context menu / from 'gear' toolbar menu * change: disabled code-tree node fold/unfold on double-click - fix: on Windows, Project Manager crashed when calling "Open in default application" with LSP running (patch by @veksha) - fix: lexer Python: f-strings must support '{{' (thanks @DUOLabs333) - fix: in Markdown, in fenced blocks, back-color of empty line was wrong sometimes (thanks @SamC) - fix: commands "markers: ...." were not recorded to macros (thanks @hi5) 1.208.5 (2024/01) * change: before, caret movement updated the statusbar after rather big pause ~2000ms; now the pause is smaller, ~500ms (option "py_caret_slow") + add: command "open file in default app" sets current directory (thanks @veksha) + add: URL highlight missed ":" possible char (thanks @xbarbie) - fix: important: on fast editing of big code, gutter folding lines were not auto-adjusted _fast_, and also _folded_ blocks below the caret can be unfolded - fix: Qt5 and macOS versions: in viewer, text selection highlight was 'shifted' (thanks @papirosko) 1.208.0 (2024/01) + add: update TRegExpr engine to 1.186 * change: reworked code for fold-blocks storage; report any regressions * change: now deepness of 'block staples' is limited by ~20 levels, deeper staples are not rendered / folding is not shown * change: replaced option "find_multiline_scale" (float number) with "find_multiline_height" (int value in percents) - fix: rendering bug when minimap is on + selections exist (thanks @veksha) - fix: text in Console can become 'folded' sometimes (thanks @veksha) - fix: wrong handling of error when lite-lexer is broken (thanks @mix-7) - fix: wrong caret pos on mouse click, if text is scrolled horizontally (thanks @Stem75) - fix: regression in 1.206.0: plugins menu items did not check allowed lexers (line "lexers=" in install.inf) 1.207.0 (2024/01) + add: optimization of search/replace in huge lines: faster by ~20% + add: new command "cancel carets, but keep first visible caret" + add: updating of data in parser-thread now blocks main thread much less; e.g. before on 400Kb file: 8 msec, now: 0.1 msec + add: 'statusbar' controls show their icons auto-scaled (thanks @veksha) + add: auto-decrease font size of 'overlay' on buttons/statusbars; useful for LSP plugin with 'overlay' numbers on statusbar (thanks @veksha) + add: old option "ui_tree_fill_max_time" is now used for Pascal tree-helpers too - fix: filling of code-tree in Pascal tree-helpers had big slowdown (thanks @mix-7) - fix: when Project Manager opens files in the same 'preview' tab, it must clear old bookmarks/markers/attribs (thanks @veksha) - fix: issue with External Tools plugin in Qt5 version: list selection was ignored (thanks @veksha) - fix: lexer Bash: fix continuation char in comment (thanks @Flashwalker) 1.206.5 (2024/01) + add: plugin Sort: 'Numeric' option handles leading letters too, e.g. line 'before123after' will be treated as tuple ['before', 123, 'after'] (thanks @BBServ) + add: optimized installation of 100 addons from .zip's, when file-open dialog multi-selection is used * change: deleted deprecated API: FOLDING_GET_LIST*, all related plugins were updated - update them from Addons Manager - fix: bug when after installation of plugin without app restart, Command Palette items become 'shifted' by N elements; it required lot of code rework - so report any regressions - fix: bugs in API: finder_proc(); timer_proc(); get_token() for multi-line tokens 1.206.2 (2023/12) + add: improved rendering speed (4 times faster) for such case: one-liner HTML with 700k chars with word-wrapping on + add: when CudaFormatter replaces all text, reset horizontal scrollbar's page-size (needed when long one-liner is replaced to short lines) (thanks @adoeller) * change: auto-disable 'dynamic highlight' for very long one-liners * change: default of "ui_tree_fill_max_time" changed from 1000 to 150 - fix: minimap rendering can make _big slowdown_ in some cases (thanks @adoeller) 1.206.0 (2023/12) + add: make app start faster by 30ms (on Alexey's PC), by moving top menu initing (and Plugins menu filling) to 'app is idle' event + add: new option "ui_tree_unfold" to fully unfold the code-tree (thanks @SamC) + add: make 'nice' scrolling (middle click) 2x smoother (thanks @ThaiDat) - fix: on loading file with lexer, avoid temporary applying None-lexer-specific config (thanks @ThaiDat) - fix: regression on Windows since 1.176: window title shows Unicode as '??????' (thanks @veksha) - fix: when "ui_tab_position" is left/right + "ui_tab_variable_width" is on, "ui_tab_size_y" was ignored (thanks @veksha) 1.205.5 (2023/12) + add: lexer files *.cuda-lexmap support new option: [op] fold_exclude_line=1 ; it allows JSON lexer to skip last block line on folding; added Wiki text about this feature + add: lexer files *.cuda-lexmap support new option: [op] auto_fold=0 ; it allows to disable option "auto_fold_comments" for lexer (it's used for: Markdown, reST, MediaWiki, WikidPad, Textile) + add: auto-adjustment of _folded_ blocks on editing in documents with Pascal tree-helper: Markdown, reST, WikidPad etc (thanks @mix-7) + add: auto-adjustment of fold-blocks on editing in the linked splitted editor 1.205.0 (2023/12) + add: updated TRegExpr engine to 1.182; it now supports \K + add: option "auto_fold_comments" now makes ranges not only for 'comments' but also for 'strings', ie any multi-line string literals (thanks @victorel-petrovich) + add: new option "find_hotkey_more" can change Find dialog hotkey of "..." button + add: tree-helpers in Pascal: after edition, unfold previously unfolded code-tree node for caret (thanks @mix-7) * change: Find dialog: changed hotkey of "..." button from Ctrl+Alt+dot to Ctrl+Alt+D because Ctrl+Alt+dot is used in Slovak keyboard layout (thanks @vidovan) - fix: could not load broken UTF-8 text at all, but app must be able to auto-reload it in encoding cp1252 (thanks @zeuwas) - fix: picture viewer: statusbar wasn't updated on Ctrl+MouseWheel (thanks @xBZZZZ) 1.204.0 (2023/12) + add: new option "autocomplete_commit_on_enter" (thanks @DUOLabs333) + add: text viewer: it can change word-wrap mode in its 'text' mode (not correct with UTF-8 viewer encoding, sorry) + add: on editing with ui-tab splitted, carets/markers in the 2nd half must auto-adjust like in the 1st half (thanks @mix-7) + add: folded state is now restored from session for built-in tree-helpers too + add: reworked IME dialog in Gtk2 version (patch by @rasberryrabbit) * change: text viewer: disabled selection with UTF-8 encoding due to unsolved problems with selection rendering in UTF-8 - fix: URL highlight must catch paired brackets (...) but ignore single closing bracket, because URLs are included in () in Markdown - fix: built-in tree-helpers didn't affect the 2nd half of splitted ui-tab (thanks @mix-7) - fix: macOS: icon size was too big for macOS 11+ (thanks @xiongyihui @JairoMartinezA) - fix: macOS: text viewer was blurry on Retina (thanks @papirosko) 1.203.0 (2023/11) built-in tree-helpers: + add: tree-helper for Markdown supports _proper_ folding, considers header levels + add: tree-helper for MediaWiki supports _proper_ folding + add: tree-helper for reStructuredText supports _proper_ folding + add: tree-helper for 'Ini files ^' supports folding + add: new tree-helper for WikidPad, so you must remove Python tree-helper + add: new tree-helper for Textile, so you must remove Python tree-helper + add: reduced flickering in paired (splitted) editor, on editing big files with lexer (thanks @mix-7) + add: lexer Python: support f-strings with inner quotes from Python 3.12 * change: disabled automatic unfolding of blocks above the editing line, in Python; it was irritating sometimes (and bad if unfolding block height is bigger than screen height); it reverts fix from 1.167.5 2022/07 (thanks @victorel-petrovich) - fix: must scroll to new caret position after some folding actions (thanks @mix-7) 1.202.1 (2023/11) * change: deleted option "lexer_postpone_until_shown" + add: new command "folding: select block(s) at caret(s)" - fix: regression in 1.196: sometimes on doing 'Undo' lexer parser stops working with broken highlight 1.202.0 (2023/11) + add: new option "fold_underline_size" to change look of folding-underline (thanks @victorel-petrovich) + add: with "fold_style" 3...4, click on folded line text must not unfold the block (thanks @victorel-petrovich) + add: single click on folding rectangle-mark is now ignored because we must react to double-click on it + add: Go To dialog remembers last input, per each editor-tab, and value now saves to session (thanks @faerot) + add: Wiki topic https://wiki.freepascal.org/CudaText_VS_other_editors#CudaText_vs_Notepad.2B.2B * change: theme "Zeus" was renamed to "Zeu" and removed to Addons Manager - fix: command "find current word next" fails with words of length=1 (thanks @faerot) - fix: editing of Markdown/reST/WikidPad header with folded previous header makes irritating unfolding of previous header (thanks @mix-7) - fix: regression: crash on double-click the Output panel with the "Runner" plugin output 1.201.0 (2023/10) * change: changed submenu "File / Line ends >" to menu-like dialog + add: new 3 commands (in the Command Palette) to focus 3 floating groups + add: new option "ui_tab_padding2" to set right padding (thanks @faerot) + add: commands "focus next group"/"focus previous group" support floating-groups too (thanks @faerot) + add: support more 'ligatures' in lexers JS / Python (thanks @faerot) + add: Project Manager: "Focus in file manager": correctly open files with $ or " or \ in path; respect default file manager; don't freeze until file manager exits (patch by @xBZZZZ) + add: allow commands "tabulation size: set to N" to be in macros - fix: macOS: regression with 'full-screen mode' 1.200.0 (2023/10) + add: big files (10Mb+) are saved _much_ faster + add: Addons Manager removes section from packages.ini on uninstalling lexer + add: Lexer Detecter writes lexer version to packages.ini (thanks @ildarkhasanshin) - fix: when clicking between main window and floating groups, code-tree was not updated (thanks @SamC) - fix: regression: options "ui_font_output_name"/"ui_font_output_size" were ignored (thanks @ildarkhasanshin) - fix: if plugin sets ui-tab title ~15K characters, app freezes (thanks @ildarkhasanshin) - fix: if bookmarks were only auto-shifted by edition above them, they could be not auto-saved (thanks @itsmyname) - fix: Lexer Detecter missed detection of VBScript 1.199.0 (2023/09) + add: update TRegExpr engine to 1.169; see change log: https://github.com/andgineer/TRegExpr/blob/master/History.txt + add: option "ui_session_max_text" + add: option "ui_session_max_undo" + add: Find dialog: new hotkey Ctrl+Alt+dot for '...' button (thanks @MiroslavMatas) + add: Command Palette item "toggle window always on top" works for floating groups too (thanks @SamC) * change: portable releases now have the folder "cudatext" in the root * change: Shift+click with selection works more like in VSCode (thanks @pintassilgo) * change: *BSD versions: do not call 'pkexec', instead only show a message-box, like IntelliJ (thanks @alex0x08 from linux.org.ru) - fix: new bookmarks were not auto-saved when ui-tab was not closed before exit (thanks @itsmyname) - fix: Qt5 version: Find dialog: click on a button looses dialog focus (thanks @pintassilgo) - fix: regression in 1.172: option "key_left_right_swap_sel_and_select" didn't work 1.198.0 (2023/09) + add: update TRegExpr engine from 1.158 to 1.163; see change log: https://github.com/andgineer/TRegExpr/blob/master/History.txt + add: Wiki topic https://wiki.freepascal.org/CudaText_plugins#How_to_run_formatter_ESLint_on_saving + add: Wiki topic https://wiki.freepascal.org/CudaText_plugins#How_to_bind_a_hotkey_to_insert_a_snippet + add: Wiki topic https://wiki.freepascal.org/CudaText_plugins#Config_Toolbar + add: double-click on 'preview' tab makes it 'normal' (thanks @ThaiDat) - fix: LSP tooltip was not shown in 'floating' groups - fix: few editor properties ('tabulation size', 'tabulation by spaces', 'saving: force final EOL', 'saving: trim line ends') were reset on tab-switching: from values set by EditorConfig plugin, to values from user.json (thanks @ildarkhasanshin) - fix: "ui_tab_recent_on_close":true didn't work in 'floating' groups - fix: on opening picture by "File/Open", background color remained fixed white (thanks @bbslipers) - fix: workaround for Windows save-as dialog bug: dialog can suggest bad filename for filter 'All files', like 'name.lua.yml' instead of 'name.lua' when YAML lexer is active (thanks @bbslipers) - fix: lexer reST: better rule for '|' in tables 1.197.0 (2023/08) * change: if "ui_reopen_session":true, don't automatically add all opened files to 'recents' on exit, like in Sublime (thanks @mix-7) * change: previously, with "undo_limit":5000 deleting of 7000 selected lines was clearing the Undo; now, deleting selection of 7000 lines is considered as "one action" and it is always storing in Undo; this is much slower on big selections, but Undo is important (thanks @mix-7) + add: font of code-tree can be additionally scaled, added option "ui_tree_font_scale" (thanks @reregaga) + add: text search shows additional confirmation when 'wrapped search' is off and search reaches the edge of the document (thanks @d0vgan) + add: when text search silently wraps at document edge (because of Find dialog option "O"), Find dialog input field can blink (this is off by default); added option: "find_wrapped_blinking" (thanks @d0vgan) + add: themed scrollbars: add coloring of mouse-over scrollbar arrows (thanks @reregaga) + add: commands "move tab to group 3 / 4 / 5 / 6" (thanks @reregaga) + add: Project Manager: command "Add to project: folder of the current file" (thanks @reregaga) + add: Project Manager: context menu item "Copy path relative to project" (thanks @reregaga) - fix: "List index" error when selecting big block by Ctrl+Shift+End and typing/inserting (thanks @mix-7) - fix: couple of minor UI issues in the Find dialog (thanks @reregaga) - fix: Linux/Unix: when owner of file is 'root' with 'rw-r--r--', and owner of file's dir is 'user', app could not save the file (thanks @timur-g) - fix: Linux/Unix: the case "opening file has no R permission" leads to program error, especially when user chooses binary viewer - fix: sometimes 'function hint' in AutoIt_Helper plugin is blocked (thanks @veksha) - fix: bad painting of macro-recording border with "minimap_at_left":true - fix: lexer Bash: fix string-rule, fix HereDoc-rule 1.196.0 (2023/07) + add: plugin Tabs List: allow Tab-key to change the focus * change: if in JSON lexer, user folds block which last line is ending with "{", this last line is excluded from folding (thanks @reregaga) * change: delete option "tab_max_pos_expanded" (it is now max possible value 1024) - fix: on 'find next' (F3) app forced focus to the Find dialog (thanks @adoeller) - fix: regression with plugin Insert Pics, because of "show_last_line_on_top" default changed (thanks @herbrot) - fix: small regression when EOL mark appeared on last line when not needed, on deleting multi-line selection (fixed by @ThaiDat) - fix: Windows: Chinese IME may crash (thanks @actforjason, fixed by @rasberryrabbit) - fix: irritating scrolling when user clicks top N lines, when "caret_proximity_vert":N (thanks @hiiamboris) - fix: not nice indentation when Options Editor saves user.json (thanks @reregaga) - fix: Find/Replace dialog: empty Find field after typing text and pressing Ctrl+Enter 1.195.0 (2023/05) + add: combobox inputs have the embedded X icon to clear text; code-tree X button was removed + add: code-tree filter field handles several space-separated words + add: faster paint caret if it's 'empty inside' (thanks @veksha) + add: Addon Manager has option (only in settings/cuda_addonman.json) to set SourceForge mirror (thanks @pintassilgo) + add: Tabs List plugin has new 'filter' input (thanks @mix-7) + add: Tabs List / Snippet Panel plugins support horizontal scrolling by Shift+mouse_wheel (thanks @iconv) + add: Char Map dialog: grid cells have equal width; font size increased (thanks @iconv) + add: option "show_indent_lines" (thanks @Vivalzar) - fix: Tabs List plugin did not react to change "tab modified"->"tab unmodified" (thanks @iconv) - fix: lexer Markdown: fix $ rule, $$ rule (thanks @veksha) - fix: if code-tree filter was empty on exiting, history of code-tree filters was not restored on next run (thanks @mix-7) - fix: changed "font_size" was not applied to autocompletion listbox (thanks @veksha) * change: set default hotkeys for "current document font size: bigger/smaller" to Ctrl+NumPlus / Ctrl+NumMinus * change: lexer PHP was removed to add-ons * change: default of "show_last_line_on_top" changed to False, default of "ui_tab_switcher_dialog" changed to False, default of "bracket_highlight" changed to True (thanks @z4ziggy) * change: Windows: in full-screen mode, app now hides the main menu bar (to fix missing bottom ~20 pixels, it is Lazarus bug) * change: delete option "max_line_len_for_accurate_width" (internal value is 1024 now) 1.194.4 (2023/05) + add: minimap handles Shift+click and middle-click, it allows to revert to the old behaviour of minimap click which existed before version 1.190.0 (thanks @pintassilgo) + add: scrollbars now react to Shift+click and middle-click - this makes direct jump to clicked position, like with option "scrollbar_click_jump" (thanks @veksha) + add: showing of unprinted "wrapped line-part marks" now respects the option "show unprinted only in selection" (thanks @Vivalzar) + add: support for lexer MDX, its very special rules: it allows {...} blocks with nesting of curly brackets, it allows <...> blocks with nesting of angle brackets + add: better find Python library on first startup, for Linux with /usr/lib64 and /usr/lib - fix: Addon Manager was deleting the old plugin folder, even if download of update fails - fix: regression in C/C++ lexers 1.194.0 (2023/05) drag&drop: + add: now it's possible to drag&drop text block from one ui-tab to another, without using 2+ groups: drag through the ui-tabs area + add: drag&drop of single-line selection is allowed into single-line fields (Console input, Code-Tree filter) + add: drag&drop of text: drop-marker is shown also when dragging to another ui-tab + add: drag&drop of ui-tab: drop-marker is shown also when dragging to another tab-group + add: change of lexer is recorded to macros (thanks @veksha) + add: Project Manager supports old Python 3.4 (thanks @de77) + add: lexers C/C++: highlight illegal numeric suffixes + add: lexer Batch: many improvements 1.193.3 (2023/05) * change: replaced 2 options "lexer_dynamic_hilite" / "lexer_dynamic_hilite_max_lines" with single option "dynamic_highlight"; changed the default to 4000, ie it's now enabled by default * change: removed space-char from option "autocomplete_commit_chars" + add: new option "ui_statusbar_hint_lines" allows to set the statusbar hint height; also statusbar last cell now reacts to click (thanks @pintassilgo) + add: lexer Bash: added 'dynamic highlight' rules for blocks: if/fi, case/esac, do/done - fix: Windows: missed repaint on auto-deleting pair bracket (thanks @veksha) - fix: sometimes auto-completion was hiding on user typing (thanks @veksha) 1.193.0 (2023/05) core changes for huge documents: * change: Undo-list is cleared when any action touches a line with length>100K; added the option for this: "max_line_len_for_undo" + add: caret must move OK in line with length up to 2G + add: if file has line with length>2G, don't crash but show nice error message on opening - fix: caret up/down moving over huge lines worked very slow - fix: mouse selection over huge lines worked very slow - fix: horizontal scrollbar could not scroll to the end, with line length=2G - fix: vertical scrollbar could not scroll to the end, with 500M lines - fix: bad handling of error "too many lines in file" * change: don't save document's text to session, if text size>50M + add: option "max_line_len_brackets" - fix: app always copied the selection to 'primary selection' on Unix, ignoring the "auto_copy_clp" option - fix: regression since 2022/07: lexer-specific config is not applied to all N>1 files with the same lexer (thanks @veksha) 1.192.0 (2023/04) * change: commands "delete word next"/"delete word previous" changed behaviour with selection, they delete the selection first, like in Sublime/VSCode (thanks @veksha); bad effect: custom hotkeys for these commands were reset * change: auto-completion font now equals to 'editor font' + add: auto-completion window is now parented in the main window: 1) no more separate shadow, 2) main window don't loose focus and don't blink, 3) no more showing of autocomplete-window in Alt+Tab list (thanks d0vgan, @veksha) + add: new values of "ui_notif_confirm" to show _modal_ prompt to reload file (thanks @Crunchbits) + add: option "autocomplete_closing_delay" (thanks @pintassilgo) + add: option "ui_esc_close_finder" (thanks @NorbertJh) - fix: lexer 'Ini files ^' small bug - fix: tree-helper for Ini: support '#' comments 1.191.5 (2023/04) * change: submenu "View / Toggle unprinted chars" replaced with menuitem "Options / Unprinted chars..." which shows new dialog "Unprinted characters", it gives much more control + add: "autocomplete_autoshow_chars" must trigger also inside 'strings', it makes sense for some LSP servers (thanks @veksha) + add: "ui_scale_font" must affect font size in tooltips too (thanks @veksha) * change: "autocomplete_html":true must work together with "autocomplete_autoshow_chars" (before: it overridden "autocomplete_autoshow_chars" to 1) (thanks @veksha) - fix: lexer XML: this must not be highlighted as string: "..." 1.191.0 (2023/04) * change: rename option "minimap_tooltip_line_count" to "minimap_tooltip_height" + add: new option "minimap_tooltip_font_size" allows to use smaller font in minimap-tooltip (thanks @Vivalzar) + add: added limit of undo-data-length in session files, 1M chars, to prevent too long session saving/loading when editing with multi-carets (thanks @rssguy2) + add: long reloading of huge file, must show editor (or both splitted editors) as 'locked' (hourglass icon) + add: Windows: X icon in menu-like dialogs now looks like ui-tabs X icon - fix: regression since 2021/08: loading of huge (100M) file with rare 'umlaut' chars did not activate "fallback_encoding" and forced UTF-8 (thanks @Vivalzar) - fix: several clicks on X-icon to close big file, while lexer parser is working, may lead to Access Violation (thanks @veksha) - fix: Qt5-version exposed bug with wrong scrolling to found words, in word-wrap mode, on some Unicode texts (thanks @pintassilgo) - fix: loading session with 2 groups: file in 2nd group looses syntax highlight (thanks @rssguy2) - fix: crash with multi-line comments + "auto_fold_comments":2 + code-tree visible (thanks @ildarkhasanshin) 1.190.1 (2023/04) + add: smart-tabs option, "tab_smart", known from several text editors: PSPad, ConTEXT, Lazarus IDE (thanks @qwerky, @Vivalzar) - fix: theme config dialog's Apply-button did not apply color to sidebar (thanks @qwerky) - fix: minor issue with Alt+Tab with plugin dialogs, on Windows (thanks @veksha) 1.190.0 (2023/04) * change: statusbar click on cells "file encoding", "end-of-line chars", "lexer" now shows menu-like dialogs, like in VSCode (thanks @Vivalzar) + add: improve "minimap_drag_immediately":true, so that minimap click scrolls to clicked position (thanks @veksha) + add: add option "ui_menu_button", to control showing of '3 dots' sidebar button + add: Project Manager: on renaming of project file, rename also corresponding opened ui-tab (thanks @ThaiDat) + add: Command Palette: add few missing items for newly added encodings; rename few CJK encoding items (thanks @Vivalzar) - fix: error with "auto_fold_comments":2 and command "move lines down" - fix: lexer reStructuredText did not support spell-checker 1.189.0 (2023/03) * change: statusbar now reacts to caret moving/selection with a delay, like in 1.184; it is needed to avoid rendering speed regression since 1.185 (thanks @veksha) * change: hide sidebar button "3 dots" when "ui_menu_show":true * change: change default hotkeys in the Find dialog, e.g. Alt+O to Ctrl+Alt+O, to avoid conflicts with Alt+ hotkeys of the menu bar (thanks @pintassilgo) * change: change default value of "lexer_folding_max_lines" from 10000 to 15000 * change: on macOS, hotkey for "auto-completion" changed to Alt+Space, because on author's computer (macOS 10.11) Ctrl+Space is reserved to toggle keyboard layout; and Console uses the same hotkey now + add: option "minimap_scale" supports value<100 to show compact look + add: option "renderer_tweaks" has sub-option to avoid 'space at line-end in selection', like in Kate (thanks @pintassilgo) + add: auto-completion listbox must handle clipboard command hotkeys (thanks @veksha) + add: Project Manager icons recolored from black to gray, to support dark ui-themes (thanks @veksha) + add: lexer C/C++: better code-tree (thanks @Forum0888 from linux.org.ru) + add: word wrap: don't split chars '([' from word-chars (thanks @GenuZ) + add: better support plugin "Console Auto-Completion" so it is activated only on pressing Ctrl+Space (Alt+Space on macOS); and Console completion listbox stays visible on typing more text - fix: after lexer installation, passive ui-tabs loose syntax highlighting (thanks @MichIs from linux.org.ru) - fix: regression: option "auto_fold_comments" was broken 1.188.0 (2023/03) + add: support new macros in statusbar config: {offset_max}, {offset_caret}; the maximal supported count of lines can be changed via new option "max_lines_to_calc_offsets" (thanks @pintassilgo) + add: support emojis by statusbar macros {char} and {char_xxxx} + add: lexer C++: better code-tree for complex classes (thanks @d0vgan) + add: lexers C/C++: update keyword list from last standard - fix: error "Assertion failed" when closing single ui-tab, with visible plugin Tabs List 1.187.1 (2023/03) + add: session also has Undo/Redo data; added sub-option for Undo/Redo to "ui_history_disabled" (thanks @pintassilgo) + add: sub-option "T" in "unprinted_content" (thanks @pintassilgo) - fix: regression in auto-completion in 1.187.0 (thanks @eltonfabricio10) 1.187.0 (2023/03) * change: option "autocomplete_autoshow_chars": avoid the timer pause, like in many other editors (thanks @pintassilgo) * change: auto-completion popup: height is now determined by items count, ie new option: "ui_listbox_complete_size_items"; popup height is decreased if listbox has less items (thanks @pintassilgo) * change: auto-completion popup: keys Home/End should move caret, not listbox selection, like in many other editors (thanks @pintassilgo) + add: option "ui_session_save_interval": avoid saving if session is not yet changed (thanks @d0vgan for the patch) + add: code-tree in lexer CSS shows colored squares also for: rgb() rgba() hsl() hsla() (thanks @Stefan) + add: dialog Char Map should save not only size, but also position + add: avoid plugin dialogs / floating groups / Char Map to show out of visible screen area + add: plugin Insert Time: better support locale-dependant 'formats' (thanks @Vivalzar) + add: improved Shift+[mouse dragging]: this must expand selection of the 1st caret, like in other editors/browsers (thanks @pintassilgo) - fix: when file-pair is loaded from session, modified state of 2nd file is not restored (thanks @d0vgan) - fix: commands "go to screen top/bottom" at the document edges (thanks @qwerky) - fix: Options Editor: better tabbing over UI controls (thanks @Stefan) - fix: auto-completion popup must not have the taskbar button (thanks @pintassilgo) 1.186.2 (2023/03) + add: on pasting text with M lines into N carets (where N>=20, 0"max_line_len_parsed") in lite lexers (thanks @veksha) - fix: not fully focused tab after command "move tab to next group" (thanks @rssguy2) - fix: some minor UI issues (thanks @veksha) - fix: lexer Bash issues (thanks @Flashwalker) 1.182.0 (2023/01) + add: macOS: use latest Lazarus patches to fully support macOS IME + add: command "clipboard: copy as HTML" + add: allow plugin "Suggest Untitled Filename" to better detect which tabs it should update (thanks @Vivalzar) + add: Project Manager: command "Go to file" opens the file if project panel is not visible (thanks @rssguy2) + add: command "export to html": hide selection in export; preserve multi-carets - fix: deleting of a block until last line, could add line-break for last line (thanks @ThaiDat) - fix: regression in 1.158: plugin "Show Unsaved Changes" window became not resizable - fix: macOS: tab made by Command+N don't have caret (thanks @Andreas0602) - fix: F12='toggle side panel' doesn't run from Project Manager with hidden top menu (thanks @jczanfona) 1.181.0 (2023/01) + add: support more encodings, but note: they require OS support (unlike old encodings): + add: encoding cns + add: encoding gb2312 + add: encoding euc-kr * change: rename some encodings to pretty names: big5, gbk, shift-jis, uhc (old names 'cpNNN' still work when loading old sessions) + add: option "fallback_encoding" (thanks @kenifanying) + add: plugin API 'on_click_right'; it allows 'Spell Checker' to update its context menu items more gracefully + add: wrapping of too long tab title in the prompt to close modified untitled tab (thanks @ildarkhasanshin) + add: Wiki topic https://wiki.freepascal.org/CudaText#Dynamic_highlight + add: lexer Bash: highlight HereDoc-block as one big token (thanks @Flashwalker) + add: support Hi-DPI in few dialogs (thanks @Vivalzar) + add: Project Manager: added command "Show+focus Project panel" + add: better select whole words by mouse, after double click, now like Sublime Text (thanks @adoeller) + add: support Python 3.12 * change: change default of "renderer_tweaks" by including 's' * change: delete option "def_encoding_utf8" - fix: command "column select: down" bug when caret exists on last line (thanks @veksha) - fix: cannot delete selected line-break at the file end (thanks @adoeller) - fix: if ui/syntax themes not linked, setting default syntax-theme resets also UI-theme (thanks @adoeller) - fix: plugin "Detect Indent" cannot change tab-kind when file is loaded from command line (thanks @adoeller) 1.180.0 (2022/12) + add: option "ui_open_dir" + add: encodings 'cp861' (DOS Icelandic), 'cp865' (DOS Nordic) + add: reworked how micromap is painted in word-wrapped mode (both on vert scrollbar and not); now it paints all WrapInfo items, so e.g. long wrapped line gives several cells on micromap + add: Find dialog: after 'Select all', scroll to the first caret (thanks @Vivalzar) + add: Find dialog, Console dialog: handle global app hotkeys (thanks @Vivalzar) + add: dialog "Lexer style mapping" renders styles in the 2nd listbox (thanks @Vivalzar) + add: lexer CSS: add missing spec function/property names * change: removed default assignment of Ctrl+Shift+R to 'toggle read-only' (thanks @Vivalzar) - fix: Project Manager: changed current folder was not always passed to app - fix: on macOS, External Tools plugin shown 'Edit' dialog for the wrong list item (thanks @veksha) - fix: regression: if opened >20 tabs, just closed tabs are not added to 'recents' (thanks @mix-7) - fix: regression: on loading session, 'pinned' tabs were not closed (thanks @MiroslavMatas) - fix: usage of 'pkexec' must be disabled on macOS and enabled on Solaris 1.179.0 (2022/12) + add: forward keys Up/Down/Enter from codetree-filter-input to codetree * change: on dropping n>1 files onto app, focus last opened ui-tab (thanks @Vivalzar) - fix: crashes on fast/heavy using of file commands: drag-drop 20 files / close all / reopen recent file (thanks @veksha) - fix: crash on Windows when opening file in distraction-free mode (thanks @faulknermano) 1.178.5 (2022/12) * change: "Extract RegEx matches" action now doesn't sort matches (thanks @mast) * change: tab context menu "Close / All (all groups)" now closes tabs in all windows including floating-groups + add: avoid cropping of 'italic' id before a space (thanks @veksha) - fix: improved for drag-n-drop 700 files onto app: a) don't start parser for passive tabs, b) 'close all' works _much_ faster (thanks @veksha) - fix: for 'big' files, minimap was turning off on file open (thanks @veksha) - fix: Project Manager: ui issue on deleting files/dirs - fix: wrong message "File was changed outside" when you save file from 'splitted' view - fix: possible crash of API: Editor(1).get_filename() - fix: macOS: "Open with / CudaText" did not work from Finder 1.178.0 (2022/11) + add: allow Differ plugin to fill ui-tab context menu 'on demand' and not 'on file opening' which was much slower (thanks @veksha) + add: opening lot of files via command line (and Windows Shell Extension) must not activate each file on loading (thanks @iahung) + add: dialog "Themes" has improved UI (thanks @veksha) + add: option "find_suggest_in_selection" also detects the columnar selection (thanks @tmsg) + add: lexer PHP: support inclusion of JSON blocks - fix: sometimes, program doesn't apply dark _syntax_ theme on startup (thanks @iahung) - fix: sometimes, "Extract RegEx matches" doesn't repaint the resulting editor - fix: regression: files always open 'activated' even when it's needed 'in background ui-tab' - fix: bug in lexer JSON^ with [["aa","aa"],{"aa":"bb"}] 1.177.0 (2022/11) + add: show indicator form when app loads big file (>10Mb) on startup (thanks @Vivalzar) + add: properly zoom gutter's: a) folding column width, b) folding plus/minus icons, c) width of folding lines + add: auto-deletion of pair brackets: https://wiki.freepascal.org/CudaText#Auto-deletion_of_pair_brackets (thanks @lwo) + add: support hotkeys for "find current word next/previous" even in Find dialog (thanks @veksha) + add: set scale for 'pilcrow marks' from "unprinted_symbols_scale" (thanks @Vivalzar) + add: dialog "Go to" must have X icon even on Windows (thanks @Vivalzar) + add: increase limit of highlighted URL length to 1200 * change: Esc-key should first close the (docked) Find dialog, like Sublime/VSCode (thanks @Vivalzar) * change: dialog "Char Map" should have icon in taskbar (thanks @Vivalzar) - fix: "fold_style":4 gave problem with restoring folding after file closing/reopening (thanks @veksha) - fix: regression: "ui_esc_close_console":true did not work (thanks @Vivalzar) - fix: some minor visual glitches on painting (thanks @veksha) - fix: "File / Close all" shown confirmation with OK/Cancel, must be Yes/No - fix: closing all tabs did not reset 'untitled counter' to 1 - fix: change of grouping mode crashed sometimes 1.176.0 (2022/11) + add: Windows: avoid annoying white line under themed menubar (thanks @veksha) + add: option to turn off 'line states': "gutter_line_states" (thanks @iconv) + add: Project Manager: don't sort 'by extension': a) folders, b) non-Latin extensions (thanks @iconv) + add: apply options "caret_view*" also to plugins' input fields * change: Find dialog: make all buttons not focusable (thanks @Vivalzar) * change: option "unprinted_content" sub-option "x": a) must hide marks when there is no selection, b) must affect line-break marks too (thanks @Vivalzar) * change: make jump in the "delete word" commands similar to Sublime/Firefox (thanks @iconv) - fix: when Project Manager opens 'preview' tab, it must be activated (thanks @iconv) - fix: bad rendering of 'pilcrow' unprinted mark on Unix'es 1.175.0 (2022/11) * change: changed rendering of "Unicode combined characters" (accent chars), now they have separate char-cell like letters; this was needed to solve several issues with accent chars (thanks @iconv) * change: don't activate ui-tab by right/middle click (thanks @iconv) * change: Find dialog: close the dialog after 'Select all'/'Mark all' (thanks @Vivalzar, @veksha) * change: Find dialog: now Up-arrow goes to next dropdown item (before Down-arrow did that), like in Sublime Text (thanks @Vivalzar) * change: API event on_change_slow becomes more lazy, ie it fires only in the applicaion idle state (no keyboard/mouse input for 1-2secs) + add: dialog About: add button 'Copy to clipboard' - fix: with "undo_persistent" on, lines with tab-chars were loaded wrong from undo-file (thanks @veksha) - fix: options "caret_view*" did not affect: find-dialog, console, code-tree filter, menu dialogs (thanks @iconv) - fix: command "insert empty line below" inserted 2 lines at the file end (thanks @iconv) - fix: command "delete line" was not deleting the last line (thanks @iconv) - fix: wrong Undo after Alt+Up / Alt+Down (thanks @iconv) - fix: regression in 1.173: code-tree was not updated good for lite lexers (thanks @mix-7) - fix: regression in 1.171: with 3 selections '_[dd][dd][dd]_' typing 'a' produced '_a_' instead of '_aaa_' - fix: regression in 1.166.x: _empty_ session was reopened wrong (thanks @TomBraider42) 1.174.0 (2022/10) * change: simplified app icon + add: ui-tabs render colored circle also for externally modified/deleted files (thanks @bogen85) + add: Windows: normalize case of filenames on opening (thanks @veksha, @KodeZwerg) + add: if "ui_esc_close":true, and Esc is pressed to 'cancel selection', don't quit but perform the command (thanks @GenuZ) + add: "underline_color_files" must support 'rgb(10 20 30 / 50%)' (thanks @eltonfabricio10) + add: file-flag "plugin_disabled" in plugin's folder - disables loading of plugin + add: toolbar 'pressed' states react fast to: buttons pressing, ui-tab switching + add: support Python 3.11 - fix: regression in 1.173 - tree-helpers don't work for lite lexers (thanks @mix-7) - fix: bug in calculating text-pos from mouse-pos for proportional fonts (thanks @cg00001) - fix: "autocomplete_autoshow_chars":2 - a) must not fire event if ui-tab is quickly switched; b) value 2 didn't work with 3 typed characters (thanks @veksha) - fix: bad plugin's editor scrollbar with "micromap_on_scrollbar":true (thanks @veksha) 1.173.2 (2022/10) - fix: minor issues with formatting in auto-completion listbox (thanks @veksha) - fix: wrong filter-char highlighting in menu dialog when item is collapsed with "..." (thanks @veksha) - fix: LSP plugin tooltip could appear in Alt+Tab list on Windows (thanks @veksha) - fix: lexer PHP: wrong folding of 'default:' blocks (thanks @veksha) - fix: Breadcrumbs plugin: code-tree cells may appear without icons, when code-tree is hidden - fix: regression in 1.117 or older: in GTK2 version clipboard is cleared on exit 1.173.0 (2022/10) + add: API for LSP plugin to render colored auto-completion listbox (thanks @veksha) + add: option "gutter_icon_size" * add/change: for modified ui-tabs, render separate circle-mark instead of '*' char in the title text; ui-tabs with plugin-set custom title now also show modified circle-mark + add: toolbar shows 'pressed' state for additonal user-added buttons: 'word wrap', 'read-only', 'insert/overwrite mode', 'show micromap', 'show ruler' (thanks @hexaae) - fix: lexer Markdown: fixed rules for backtick-codeblocks, to not fail on empty line in block (thanks @etn0) - fix: Project Manager: fixed errors on ancient Python 3.5 - fix: Ctrl+BackSpace in auto-completion (thanks @actforjason) 1.172.5 (2022/10) + add: lexer reStructuredText: support headers with Unicode (thanks @lookoutside) + add: updated file-type icons (140 unused icons removed, 40 added) + add: commands "dialog: find: toggle" and "dialog: replace: toggle" now consider options "find_suggest_*" (thanks @Vivalzar) - fix: command "dialog: find: toggle" could move Find dialog out of the main window - fix: Tabs List plugin: wrong columns if file-pair is opened (thanks @veksha) - fix: error if Ctrl+D is pressed in Console/Find/Replace input (thanks @mix-7) - fix: regression in 1.165.2: Alt+Down stopped working in Console/Find/Replace comboboxes - fix: regression in 1.165.2: Ctrl+Enter stopped working in Find/Replace input fields - fix: regression in 1.167: carets outside of screen are removed on arrow moving (thanks @cser) 1.172.0 (2022/10) + add: option "auto_copy_clp", which now replaces plugin Auto Copy To Clipboard (plugin is now ignored); unlike the old plugin, option works in all editor-fields in the app (including Find/Replace/Console/etc) + add: option "mouse_middle_click":2 (paste on middle click) works also for one-line inputs: Find/Replace, Console, Code-tree filter + add: 'single instance' code works faster on Unix: user doesn't see flashing main dialog now (thanks @DUOLabs333) + add: API supports HTML formatting in auto-completion listbox; it will be used in LSP + add: handle command-line keys -h / -v / -el before creating GUI + add: Options Editor supports old Python 3.4 (thanks @spyrosmas) * change: change default of "ui_backup_sessions" to 2 (thanks @Flashwalker) * change: change default of "ui_reopen_session_cmdline" to true (thanks @Flashwalker) * change: remove '-' from "nonword_chars" in "settings_default/lexer Bash script.json" - fix: after Shift+Right, Shift+Left, simple Right makes the buggy selection (thanks @veksha) 1.171.0 (2022/09) + add: when editing too long lines (2000+ chars), editor turns lexer off for a few seconds. That is to prevent caret rendering glitches on such lines. Option is added for this: "max_line_len_for_editing_keeping_lexer". + add: few APIs for LSP Client + add: better calculate wrap positions for CJK text (thanks @lookoutside) + add: Addon Manager: add option "Verify HTTPS certificates" (thanks @veksha, @ViCrack) + add: option "renderer_anti_flicker" is now per-lexer (before it was global) - fix: option "renderer_anti_flicker":20 gave regression in FindInFiles4 plugin's UI - fix: default value of "key_left_right_wrap_with_carets" was not like default.json tells (thanks @cser) - fix: in some cases, Delete/typing command with multi-carets places multi-carets wrong (thanks @cser) - fix: regression in 1.169.2: Emmet engine broken - fix: regression in 1.167: Down-arrow from long wrapped line, to the last short line - fix: after mouse wheel zoomimg, scrollbar position becomes very incorrect (thanks @veksha) - fix: "mouse_wheel_zoom":false -> Ctrl+wheel jumps to file beginning - fix: too wide combobox-arrow if UI scale is big (thanks @kuannng) 1.170.0 (2022/09) + add: when file is deleted outside, show tab title in reddish color (theme color "tabs, special marks") + add: option "underline_color_files" must support modern variants of rgba() and hsla(); support color-angles in units deg/rad/grad/turn (thanks @eltonfabricio10) + add: option "py_caret_slow" (thanks @veksha) + add: lexer HTML: highlight background of blocks * change: bracket highlight is now performed near "on_caret_slow", ie after a pause * change: lexer CSS: don't highlight entire color-function calls as single token: rgba(...), hsla(...) etc - fix: fold-ranges from command "fold selected lines" often worked wrong - fix: incorrect width of group of some 'Latin extended' chars (thanks @dbgrgl) - fix: Addon Manager "Install from Git" ignored Git branch name on 'clone' action - fix: option "autocomplete_autoshow_chars" small bug 1.169.2 (2022/08) + add: auto-completion in plugins: avoid listbox hiding/showing, when user presses Left/Right key in auto-completion + add: API allows LSP Client to show tooltips for gutter-icons when option "lint_type" is set to "d" (thanks @veksha) * change: Emmet now doesn't auto-pair 'unknown' tags (thanks Rickard) 1.169.0 (2022/08) + add: handle the situation 'file was deleted outside' more detailed: show additional non-modal confirmation to close the tab (thanks @lookoutside, @JairoMartinezA) + add: tree-helper for reStructuredText: calculate header levels more properly (thanks @lookoutside) + add: in Python, final 'comments' must be excluded from final fold range (thanks @veksha) * change: changed the background-color of 'notification panels' inside the editor * change: macOS: adapt default hotkeys for macOS, for commands: "go to text begin/end", "caret to line begin/end", "go to word previous/next" (thanks @veksha) - fix: file with UTF-32 BE signature was detected as 'maybe not text' - fix: regression in 1.165.x: opening of file without final line-break was adding final line-break anyway - fix: couple of glithes on macOS (thanks @veksha) - fix: Emmet must not auto-complete 'ok:' for example (thanks @eltonfabricio10) - fix: "Go to bookmark" did not focus target group (thanks @MiroslavMatas) - fix: in maximized window, clicking on the vert-scrollbar right-most pixel did not work (thanks @veksha) - fix: with "scrollbar_themed":false, caret can move half below the bottom border (thanks @veksha) 1.168.5 (2022/08) + add: command "Undo" handles also color-attribs, which are added e.g. by 'Color Text' plugin + add: commands "delete to_document_begin/ to_document_end/ word_left/ word_right/ word_at_caret" and APIs delete/replace, they now delete affected color-attribs - fix: macOS: bug in blinking of caret (thanks @veksha) - fix: macOS: crash "list index error" (thanks @JairoMartinezA) - fix: regression, broken option "mouse_rt_click_moves_caret" (thanks @sl23) - fix: lexer Batch: ^-char before line-break must continue the string literal 1.168.0 (2022/07) + add: command-line parameter '-verbose' for debugging - fix: couple of issues with saving read/only files (thanks @veksha) - fix: Linux Qt5: with "caret_after_end":true, on going up/down over short lines, caret moves lefter - fix: Linux: file 'ast.py' in the current folder was breaking many plugins (thanks @veksha) - fix: lexer Bash: wrong highlight in '~/.local' (thanks @eltonfabricio10) 1.167.5 (2022/07) + add: use translated button captions in message-boxes, both internal and API (thanks @hexaae) + add: wiki page https://wiki.freepascal.org/CudaText_VS_other_editors + add: option "renderer_tweaks" has new sub-option "l" (thanks @veksha) - fix: regression in 1.166.5: saved _named_ session was not reopened (thanks @tmsg) - fix: sometimes, bookmarks-section in the history file was purged by mistake (thanks @MiroslavMatas) - fix: click on the folded-block-rectangle hides caret (thanks @veksha) - fix: in e.g. Python lexer, new typed text may be 'catched' by the upper _folded_ block (thanks @veksha) - fix: on some Linux systems, with dots_per_inch=91, minimap is empty (thanks @veksha) - fix: lexers XML/XML^: highlight quoted string only after '=' (thanks @veksha) - fix: lexer Markdown: rule for italics 1.167.0 (2022/07) + add: API to speedup ExTerminal plugin (thanks @veksha) + add: dialog 'Go to': handle also leading '+' like the trailing one + add: list "File / Open recent" stores also pictures/binaries + add: TRegExpr engine: update "uppercase/lowercase tables" for some unicode ranges (by @AmigoJack) - fix/optimization: rendering with 'markers' on 100k+ lines was very slow - fix/optimization: command "Inverse bookmarks" was very-very slow in 100k+ lines documents - fix/optimization: plugin Git Status was very-very slow if Git changes had 10k+ lines - fix/optimization: during mass replacement, pair-bracket-finder must not activate - fix: sometimes, 'markers' were painted with artifact lines - fix: on Windows, startup with 2+ groups did not restore "maximized" state (thanks @veksha) - fix: on Windows, picture viewer: dragging of small picture was not disabled - fix: on tab switching, window caption must be updated without pause (thanks @charliewales) - fix: file must appear in "File / Open recent" if default-session is active (thanks @veksha, @DUOLabs333) - fix: couple of issues with Up/Down/PageUp/PageDown with "caret_after_end" on/off (thanks @veksha) - fix: 'floating' panels feature is now disabled in GTK2 version, because of the IDE (or GTK2) bug (thanks @veksha) - fix: could not continue selection by mouse when cursor goes over minimap (thanks @veksha) 1.166.5 (2022/07) + add: small optimization: LSP plugin should not start when app starts with single empty tab - fix: on opening another project, current project-session was not auto-saved (thanks @MiroslavMatas) - fix: crash on loading session with confirmation for 'binary' file (thanks @kvichans) - fix: on loading session with active 2nd group, empty tab was appearing (thanks @kvichans) * change: on loading session, don't check files for 'binary' content 1.166.2 (2022/06) + add: support encoding iso-8859-3 + add: support encoding iso-8859-4 + add: support encoding iso-8859-7 + add: support encoding iso-8859-10 + add: support encoding iso-8859-13 + add: option "autocomplete_acp" (thanks @veksha) - fix: with "ui_tab_angled":true, drag-drop of tabs must be allowed onto inter-tab small gap 1.166.0 (2022/06) + add: support encoding iso-8859-5 + add: support encoding iso-8859-14 + add: support encoding iso-8859-16 + add: lexer must support 'dynamic highlight' if any sub-lexer supports it; example is Vue lexer (thanks @zhaolinlau) + add: Emmet plugin handles Tab-key in Vue lexer too (thanks @zhaolinlau) * change: on calling Find dialog, if none of options "find_suggest_xxxx" do suggestion, 'find what' field is not cleared; Ctrl+F from the Find dialog now selects all 'find what' (thanks @andersaamodt) * change: Windows Python upgraded to 3.8 - fix: couple of bugs in plugin API (thanks @veksha) - fix: regression in 1.165.2: Shift+F3 in Find dialog (thanks @hiiamboris) - fix: Windows: issue with Alt+Tab and "ui_taskbar_mode":false (thanks @veksha) - fix: after "fold all", all folded ranges must have [+] icon, even those affected by "fold_icon_min_range" option (thanks @tmsg) - fix: lexer PHP: don't highlight 'class name' after '->' 1.165.2 (2022/06) + add: input boxes + API-created editors: use the same key-mapping as main editor (thanks @DUOLabs333) + add: commands "(without undo) sort xxxx" set sorted range line-states to 'changed' + add: lexer CSS: support new 'units' - fix: change default value of "renderer_tweaks__linux" to "" on Linux Qt5 - fix: TRegExpr engine: fix issues with 'regex recursion' (thanks @CaptainFlint) - fix: macros playback must restore previous state of search options (thanks @hiiamboris) - fix: freezing on startup with Git Status plugin, in some cases (thanks @veksha) - fix: few rendering issues with proportional fonts: tab-chars, indentations (thanks @Hobbes) - fix: commands "(without undo) sort xxxx" incorrectly removed blank lines (thanks @TomC) - fix: lexer YAML bug 1.165.0 (2022/05) + add: add time limit for syntax highlighting in minimap: new option "minimap_coloring_time":15 + add: improve rendering speed for _lite_ lexers, on long wrapped lines (thanks @veksha) + add: improve filtering in Command Palette: find space-separated words in _any_ order, like Sublime Text (thanks @veksha) + add: lexer CSS: syntax-highlight color functions 'hwb()', 'lab()', 'lch()' + add: HTML color underlines: support 'rgb(255, 55, 255, .5)', 'rgb(255 55 255 / .5)', 'rgba(255 55 255 / .5)' * change: change the behaviour of command "skip next occurrence of selected word" to better mimic Sublime Text (thanks @veksha) - fix: UI flickering on adding plugin's sidepanel buttons (thanks @veksha) - fix: bug in Comments plugin (thanks @eltonfabricio10) 1.164.0 (2022/05) + add: major change: support for proportional fonts in the editor (no option) + add: 'listbox_ex' UI control: on scrolling, don't leave space on the bottom (thanks @veksha) + add: lexer parser for indent-based folding: if 'group index'=21 (lexer properties dialog in SynWrite), parser will _skip_ checking of pair brackets (for 'group index'=20, checking for pair brackets will run, which is good for Python) - fix: "autocomplete_trigger_chars" did not work in HTML for "<", without changing "nonword_chars" (thanks @eltonfabricio10) 1.163.4 (2022/05) + add: code-tree filling time is limited now, by new option "ui_tree_fill_max_time":1000 (in msec) + add: API for 'treeview' multi-selection + add: disabled buttons (in Find dialog, in main toolbar) are shown with a crossing-line, to be better visible as disabled * change: default of "find_hotkey_find_next" changed to "F3" (thanks @sergey) - fix: command "Paste and indent" must not force final newline (thanks @veksha) - fix: Terminal Plus steals focus after auto-completion closes (thanks @veksha) - fix: regression in 1.163.2: startup session silently skipped (thanks @mix-7) - fix: regression in 1.160.2 for code-tree; reverted 'faster filling of the code-tree' (thanks @dimon40001) - fix: a couple of minor bugs (rarely visible) in TRegExpr engine - fix: menu checkmarks in "View / Split tab" were not updated ok (thanks @sergey) 1.163.0 (2022/04) + add: new command "add next occurrence of selected text (not whole-word)" (thanks @veksha) + add: new command "skip next occurrence of selected text" + add: Windows (10 and 11): auto-set window title color to dark (thanks @ags1234) - fix: file with XML/Python encoding signature could not be re-read in different cpXXXX encoding (thanks @ertank) - fix: hotkeys were not inited completely for .txt files in a project's session (thanks @MiroslavMatas) 1.162.5 (2022/04) + add: on editing of a line, which is start of a folded block, do unfolding of that block (thanks @veksha) + add: plugin Comments: support 'Line comment' commands if 'line comment' chars are absent, but 'range comment' chars are present; e.g. in CSS (thanks @ildarkhasanshin) + add: plugin Insert Time: added format 'unix' (Unix-time), it will be added to config after you delete the config + restart the app (thanks @mix-7) - fix: issue with "ui_one_instance":true on a multi-user Linux/Unix system (thanks @bogen85) - fix: issue with too greedy folding with "auto_fold_comments" in Nim lexer (thanks @veksha) 1.162.0 (2022/04) + add: Project Manager: the work is done to support auto-saving of the last project (even untitled), and auto-loading of last active project on app start. So if user e.g. drag-drops a folder on CudaText, this makes the new project "temporary", and after app restart, "temporary" project will be restored. Also app option "ui_auto_save_session" defaults to 'true' now, to be like Sublime Text / VSCode. (thanks opennet.ru) + add: detection of XML codepage must handle standard codepage names like "windows-1252" (thanks @dinkumoil) + add: 'Paste and indent' must overwrite the selection (thanks @veksha) + add: viewer allows to activate UTF-8 encoding, and also ISO-8859-9 encoding (thanks opennet.ru) + add: code-tree remembers 'Sorted' state per each file-tab (thanks @randomize from opennet.ru) + add: commands "fold/unfold/toggle block at current line" support multi-carets + add: lexer XML: more highlighting when folding is auto-disabled by "lexer_folding_max_lines" (thanks @ertank) + add: lexer XML: highlight numbers too * change: paste with middle-click (option "mouse_middle_click":2): place caret to clicked position, like VSCode/Kate (thanks opennet.ru) * change: rename menu item "Addons Manager / Install from GitHub" to "Install from Git" * change: for folded blocks, horizontal line has different style, dash/dash - fix: regression in 1.160.2: flickering on editing in file ending, if file was edited in the beginning - fix: Project Manager: bug with the prompt "files not belonging to the project" - fix: problem with saving modified files that were reloaded by "ui_auto_save_session":true (thanks @thatfuckingbird) 1.161.0 (2022/04) + add: show information-panel on the top, when option "ui_max_size_lexer" disables the normal lexer + add: detect encoding in XML files by signature like (thanks @ertank) + add: Command Palette and API menus 'fuzzy search' improved: first show items with plain matches, then show items with fuzzy-only matches; similar to Sublime Text (thanks @adoeller) + add: Addon Manager: enabled 'fuzzy search' in menus 1.160.2 (2022/04) + add: dialog Find/Replace now shows inside the floating-groups too, when activated from there + add: command-line parameter -c=cuda_module_name,method_name (thanks @jczanfona) + add: faster filling of the code-tree (on 3Mb XML file: 2 seconds instead of 14 seconds) - fix: regression in syntax highlight after "Comment stream block" (thanks @ildarkhasanshin) - fix: Windows: painting of themed menu, when "ui_menu_themed_font_size" value is big (thanks @Ambassador) 1.160.0 (2022/04) + add: mouse buttons Extra1/Extra2 are supported in the hotkey input dialog; note that you must press buttons while mouse pointer is over editor control; these mouse buttons work as equavalent to keyboard buttons BrowserBack/BrowserForward + add: improved keyboard 'accelerators' in the menu 'File / Open recent' + add: improved API to open a file-pair: app now suggests to install new lexer also for the 2nd file + add: improved API to show 'decorations on gutter' + add: more stability of the multi-threaded parser (before, file ~/cudatext.error could appear, please report if that file appears again with new info) + add: the minimal size of "unprinted spaces/ line ends" dots changed from 2 px to 1 px (thanks @ildarkhasanshin) + add: lexer PHP: folding of 'case' blocks (thanks @ildarkhasanshin) * change: lexer PHP: simpler highlight HereDoc blocks - fix: "Open URL" in context menu was disabled if menu is called by ContextMenu key (thanks @ildarkhasanshin) 1.159.0 (2022/03) + add: Project Manager: added 'project sessions' - sessions which belong to the current project and are embedded into project file *.cuda-proj. Added several menu items to the 'gear' menu in the ProjManager, to work with 'project sessions'. (thanks @GHNewbiee) + add: Project Manager removes the file, on doing "File / Close and delete file" (thanks @MiroslavMatas) + add: Project Manager hides deleted files/folders, on opening project (thanks @MiroslavMatas) + add: 4 commands in the Command Palette: "change line ends to LF / CR LF / CR / default, for lines(s) with caret" (thanks @myocytebd) + add: lexer PHP: add folding for () and [] (thanks @ildarkhasanshin) * change: dialog 'Go to bookmark' shows decreased indentations of lines (thanks @ildarkhasanshin) - fix: new feature (v1.157) "Paste from history" didn't work on Windows 1.158.2 (2022/03) + add: default config of "detect_line" option (see the Wiki) includes 'shebang' for Bash and Python (thanks @HugLifeTiZ) - fix: write JSON configs (main app + Options Editor Lite) with 'flush buffers', to not wipe them by OS hard reset (thanks @DUOLabs333) - fix: too slow RegEx for 'numbers' in lexers C, C++, CSS, Lua, Python * change: disabled highlight of Git merge conflict markers: <<<<<<< ======= >>>>>>> 1.158.0 (2022/03) + add: Project Manager: after "Refresh" action, restore tree-nodes folding + re-select old selected item (thanks @GHNewbiee) + add: Emmet plugin: support more abbreviations with Lorem Ipsum: "lorem", "lorem4", "lorem*4", "p*4>lorem" (thanks Rickard) + add: lexer Python: folding for {...} and [...] blocks + add: update data-files for CSS auto-completion - fix: option "find_separate_form" is disabled on GTK2, since that platform has a bug with it - fix: Addon Manager: CudaText update checker 1.157.5 (2022/03) + add: lexer CSS: code-tree is reworked, now it can show OK even huge _minified_ CSS files + add: command "Paste and indent" in the Command Palette + upper menu (thanks @DUOLabs333). It mimics Sublime Text command with the same name, you can assign Ctrl+Shift+V to it. + add: command "Paste from history" in the Command Palette + upper menu. It mimics Sublime Text command. Feature is controlled by new option "ui_max_history_clipboard". + add: command "clipboard: clear history" in the Command Palette * change: removed menu item "Edit / Delete" (most apps don't have it) * change: lexer CSS: removed 'properties' nodes from code-tree (like in VSCode) * change: lexer CSS: removed color names (e.g. 'olive') from code-tree 1.157.0 (2022/03) + add: support encoding ISO-8859-9 (thanks @ertank) + add: command 'tabulation-key uses spaces: turn on' + add: command 'tabulation-key uses spaces: turn off' + add: command 'tabulation size: set to 2' + add: command 'tabulation size: set to 4' + add: command 'tabulation size: set to 8' * change: prettified ISO encoding names: 'iso88591' -> 'iso-8859-1' etc * change/add: better Undo steps, when Del/BkSpace key was pressed many times (thanks @cser) * change: plugin Insert Time: move caret to the right side on insertion (thanks @mix-7) * change: delete deprecated (in 2021/10) commands 'stop macro' and 'cancel macro' * change: delete deprecated (in 2019) reading name of ui/syntax themes from history file, it's read from user.json 1.156.4 (2022/02) + add: command "reopen recent file" in the Command Palette (thanks @andersaamodt) + add: little better Undo, when one of actions was deleting of selected block by Del/BkSpace (thanks @cser) + add: char U+00AD is also shown in hex form (thanks @DUOLabs333) - fix: big flickering when editing in PHP blocks (thanks @TomBraider42) - fix: Find dialog: activating of 'Hi' option cleared the selection, so broke the find 'in selection only' (thanks @tmsg) 1.156.2 (2022/02) * change/add: option "renderer_tweaks" has new sub-option 's' to show Unicode-spaces in usual form; default is to show Unicode-spaces in Hex form, like Sublime (thanks @DUOLabs333) - fix: app crashed with option "links_regex": "" - fix: issue in FindInFiles4 plugin when go-to-found-match did not scroll file to needed line - fix: regression with option "renderer_anti_flicker":20 (values 1...999): a) Console is not repainted until click; b) plugin Sync Scroll work is broken (thanks @TomBraider42) 1.156.0 (2022/02) * change: lexer 'Ini files' removed to Addon Manager; instead added _lite_ lexer 'Ini files ^' (thanks @sl23) + add: Project Manager: 'Go to file' menu has history of last chosen items, in the list beginning (thanks @andersaamodt) - fix: editing in sub-lexer range (e.g. in HTML/PHP) breaks highlighting in that range (thanks @TomBraider42) - fix: bug with option "autocomplete_html_autoclose":true with caret on line end (thanks @TomBraider42) - fix: lexer JS: fixes for 'regex literals' rule 1.155.3 (2022/01) * change: add the workaround for very slow work with huge line length=40M in XML file, which is handled by XML^ lite lexer: app now doesn't parse the line after 4K chars. The limit is taken from the old option "max_line_len_parsed". (thanks @tmsg) + add: new command "find: toggle+focus dialog" (thanks @DUOLabs333) + add: lexer Lua: add style for "documentation comments" - fix: auto-completion for JS block inside PHP file (thanks @TomBraider42) - fix: wrong saving of key "session" to "settings/history.json" (thanks @DUOLabs333) - fix: wrong opening of several files at once, by Enter from Windows Explorer, with "ui_one_instance":true (thanks @jroblesr) - fix: if a tool from plugin External Tools is called while recording a macro, macro becomes incorrect (thanks @cser) - fix: dialogs 'Open file'/'Save file as' on Windows have bad looking 'filter' field - fix: plugin Colored Indent didn't get on_state call (thanks @JairoMartinezA) - fix: lexer CSS: wrong highlight of 'rgb(func(some), ...)' 1.155.0 (2022/01) + add: rendering is much faster for the case of huge line length=40M in the word-wrapped mode + add/change: improve logic of option "unprinted_content"; its "x" flag now works only with selection; added flag "X" which also works only with selection (thanks @JairoMartinezA) * change: delete last enumeration-value of option "wrap_mode" (value 3 worked the same as 2) - fix: file loading progress-bar was not shown for huge single-line file - fix: on opening of big file with lexer (e.g. size 1M), beginning of the file was not colored until the entire file is parsed 1.154.0 (2022/01) + add: Ctrl + mouse_wheel_click now adds/removes caret (like in Sublime Text) (thanks @johntor) + add: Ctrl + mouse_wheel_drag now makes column selection (almost like in Sublime Text, here it removes old carets) + add: it's possible to assign Ctrl+click to 'go to definition', via new value "c" of "mouse_goto_definition" (thanks @johntor) + add: better support DocBlock plugin, by allowing the auto-completion inside _documentation_ comments (thanks @TomBraider42) + add: Project Manager: command "Go To file" is now much faster (patch by @bscan) + add: option "dim_unfocused" dims more correctly (+gutter, +ruler, +folded blocks) + add: lexer RegEx handles constructs like [^]] (thanks @kvichans) * change: default value of "mouse_goto_definition" changed to "ca" (old value "a" was not Linux compatible) - fix: typing the text in 'Overwrite mode' over emoji text - fix: search engine bug with RegEx: change of 'case sensitive' (with the same text) did not recompile the RegEx - fix: few issues in the Emmet engine (thanks Rickard) - fix: command "delete word previous" didn't move caret, if it was after line end (thanks @hiiamboris) 1.153.5 (2022/01) * change: hotkey for Find (Replace) dialog always results in the search box being focused, like in ST4 and VSCode (thanks @andersaamodt) + add: hotkeys of commands "switch tab ..." / "... focus ..." work also in the Find dialog (thanks @andersaamodt) + add: better Console message on saving session: "N file(s) + M untitled" + add: new API for Auto Save plugin (thanks @andersaamodt) - fix: plugin Auto Save could overwrite session file list from another session (thanks @JairoMartinezA) - fix: sometimes after session loading, or 'close all tabs', editor UI control hides completely 1.153.0 (2022/01) + add: it's possible to hide folding gutter icon for small blocks, via new option "fold_icon_min_range" + add: show descriptive error message in Console on loading broken lexer + add: lexer CSS: add separate styling for '.id' and '#id' like in VSCode (thanks @andersaamodt) - fix: regression in 1.152: auto-scrolling (mouse is dragged out of editor) didn't work - fix: auto-completion didn't detect proper sub-lexer in fenced code-blocks - fix: BackSpace hides the caret if after the line-end and "caret_blink_en":false (thanks @hiiamboris) - fix: syntax highlight wasn't updated after 'duplicate line'/'paste' at the end of a sub-lexer block (thanks @WebMechanic) 1.152.5 (2021/12) + add: picture viewer supports WEBP/TGA/PSD/CUR, if option "picture_types" allows it + add: HTML auto-completion: support filenames with spaces + add: HTML auto-completion: support picture filetypes WEBP, AVIF (thanks @WebMechanic) + add: HTML auto-completion: support filename completion in (thanks @WebMechanic) + add: lexer Assembly: update opcodes list * change: Project Manager: use macro {ProjDir} when storing filenames (relative) to project files (thanks @cser) * change: Unicode math chars U+2200...U+22FF now have the auto-detection widths, with "unicode_proportional":true (thanks @cser) 1.152.1 (2021/12) - fix: lexer Bash: numbers rule (thanks @eltonfabricio10) - fix: sometimes after drag-drop of text inside single file, syntax highlight was broken - fix: sometimes after installing of a lexer, ui-tabs got none-lexer (thanks @hiiamboris) - fix: commands "carets extend: ..." did not respect option "caret_proximity_vert" (thanks @hiiamboris) - fix: plugin Comments: bug with selection, which is _backward_ and until start-of-line (thanks @hiiamboris) 1.152.0 (2021/12) + add: lexer HTML: add sub-lexer 'HTML style' to highlight style="..." blocks like CSS does + add: lexer HTML: support inclusions of JSON blocks + add: lexer XML: support inclusion of CSS and JS blocks inside 'CDATA' + add: lexer CSS: support backslash-escapes in names + add: commands Delete/Backspace now handle the caret near emoji (thanks @_92) + add: drag-drop of text can be started even in the read-only editor, you can drop to another (writable) editor (thanks @66nuts) + add: drag-drop of text: toggle the mouse cursor 'simple drag'<->'multi-drag' on pressing/depressing Ctrl (thanks @66nuts) + add: option "ui_session_save_interval" allows negative values too, see new description (thanks @MiroslavMatas) + add: Tab-key in the code-tree (focused treeview or filter) should not jump to bottom panel (console input/log), and vice versa (thanks @hiiamboris, @JairoMartinezA) - fix: Qt5/macOS: major fix for the text cropped on left, when "renderer_tweaks" misses 'w' (thanks @somewhat) - fix: crash on very long line length=120K, with lexer active and wrap=off (thanks Ertan) - fix: command "codetree: focus filter" didn't work in GTK2/Qt5 versions 1.151.0 (2021/12) + add: support for 'fenced code-blocks' in Markdown lexer (thanks @WebMechanic); see new Wiki topic: https://wiki.freepascal.org/CudaText#Fenced_code-blocks + add: lexer reST: rework highlight of 'code-blocks' + add: lexer PHP: 'HereDoc' blocks with id 'HTML'/'CSS' are syntax-highlighted with HTML/CSS lexer (thanks @WebMechanic) - fix: option "caret_proximity_vert" has bad side effect ('ghost caret' when we type text at file end) 1.150.1 (2021/12) + add: Replace dialog shows toggle-button "$0" for the new option "RegEx substitute"; added sub-option 'E' to "find_hidden_buttons" + add: Wiki topic https://wiki.freepascal.org/CudaText#Margins + add: published version for macOS ARM 64-bit - fix: regression in 1.150: wrong restoring of option "RegEx substitute" on start (thanks @tmsg) - fix: plugin Macros exposed the bug: deleting of a macro broke hotkeys of other macros (thanks @hiiamboris) - fix: macOS: better mouse-wheel handling (Lazarus fix by Zoe Peterson) - fix: lexer YAML: fix 'string' rule, add 'backslash-escaped char' rule 1.150.0 (2021/11) + add: Project Manager: context menu for files gives new items "Open in default application" and "Focus in file manager" (thanks @WebMechanic) + add: dialog Replace has new option, visible only in the "..." menu: "RegEx substitute for 'Replace with'"; it's described in the Wiki topic about Find/Replace dialog + add: option "renderer_tweaks" has new sub-option "c" (thanks @hiiamboris) - fix: macro with two commands "scroll line down"+"down" did move caret _2_ lines down (thanks @hiiamboris) 1.149.3 (2021/11) + add: option "renderer_tweaks" has the sub-options "w" and "o" * change: option "renderer_tweaks" has the OS suffix * change: option "renderer_offsets" is deleted and now it is the sub-option of "renderer_tweaks" * change: binary hex viewer: replacement for control-chars is changed from '?' to '.' (thanks @dinkumoil) * change: removed old method of bookmarks saving/loading to/from history. Changelog of 1.141 told: duplicate bookmarks history to another key inside "history files.json"; later only this new key will be used and old bookmarks-history in session files will be ignored. + add: option "ui_session_save_interval":30, which allows to disable auto-saving of session to disk every 30 seconds (thanks @66nuts) + add: published version for Linux ARM Qt5 (thanks to fpcupdeluxe author) 1.149.0 (2021/11) + add: show in hex-form 2 more 'Unicode attack' chars: U+01C3, U+3164, like for 'Unicode attack BiDi chars' + add: when option "ui_reopen_session":true, also auto-save the session each 30 seconds, to make it safe if PC crashes (thanks @hiiamboris) + add: don't allow to reassign hotkeys Tab/Enter/Space/BkSpace w/o modifiers (thanks @WebMechanic) - fix: major fix for macOS text rendering - incorrect width of text fragments (visible with "renderer_offsets__mac":false) (thanks @esvignolo) - fix: width of Georgian letters should be 100% (thanks @66nuts) 1.148.5 (2021/11) + add: commands "extend carets: up/down" did not handle going over shorter lines ("caret_after_end":false); now caret column is restored when going long line-> short line-> long line (thanks @GenuZ from linux.org.ru) + add: detect that history-configs are filled with null-bytes, e.g. because of PC reset (thanks @ertank) + add: menu-dialogs show button "x" to cancel (when system dialog border is off); Command Palette has the caption now + add: dialog "View / Lexers" has initially selected item (thanks anon from linux.org.ru) - fix: macOS: repainting of UI controls on UI-theme selection (thanks @papirosko) - fix: pasting of wide _column_ blocks into short lines, with "caret_after_end":false - fix: option "caret_proximity_vert" worked bad with commands "scroll line up/down" - fix: regression in 1.107: option "carets_primitive_column_sel":true caused the regression, column blocks were not copied/pasted as column (thanks @GenuZ from linux.org.ru) - fix: regression in 1.148.0.2: wrong tail-of-file saving if file size was decreased (thanks @hiiamboris) - fix: regression in 1.147: crash on BSD-systems on app exiting (thanks @eastorwest) - fix: Windows: NTFS file streams were not preserved on file saving (thanks @squromiv) - fix: Windows: file-change-notification marked NTFS stream as modified - fix: lexer CSS: fix highlight of @property blocks - fix: lexer JSON: default extension must be 'json' - fix: lexer Markdown: 'YAML front-matter' rule - fix: lexer C++: tokenizing of some operators + add: Wiki topic https://wiki.freepascal.org/CudaText#Lexers_editing_-_styles_only + add: Wiki topic https://wiki.freepascal.org/CudaText_plugins#Embedded_Editor + add: Wiki topic https://wiki.freepascal.org/CudaText_plugins#Breadcrumbs 1.148.0 (2021/10) * change: renamed command "ui: toggle find dialog" to "dialog: find: toggle dialog", also changed logic of this command a little + add: added command "dialog: replace: toggle dialog" (thanks @sl23) + add: improved option "mouse_rt_click_moves_caret", so that right-click over selection never resets that selection (thanks @sl23) + add: show Console error message when required icon filename is missed (in toolbar-theme, in sidebar-theme etc.) + add: Wiki topic https://wiki.freepascal.org/CudaText_plugins#Color_Text - fix: command "unindent selection" shrinked selection if it was ended on a non-empty line end (thanks @eltonfabricio10) 1.147.5 (2021/10) + add: support Python 3.10 (thanks @pyscripter) + add: option "caret_proximity_vert", which allows to keep caret on the distance from top/bottom edge (thanks @hiiamboris) + add: option "renderer_tweaks", which allows to set width of the 'ellipsis' char (thanks @MiroslavMatas) 1.147.2 (2021/10) + add: click on empty tab-group area opens a new tab there * change: removed option "ui_cmdpalette_hide_simple"; all Palette items are visible now; hiding of Palette items is not much needed and give problems with customizing hotkeys - fix: regression: "Save as" must change lexer according to the new name (thanks @WebMechanic) - fix: huge memory consumption (by code-tree) on HTML/CSS files with huge lines, ie on 'minified' files (thanks @JairoMartinezA) - fix: regression: double-click on UI-tabs empty area didn't work (thanks @eltonfabricio10) - fix: micromap on scrollbar: click on folded position did not unfold it (thanks @JairoMartinezA) - fix: micromap on scrollbar: bad vertical shift, when vertical "scrollbar_arrows" is 'normal' or 'both above' 1.147.0 (2021/10) + add: before saving history/session file, check that disk free space is >1M, and give a Retry/Cancel messagebox if less (thanks @ertank) + add: option "paste_multiline_at_line_start", to mimic Sublime and VSCode, default is 'false' to not give a regression (thanks @hiiamboris) + add: option "ui_cmdpalette_hide_simple" (thanks @hiiamboris) + add: option "micromap_line_states" (thanks @JairoMartinezA) + add: command "expand selection to line, up"; before we had only "expand selection to line" which moves down (thanks @hiiamboris) + add: UI tabs drag-drop now works also when dropping on "+" pseudo-tab or on the right empty area (thanks @GHNewbiee) + add: macOS version now detects Python 3.10 (thanks @sigzero) + add: lexer HTML: show block staples (thanks @eltonfabricio10) + add: lexer CSS: highlight std CSS functions - fix: error 'wrong time specification' when file from session was deleted (thanks @A-Nicoladie) - fix: regression: drag-drop of text: wrong selection after drop of whole lines - fix: regression: drag-drop of text: missing red drop marker 1.146.2 (2021/10) * change: command "macros: start recording" was renamed and now it starts+stops the recording; 2 commands "macros: stop recording" and "macros: cancel recording" are deprecated and removed from Command Palette (thanks @hiiamboris) + add: show red (default color of "markers") editor border when macro is recording - fix: blurry UI tabs in Qt5 versions - fix: if caret is "non blinking" and "full sized", it's opaque (thanks @hiiamboris) - fix: reaction to touchpad scrolling was too slow/ too fast (thanks @hiiamboris) - fix: regression: command "focus filter" didn't work (thanks @hiiamboris) - fix: crash on pressing Esc in _floating_ side/bottom panel 1.146.0 (2021/10) + add: command "add next occurrence of selected word" now wraps at the document end, like in Sublime (thanks @loziniak) + add: new command "skip (don't select) next occurrence of selected word" (thanks @loziniak) * change: option "auto_fold_comments": now several comments separated with a blank line, make several fold-ranges (thanks @GHNewbiee) * change: micromap min-mark-height changed from 2px to 4px (thanks @JairoMartinezA) * change: 'ellipsis' Unicode char now has the full-width + add: lexer JS: "auto_fold_comments" works also for JS 'template strings' (thanks @GHNewbiee) - fix: splitted view: caret in view-2 hides if it's in folded range in view-1 (thanks @GHNewbiee) - fix: Project Manager: cannot show dot-files in 'Go to file' (thanks @loziniak) - fix: option "ui_one_instance": opening of 2nd app instance with session-file parameter didn't save previous session (thanks @JairoMartinezA) - fix: picture viewer: redundant mouse-wheel scrolling (thanks @eltonfabricio10) - fix: lexer YAML: escaping in single-quoted strings 1.145.5 (2021/09) + add: bookmarks can be shown on micromap: new option "micromap_bookmarks" (thanks @JairoMartinezA); it uses UI-theme color "editor, line states, added" + add: API allows toolbar buttons (Config Toolbar plugin) set the command-line (thanks @GHNewbiee) + add: plugin Multi Installer: add 'Back' buttons (thanks @GHNewbiee) + add: option "ui_button_hover" (note: sometimes it's buggy on Windows/GTK2) + add: command "cancel carets, but keep selection" + add: command "cancel carets, but keep last caret" + add: command "cancel carets, but keep last caret + selection" + add: lexer Bash: support floating numbers (thanks @eltonfabricio10) + add/change: macOS: with the Zoe Peterson's patch to Lazarus, rendering is 2x faster, but only if you use "renderer_offsets__mac":false; so changed the default of this option to 'false' 1.145.0 (2021/09) + add: consider Find dialog option "Case sensitive" on "Extract RegEx matches" + add: command "scroll to left edge" + add: command-line handles *.cuda-session files even without plugin Session Manager + add: lexer JS: folding for brackets ()[] (thanks @GHNewbiee) + add: lexer PHP: update word lists; keywords+classes must be case-insensitive + add: lexer Ini: highlight keywords "true"/"false" and numbers, support comments in the middle of a line + add: lexer YAML: fix string-rule, add \-escaped rule - fix: Project Manager: right-click must not open a file (thanks @GHNewbiee) - fix: Options Editor Lite: issue with arrow keys (thanks @GHNewbiee) - fix: API on_scroll was not called by "scroll ..." commands (thanks @OlehL) - fix: command "toggle side panel" sometimes shows empty panel 1.144.0 (2021/09) + add: micromap can be rendered on vertical scrollbar area: new option "micromap_on_scrollbar" + add: option "scrollbar_click_jump" (thanks @JairoMartinezA) + add: lexer Python: support for future keywords "match" with "case" - fix: major bug in CSS auto-completion (must consider " | " separators in cudax_css.py) - fix: lexer Markdown: font-style modifiers worked bad with Unicode letters (thanks @MiroslavMatas); for this fix the class \l was added to the lexer RegEx syntax - fix: lexer Markdown: fix header rule - fix: lexer Markdown: highlight of <~mail@site.com> (thanks @l1ving) - fix: sometimes command "Undo" breaks the syntax highlight (thanks @eltonfabricio10) - fix: sometimes after PageDown command, app doesn't underline links (thanks @OmlineEditor) 1.143.0 (2021/09) + add: option "autocomplete_html_autoclose" has additional function: on typing '4K) in e.g. HTML, syntax highlighting still must be calculated, to consider e.g. JS/CSS included blocks + add: lexer Markdown: rework to support all font-style modifiers in all combinations (bold, italic, crossed, bold+italic, bold+crossed, italic+crossed, bold+italic+crossed); improve rule for 'headers' + add: lexer HTML: fix to support
..
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 @halfbrained) + 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 @halfbrained) - fix: regression: not working Python, if "pylib__linux" has some special form (thanks @sikmir, @halfbrained) 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"; 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 @halfbrained) - 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 @halfbrained) - 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|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: (?Pexpr) 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 '==', 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 ' ' were lost on export - fix: lexer "Search results": fixed indent-based folding - fix: lexer HTML: bug for ''; 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 '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

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 '' and '' (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 ( 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 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 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 * 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 () + 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