Textadept Changelog

What's new in Textadept 12.4

May 7, 2024
  • BUG FIXES:
  • Fixed macOS bug where message dialogs did not return focus to the editor.
  • Fixed Bash lexer to not highlight escaped '#' as comments.
  • CHANGES:
  • Updated AutoHotkey, Perl, and Rust lexers with minor improvements.
  • LSP: notify servers that diagnostics are supported.
  • Scintilla: significantly reduce memory used for undo actions.
  • Scintilla: added additional selection inactive colors to view.element_color.
  • Scintilla: scale reverse arrow margin cursor to match user's cursor size.
  • Updated to Scintilla 5.5.0.

New in Textadept 12.3 (Mar 7, 2024)

  • Bugfixes:
  • Fixed help files not showing up in Linux releases.
  • Fixed ^⌘ key sequences not working on macOS.
  • LSP: fixed diagnostics for some language servers that expect client diagnostic capababilities.
  • Scintilla: workaround potential crash when a line contains both left-to-right and right-to-left
  • text.

New in Textadept 12.3 Beta (Jan 3, 2024)

  • Bugfixes:
  • Do not assume filter through command output is encoded in _CHARSET.
  • Only close the initial buffer if it is blank too.
  • Fixed CMake constantly redownloading Qt SingleApplication module.
  • Qt version: Allow keypad Enter to invoke action in Find & Replace pane entries
  • Scintilla: fixed regex reverse search bug where a shortened match was returned.
  • Scintilla: avoid character fragments in regular expression search results.
  • Scintilla: fixed excessive memory use when deleting contiguous ranges backwards.
  • Scintilla: fixed incorrect substitution when searching for a regular expression backwards.
  • Scintilla: fix potential Qt crash when using IME with a large amount of text selected.
  • Changes:
  • Added textadept.snippets.active.
  • Scratch: New module for treating untitled buffers as persistent scratch buffers.
  • Scintilla: Ctrl+Click on a selection deselects it in multiple selection mode.
  • Scintilla: added buffer:change_selection_mode().
  • Scintilla: allow setting of buffer.move_extends_selection.
  • Scintilla: improve global replace performance.
  • Scintilla: make buffer:move_selected_lines_up() and buffer:move_selected_lines_down()
  • work for regular selections.
  • Updated to Scintilla 5.4.1.

New in Textadept 12.2 (Nov 2, 2023)

  • Bugfixes:
  • Regex replacements with '^' anchors should only match once per line.
  • Fix statusbar column number not including virtual space.
  • Fixed terminal version crash in some list dialogs with UTF-8 characters in them.
  • Gtk input dialogs are resizable.
  • Fixed default Gtk icon dialog when none was specified.
  • Changes:
  • Updated Brazilian Portuguese and Spanish localizations.

New in Textadept 12.2 Beta (Oct 3, 2023)

  • BUG FIXES:
  • Fixed crash during logout/restart on Windows while Textadept is still running.
  • Prevent key bindings in the macOS menu from overriding user-specified bindings.
  • Fixed interpretation of '-' command line argument as reading from stdin.
  • Prevent duplicate key events from Scintilla.
  • Only show message box icons in the Gtk version if they exist.
  • Fixed display of window and dialog icons in Gtk.
  • Correctly highlight built-in Bash variables surrounded by "${...}".
  • CHANGES:
  • Implemented single-instance functionality on Windows (and Linux with Qt).
  • Dropped legacy 11.x compatibility shims.
  • Added Brazilian Portuguese localization.
  • Updated Hare, fstab, and Matlab lexers.
  • Updated Markdown lexer to detect code blocks delimited by ~~~.
  • Updated Bash lexer to disable conditional and arithmetic operator highlighting due to performance.
  • Updated to Scintilla 5.3.7.

New in Textadept 12.1 (Sep 3, 2023)

  • BUG FIXES:
  • Correctly recognize projects under Fossil version control.
  • Fixed potential crash on GTK when opening a list dialog and immediately arrowing down.
  • Fixed crash unsplitting a non-focused view whose other pane contains the focused view.
  • Fixed some multi-byte characters in Julia lexer being incorrectly marked as operators.
  • Fixed lack of legacy support for lexer.fold_consecutive_lines().
  • Do not highlight Bash variable pattern expansion as comments.
  • Fixed potential crash with proxy lexers like RHTML.
  • Scintilla: fixed crash when using IME with a large amount of text selected.
  • CHANGES:
  • Added textadept.run.run_without_prompt for running commands immediately
  • Updated Hare lexer.

New in Textadept 12.0 (Aug 7, 2023)

  • BUG FIXES:
  • Fixed potential crash when using legacy lexers.
  • Fixed error switching to the only buffer that exists.
  • Fixed case insensitive word completion from all buffers.
  • Fixed syntax highlighting glitches on Windows.
  • LSP: small fixes for language servers that do not play nicely.
  • LSP: work around Scintilla repeatedly sending hover events on Windows and Qt.
  • LSP: fixed active Lua parameter calculation if documented function uses ':'.
  • LSP: fixed inaccurate recording of 'goto' position for history navigation.
  • Export: use the correct dialog when prompting for a file to export to.
  • CHANGES:
  • Updated Python lexer to support soft keywords.
  • Removed unnecessary Qt DLLs from Windows release.
  • LSP: query for updated diagnostics if the buffer has since been modified.
  • Scintilla: input method improvements on Qt.
  • Updated to Lua 5.4.6.
  • Updated to LPeg 1.1.0.
  • Updated to Scintilla 5.3.6.

New in Textadept 12.0 Beta (Jul 4, 2023)

  • Bugfixes:
  • Fixed a new view resetting a buffer's indentation settings.
  • Fixed Qt bug where unsplitting in a second-level split view changed view focus.
  • Do not silently print internal Lua errors.
  • Fixed compile error with Gtk 2.0.
  • Fixed Gtk list dialog display.
  • Fixed Qt bug that disallowed literal '*' in list dialog filters.
  • Fixed display of bullets in "session files not found" dialog on Windows.
  • Do not attempt to show a snippet list without snippets.
  • LSP: fixed calculation of character columns when tabs are enabled.
  • LSP: Lua language server highlights ':' method parameters starting at 2, not 1.
  • Changes:
  • Windows 10 and macOS 11 are the new minimum system requirements; Linux is unchanged.
  • Moved "View Whitespace" and "Word Wrap" back into "View" menu and made them view-specific
  • properties.
  • Added alphanumeric macro registers.
  • Autodetect dark mode and implement auto-switching between light and dark modes on Windows.
  • Support Qt 6 and use it on Windows and macOS builds.
  • Switch default indentation to size 8 tabs.
  • Allow autocompleter functions to set separator character and sort order.
  • Added lua-std-regex and its regex Lua module.
  • Support TextMate- and LSP-style snippets, and deprecated old format.
  • Alias Ctrl+Shift+U (upper-case selection) to Ctrl+Alt+Shift+U in case the former is
  • consumed by Linux for Unicode input.
  • LSP: added support for snippet completions.
  • LSP: support per-project language servers.

New in Textadept 12.0 Alpha 3 (May 2, 2023)

  • BUG FIXES:
  • Fixed syntax highlighting lag regression.
  • Fixed updating buffer tab's "dirty" status on save all.
  • Fixed error when backspacing over an auto-paired character before a multi-byte character.
  • Fixed events.AUTO_C_CANCELED not existing.
  • Fixed _L not returning non-localized messages.
  • Do not show an empty quick open list.
  • Qt version: fixed button3 and return_button options for ui.dialogs.list().
  • LSP: fixed issue sending file URIs to language servers on Windows.
  • LSP: fixed startup issue with many language servers that do not support selection ranges.
  • LSP: test that call tip triggers are present before trying to find one.
  • LSP: Lua language server writes its log to _USERHOME.
  • Scintilla: fixed GTK bug with too many or too few lines when wrapping.
  • Scintilla: draw background color for EOL annotations with no decorations or outlined with a box.
  • Scintilla: fixed buffer:lines_join() bug where 'r' were incorrectly retained.
  • Scintilla: fixed indicator drawing over the left margin in the Qt version.
  • Scintilla: fix clipping of line end wrap symbol for view.WRAPVISUALFLAGLOC_END_BY_TEXT.
  • CHANGES:
  • Autodetect dark mode and implement auto-switching between light and dark modes (macOS and
  • Linux only for now).
  • Revamped API documentation, mainly for buffer and view API to be more readable.
  • Allow multiple selections in the recent file dialog.
  • Added a dialog button to clear the recent files list.
  • Hide the Windows popup console window when running Textadept as a Lua interpreter.
  • ui.print_silent() and ui.output_silent() always print silently and return their print
  • buffers.
  • Restored ui.command_entry.height and textadept.snippets.paths.
  • Increase io.quick_open_max.
  • Allow short-hand access notation for menu items in textadept.menu.menubar.
  • events.MOUSE emits a bit-mask of modifier keys instead of multiple booleans.
  • Format: only ignore header lines that have no content.
  • LSP: Lua language server supports local tables and functions.
  • LSP: highlight the active call tip parameter when typing, if possible.
  • Scintilla: draw lines more consistently by clipping drawing to just the line rectangle.
  • Scintilla: draw view.MARK_BAR markers underneath other markers.
  • Scintilla: enlarge view.INDIC_POINT* indicators and scale to be larger with text.
  • Scintilla: make view:line_scroll() more accurate when the width of a space is not an integer.
  • Scintilla: emit events.AUTO_C_COMPLETED when buffer.auto_c_choose_single is true.
  • Scintilla: buffer:para_up*() go to the start position of the paragraph first.
  • Scintilla: view.rectangular_selection_modifier works in the Qt version.
  • Scintilla: support IME context in the GTK version.
  • Scintilla: allow scrolling with mouse wheel when view.*_scroll_bar is false in the
  • Qt version.
  • Scintilla: added multi-threaded wrap to significantly improve performance of wrapping large
  • files.
  • Scintilla: allow individual bytes of multi-byte characters to be styled.
  • Updated to Scintilla 5.3.4.
  • Updated to Scinterm 5.0.

New in Textadept 12.0 Alpha 2 (Mar 2, 2023)

  • BUG FIXES:
  • Fixed auto-pair removal bug when backspacing over an auto-paired character.
  • Fixed directory filters that contain directories to include.
  • textadept.editing.autocomplete() should return false if no completions are displayed.
  • Fixed clearing of a previous buffer's state when switching between buffers after closing one.
  • Qt version: ensure the given directory is selected in Linux's directory selection dialog.
  • Terminal version: fixed spawning processes on Linux and macOS.
  • Terminal version: synchronize paragraph up/down extend selection key binding with GUI version.
  • Scintilla: fixed scroll position update after view:vertical_center_caret().
  • Scintilla: prevent autocompletion of lists created during events.CHAR_ADDED.
  • LSP: fixed diagnostic display.
  • LSP: silently print to LSP buffer when starting language servers.
  • LSP: properly handle incoming server requests.
  • LSP: fixed "Find References".
  • LSP: gracefully shut down language servers on quit too, not just reset.
  • LSP: improved startup and error notifications.
  • LSP: synchronize unsaved document changes when switching away from a buffer or view.
  • LSP: handle unexpected language server exit (i.e. crash).
  • LSP: fixed display of signature help when more than one option is present.
  • CHANGES:
  • Language modules are no longer auto-loaded when their files are opened.
  • All language autocompletion and documentation has been delegated to the external LSP module.
  • Deprecated C, CSS, Go, HTML, Lua, Python, and Ruby language modules.
  • Textadept no longer generates or uses Lua tags and api documentation files.
  • Deprecated the ctags module.
  • Removed "Tools > Complete Symbol" and "Tools > Show Documentation" menu items.
  • Removed textadept.editing.api_files and textadept.editing.show_documentation().
  • Hide the Find & Replace pane after an "In Files" search.
  • Allow lexers to dictate what constitutes a word character.
  • Added lexer.names().
  • Removed textadept.editing.transpose_chars().
  • Replaced textadept.editing.typeover_chars with typeover_auto_paired.
  • Renamed textadept.snippets.cancel_current() to cancel().
  • Removed textadept.snippets.path.
  • Added buffer representation argment to events.BUFFER_DELETED.
  • Switched documentation format to LDoc from LuaDoc.
  • Added -L and --lua command line option for running Textadept as a standalone Lua interpreter.
  • Scroll all views showing print/output buffers when printed to.
  • Renamed _SCINTILLA.next_* to _SCINTILLA.new_*.
  • textadept.run.run_in_background applies even if the output buffer is not open.
  • Notify of compile/run/build/test/project command success or failure in statusbar.
  • Autoscroll to the bottom of compile/run/build/test/project output buffer if possible.
  • Removed ui.command_entry.append_history() and ui.command_entry.height.
  • Use Scintillua as a Lua library instead of as a Scintilla lexer.
  • Removed support for buffer.property_int (not lexer.property_int).
  • LSP: updated to LSP 3.17.
  • LSP: implemented selection range.
  • LSP: support language-specific completion and signature help trigger characters.
  • LSP: support highlighting active parameters in signature help.
  • LSP: show relative paths in "Go To ..." dialogs if possible.
  • LSP: send "textDocument/didClose" notifications.
  • LSP: added simple Lua language server and enable it by default for Lua files.
  • LSP: stop logging to a buffer and added "Show Log" menu option instead.
  • LSP: allow for launching servers outside a project.

New in Textadept 12.0 Alpha (Jan 2, 2023)

  • BUG FIXES:
  • Fixed io.get_project_root() on Windows network shares.
  • Fixed display of Shift+Tab key bindings in menus.
  • Fixed toggling comments in multi-language lexers.
  • Do not show duplicate lexer names in the selection list.
  • Correctly recognize UTF-8 files with NUL bytes in them.
  • GTK version: fixed invalid cast warning for split views.
  • GTK version: handle movement keys from the list dialog entry when interactive search is not active.
  • Terminal version: fixed crash cleaning up after a spawned process.
  • Terminal version: improved spawn command parsing.
  • Terminal version: fixed suspend/resume.
  • Terminal version: fixed interpretation of backspace key in CDK entry boxes.
  • CHANGES:
  • Added Qt version and made it the default for all platforms.
  • The Qt version of Textadept is not a single-instance application, only the GTK version is.
  • The minimum required version of macOS is 10.13 (High Sierra).
  • Switched to CMake-based build for building natively on Windows, macOS, and Linux.
  • Redesigned key bindings to be more consistent and deterministic across OSes and platforms.
  • Added 'Save' buttons to close and quit dialogs when there are unsaved buffers.
  • Removed GTK support for Windows and macOS (Linux is still supported).
  • Utilize "TEXTADEPT_HOME" environment variable, if it exists, in place of autodetected _HOME
  • based on Textadept executable location.
  • Added _G.QT.
  • Include Go language module in separate set of modules.
  • Quick open list shows relative paths if possible.
  • Find in files result paths are relative to the searched directory.
  • Buffer browser shows relative paths for files in the current project.
  • More reasonable initial list dialog sizes.
  • "Save As" dialog falls back onto the current directory if necessary.
  • Deprecated reST and YAML modules.
  • Added '-' command line option for reading from stdin into a new buffer.
  • Removed 10-item find/replace history limit for the GUI version.
  • Added ui.buffer_list_zorder option and removed zorder parameter from ui.switch_buffer().
  • The buffer list order is most recently used first by default.
  • Added ui.suspend() for the terminal version, allowing any key binding to suspend the editor.
  • textadept.editing.auto_pairs and textadept.editing.typeover_chars auto-include ''
  • characters for XML-like languages and removed textadept.editing.brace_matches.
  • Added menu option and key binding to undo last selected word.
  • ui.find.show_filenames_in_progressbar is false by default now.
  • Filters for lfs.walk(), io.quick_open(), and ui.find_in_files() now use glob patterns
  • instead of Lua patterns.
  • Changed events.KEYPRESS to only emit string key representations.
  • Changed events.TAB_CLICKED to use key modifier mask like other events.
  • Changed textadept.editing.auto_pairs and textadept.editing.typeover_chars to use string
  • character keys instead of bytes.
  • Added textadept.run.INDIC_WARNING and textadept.run.INDIC_ERROR for underlining
  • compile, run, build, and test warning and error messages.

New in Textadept 11.5 Alpha 2 (Dec 11, 2022)

  • BUG FIXES:
  • Fixed memory leak after running timeout function.
  • Fixed buffer.eol_annotation_style* settings.
  • Fixed bug showing the buffer browser from the first buffer if zorder is true.
  • Fixed display of compile/run commands in output.
  • Fixed inability to use single-quoted command line arguments to os.spawn() in the terminal
  • version.
  • Open file mode: Fixed bug loading module during Textadept initialization.
  • CHANGES:
  • Dropped BSD support.
  • Separated GUI platform C code from non-GUI C code.
  • Added _G.GTK.
  • _G.OSX is now always true on macOS, not just in the GUI version.
  • buffer.tab_label is now write-only.
  • Replaced gtDialog with smaller set of built-in dialogs.
  • Deprecated ui.dialogs.*msgbox() in favor of ui.dialogs.message(),
  • ui.dialogs.*inputbox() in favor of ui.dialogs.input(), ui.dialogs.fileselect() in
  • favor of ui.dialogs.open(), ui.dialogs.filesave() in favor of ui.dialogs.save(),
  • ui.dialogs.progressbar() in favor of ui.dialogs.progress(), and
  • ui.dialogs.filteredlist() in favor of ui.dialogs.list().
  • Removed ui.dialogs.textbox(), ui.dialogs.*dropdown(), ui.dialogs.optionselect(),
  • ui.dialogs.colorselect(), and ui.dialogs.fontselect().
  • Input and list dialogs return text and selections first before button indices.
  • Input dialogs no longer accept multiple text entries and labels.
  • Removed string_output option from dialogs.
  • Renamed the following dialog options: with_directory → dir, with_file → file,
  • select_multiple → multiple, select_only_directories → only_dirs.
  • Removed opts argument from io.quick_open().
  • Find in Files' file scanning is shown with a progress dialog and can be stopped.
  • Deprecated ui._print in favor of ui.print_to().
  • _L no longer prefixes non-localized messages with "No Localization:".
  • textadept.run.stop() presents a list dialog if there is more than one process running.
  • Moved process spawning into platform C code.

New in Textadept 11.4 (Dec 11, 2022)

  • BUG FIXES:
  • Fixed line comment toggling for Batch.
  • Fixed lack of HTML documentation in releases since 11.3.
  • Ensure the statusbar is updated after buffer:set_lexer().
  • Ensure events.LEXER_LOADED is emitted on buffer.new().
  • LSP: Fixed off-by-one errors for goto definition et. al. and find references.
  • LSP: Fixed bug attempting to start a language server manually.
  • Lua REPL: Fixed key bindings.
  • Ruby: Fixed bug when trying to toggle a block at the end of the buffer.
  • Scintilla: Fixed hiding selection when view.selection_layer is view.LAYER_UNDER_TEXT.
  • Scintilla: Fix potential issues with drawing non-UTF-8 text.
  • CHANGES:
  • Changed line duplication to line/selection duplication.
  • Added ui.popup_menu() for displaying menus like the right-click context menu.
  • The GUI version now recognizes the 'menu' key.
  • Added support for Hare.
  • Updated Spanish translation.
  • Updated R, Fortran, and Go lexers.
  • Updated to Scintilla 5.2.4.