TKE Text Editor

Stable Version 3.0 Released

Stable version 3.0 has now been released. This is by far and away the largest single release of TKE to date. This version focused on fixing bugs, improving code base for performance and maintenance purposes, and filling out or improving upon existing features. The following is a summary of new features, changes and bug fixes.

New:

  • Added Changelog, DesktopEntry, Fountain, PropertyList, Specman/E and Xojo syntax support
  • Added support for line wrapping for markdown-like syntaxes.
  • Added new regular expression checker plugin.
  • Added new URL validation plugin.
  • Added support for f, F, t and T Vim motion commands.
  • Added current language development documentation to Help menu.
  • Added support for clipboard history snippet variables.
  • Added support for deleting user/session language preferences.
  • Added ability to jump to a file within the sidebar by entering the beginning characters of the file's name.
  • Added new `General/PromptCrossSessionSave` and `Sidebar/KeySearchTimeout` preference items.
  • Added `-ending` option for plugins when creating spinbox preference widgets which adds text to the right side of the spinbox value, if specified.
  • Added new `Edit/Format` menu with the ability to insert bold, italics, underline, overstrike, highlight, superscript, subscript, code, header1-6, unordered/ordered list items and checkboxes.
  • Added new `formatting` syntax descriptor.
  • Added support for using function keys in menu bindings.
  • Added `Use Default` button in the shortcut preference panel for reverting shortcuts to those that are set by default.
  • Added Vim support for moving multicursors with motions with numerical values (i.e., '3j' moves all multicursors down by three lines).
  • Added support for `{count}%` where `{count}` is a percentage of the file to jump to.
  • Added support for `{count}G` where `{count}` is to a specific line within a file to jump to.
  • Added `General/DefaultThemeExportDirectory` item in Advanced preference panel.
  • Added `General/HiddenThemes` preference value with allows the user to limit the number of displayed themes in the menu and command launcher.
  • Added new `Manage Themes` tab in Appearance preference panel which can allow the user to toggle the visibility of themes, add new themes, delete themes or edit themes in the Theme Editor.
  • Added new `Get More Themes` button in the `Manage Themes` preference tab which will launch a web browser to the TKE themes webpage.
  • Added new `Close Other Tabs in Pane` and `Close All Tabs in Pane` menu items to tab contextual menus.
  • Added `selection` Vim option and added support for `inclusive` and `exclusive` selection modes.
  • Added new `Documentation` language preference panel to allow users to include additional documentation URLs to the `Help/Language Reference` menu on a per language basis.
  • Added new documentation search panel.
  • Added support for K Vim command which displays language documentation in a web browser when invoked.
  • Added ability to remove markers from current tab.
  • Added ability to associate a number with a `d$` Vim command to delete more than one line of text.
  • Added support for `g~~`, `guu` and `gUU` Vim commands.
  • Added support for Vim numerical multiplication used in various commands (i.e., 2d3l: deletes 6 characters to the left of the insertion cursor).
  • Added support for providing a license file when exporting a theme.
  • Added support for `zD` and `zF` Vim folding commands.
  • Changing behavior of setting the Vim `foldenable` option so that it setting it causes the previous folds to be reapplied to the buffer.
  • Added ability to show/hide a named buffer gutter in the ctext widget.
  • Added support for `c0`, `c$` and `c^` Vim commands.

Changes:

  • Refactored various parts of the code base for better maintainability.
  • Added ability to specify text widget to api::reset\_txt\_focus to reset the focus for the associated text tab.
  • When line numbering scheme (i.e., absolute or relative) are changed in preferences, TKE will now update all existing editing buffers to display the line numbers appropriately.
  • Improved performance of search/replace and multicursor insert/delete.
  • Removed partial support for an embeddable tke widget.
  • Changed backward/forward button states in the remote file viewer to change after the new directory contents are displayed.
  • Improved editing performance when bracket auditing is enabled.
  • Improved drawing performance of Vim command entry, find panel, find/replace panel, find in files panel and user input panel.
  • When a named session preference is changed when the current session is global, prompt the user to save the preference changes to the global session.
  • When the global preference is changed when the current session is a named session, prompt the user to save the preference changes to the named session.
  • When auto-indent or smart-indent mode is enabled, hitting the backspace key will delete to the last tabstop.
  • Changed `H`, `J`, `K` and `L` Vim commands for moving multicursors and changed multicursor moving to hitting the `m` key while multicursors are set and then using the standard Vim motion keys.
  • When the Tab key is entered when the text between the beginning of the insertion line and the current insertion point, the insertion cursor will now move to the first whitespace character after the insertion point.
  • Enhanced default menu bindings.
  • Changed default menu binding of the indent/unindent commands.
  • When a file is being renamed, only select the basename portion of the file pathname in the entry field instead of the entire pathname.
  • Improved performance of Vim `j` command.
  • Displaying multicursor move mode in information bar.
  • Improved YAML syntax highlighter.
  • Added `HighlightEndProc` keyword to syntax files to help improve embedded Tcl syntax support within syntax description files.
  • Removed ability to create menu shortcuts on macOS that would lead to 'dead keys' being invoked.
  • Minor enhancements to various syntax files.
  • When parsing TextMate theme files, grab authorship information (if available) and add it to the tketheme file.
  • Changed `Find/Markers/Remove All Markers` to remove all markers from all opened tabs (instead of just the current tab).
  • Added `View/Set Syntax` menu back into View menu on macOS.
  • Changed default keybinding for `Show/Hide Sidebar` from Control/Command-K to Control-Y.
  • Enhanced the `ciBRACKET` Vim commands to allow either the left or right bracket to be used.
  • Updated tablelist widget to version 5.17 (improved performance in theme editor).
  • Added support for `zf` Vim command when text is selected in visual mode.
  • Improved support for deleting selected text with `x`, `d`, `c` and `Delete` Vim commands.
  • Changed `zj` and `zk` Vim commands to not buffer wrap.
  • Changed line gutter selection to set insertion cursor to end of selected text.
  • Changed `Find / Select Next Occurrence` menu item to `Find / Find Next` to reflect actual functionality.
  • Changed `Find / Select Previous Occurrence` menu item to `Find / Find Previous` to reflect actual functionality.
  • Changed `Find / Select All Occurrences` menu item to `Find / Select All Matches`
  • Changed `Find / Append Next Occurrence` menu item to `Find / Select Current Match` and changing its function to append the matched item that the insertion cursor is on.
  • Changed `Save As` behavior when saving a buffer tab such that it becomes and behaves like a normal file tab.
  • Enhanced BIST suite.
  • Updated user guide.
  • Updated development guide.
  • Updated translations.

Bug Fixes:

  • Fixed issues with tab selection when a tab is closed.
  • Fixed FTP/SFTP issues when the connection name contains whitespace.
  • Fixed plugin issue with tag bind handling.
  • Fixed issues with the ci}, ci) and ci] Vim commands.
  • Fixed icons within remote file viewer when buttons are disabled.
  • Fixed directory foreground images.
  • Fixed file reloading.
  • Fixed syntax variable table in user guide.
  • Fixed support for user snippets in preferences window.
  • Fixed snippet saving issue within the preferences window.
  • Fixed keyboard traversal focusing issues within the sidebar.
  • Fixed issue when closing tab in the pane that is not the current pane.
  • Added missing `else` keyword in Perl syntax descriptor.
  • Fixed issue where title bar in window would not always match the current tab.
  • Fixed issue where all tabs are hidden and the `View` menu is displayed.
  • Fixed potential issues with showing/hiding incorrect files from the sidebar.
  • Fixed issue with updating preference widgets when session/language is changed within the window.
  • Fixed issue where selection would be lost when indenting/unindenting selected text.
  • Fixed issue where snippet is not available within editor without a restart.
  • Fixed issue when an editing buffer syntax is changed, the new syntax tabsallowed indicator was being ignored.
  • Fixed issue with replacing text with tabs and newline characters.
  • Fixed issue with bracket completion for brackets that were escaped.
  • Fixed memory leaks that occurred when a tab was closed.
  • Fixed issues related to using menu bindings with the minus character.
  • Fixed issue with using Alt in menu bindings on Linux and Windows.
  • Fixed potential issue when a menu binding is attached to a menu that contains development options.
  • Fixed issue where menu bindings could be duplicated within the UI.
  • Removed single Shift modifier from shortcut editor in preferences UI.
  • Fixed errors with comment/uncomment functionality from menu.
  • Fixed issues with using asterisk, question mark and arrow characters in menu bindings.
  • Fixed syntax discovery algorithm to be case-insensitive and only consider the tail of a filepath against the syntax file pattern.
  • Fixed ctext issues with undo/redo and bracket auditing.
  • Fixed issue with bracket auditing and code folding in multicursor mode.
  • Fixed issue where entering `{count}j` Vim command where `{count}` is a number that exceeds the number of available lines down from the insertion cursor.
  • Fixed issue using the `$` Vim command when using a numerical value with it.
  • Fixed various issues with multicursor cursor movements.
  • Fixed space and backspace Vim commands to move forward/backward by a given number of characters, line wrapping when needed (instead of working like the l/h vim commands).
  • Added missing keywords and added auto-completion support for backtick characters in JavaScript syntax.
  • Fixed YAML syntax to use indentation based code folding.
  • Fixed bug when the user changed the `Logfile Directory` value in the Advanced preferences panel.
  • Fixed issue with dragging and dropping a TKE and TextMate theme package onto the TKE sidebar or text widget to import the file.
  • Fixed issues with menu bindings not working when the key focus is in an editing buffer.
  • Fixed issue with Option key menu bindings on macOS.
  • Fixed an issue with the default colors in images when importing a TextMate theme.
  • Fixed issue when the console is closed via the window manager button but TKE menu still displayed `Hide Console` instead of `Show Console`.
  • Fixed UI issue when a tab contextual menu is displayed and then retired without selecting a menu option.
  • Fixed issue with using the `.` Vim command on macOS.
  • Fixed an issue where clearing a menu shortcut in the preferences window would not be remembered between application sessions.
  • Fixed `0` and `$` Vim commands in visual mode.
  • Fixed language disabling feature in preferences window to properly remember which languages are disabled.
  • Fixed several issues with marker support.
  • Fixed issues with displaying syntax menus which could cause the application to crash.
  • Fixed issue with syntax highlighting embedded languages which use advanced parsing.
  • Fixed visual mode support with `^` Vim command.
  • Fixed issues with bubbling text down.
  • Fixed selection state when visual line mode is started.
  • Fixed `gg` Vim command to work properly when we are in visual mode.
  • Fixed `==` Vim command to work properly when a number preceds the command.
  • Fixed `cc` Vim command when a count value is used in conjunction with it.
  • Fixed issue with deleting last line and then restoring the cursor to the correct position upon an undo operation.
  • Fixed bracket matching when two or more brackets are listed back-to-back and the first bracket is escaped.
  • Fixed issue where an escape character would not cause bracket auditing to be performed when it mattered.
  • Fixed folding issue where a foldable line would not be marked as such.
  • Fixed issue with closing all folds when at least one fold was already closed.
  • Fixed issue with updating the syntax highlighter when a file was renamed such that the extension of the file is changed.
  • Fixed issue with installing TKE through the `Check for Updates` menu option when a password is required for installation.
  • Fixed code folding issues when in manual mode and text is edited.
  • Fixed issue with closing a fold range.
  • Fixed issue with search highlighter foreground color where it could be hard to read the highlighted text.
  • Fixed state of the Find menu items to reflect the correct state.
  • Fixed issue with not highlighting the `default` keyword in Tcl syntax.
  • Fixed several issues with Vim modeline support.
  • Fixed session loading issue when the current tab of a pane is deleted from the file system and TKE is started with that saved session.