Skip to content

Instantly share code, notes, and snippets.

@jfcherng
Last active April 20, 2024 00:25
Show Gist options
  • Save jfcherng/7bf4103ea486d1f67b7970e846b3a619 to your computer and use it in GitHub Desktop.
Save jfcherng/7bf4103ea486d1f67b7970e846b3a619 to your computer and use it in GitHub Desktop.
Sublime Text 4 changelog just because it's not on the official website yet.

This gist will no longer be updated as the changelog will be on the official website.

Converted via https://domchristie.github.io/turndown

About Sublime Text 4

Sublime Text 4 (Stable 4107) has been released. Check https://www.sublimetext.com/blog/articles/sublime-text-4

Dev Channel Changelog

Build 4106

19 May 2021

  • Preparation for public release

Build 4105

10 May 2021

  • Linux, Mac: Caches have been moved to their proper location (~/.cache and ~/Library/Caches respectively)
  • Windows: Fixed an auto complete crash when auto_hide_menu is enabled
  • Windows: Fix memory leak

Build 4104

3 May 2021

  • Fix crash with chain command
  • Fix regressions with Goto Anything in 4103
  • Windows: Fixed an OpenGL regression in 4103

Build 4103

30 April 2021

  • Further performance improvements for Goto Anything
  • Added Scroll Bar.sublime-mousemap to customize scrollbar interaction
  • Added the chain command, which accepts a list of commands to run in its "commands" argument. This allows binding a key to run multiple commands without having to use a macro
  • Various syntax definition updates
  • Add Report a Bug entry in the Help menu
  • open_files_in_new_window is now supported on all platforms
  • Fixed scroll jumping on swap up/down
  • Auto Complete: Fixed an infinite loop when the same folder is added to the sidebar twice
  • Linux: Use native dialogs functionality in GTK, enabling KDE dialogs when desired
  • Mac: Improved behavior of Open and Save dialogs
  • Windows: Fix scroll jumping when using auto_hide_menu with adaptive theme
  • Windows: Fix multiple application instances launching using "Open with Sublime Text"
  • API: Add missing sublime.selected_sheets() method for Python 3.3

Build 4102

9 April 2021

  • Mac: Fixed window title appearing in the wrong location in the Adaptive theme
  • Fixed a sidebar selection bug with the last file in a folder
  • Folders in the sidebar can be recursively expanded via alt+arrow key

Build 4101

6 April 2021

  • Windows: Fixed missing manifest

Build 4100

5 April 2021

  • Mac releases now include native Apple Silicon binaries
  • Switching files correctly updates the window title and status bar
  • Tab Multi-Select: in Goto File and Goto Symbol in Project, the ctrl/cmd modifier now opens the file to the right, replacing any existing tabs
  • Tab Multi-Select: in Goto File, Goto Symbol in Project and Definitions popup, the shift modifier appends the file to the far right
  • Goto Anything: pasting a file name and line number no longer changes the line in the previous file
  • Goto Anything: add missing ctrl+enter key binding for Windows and Linux
  • Goto Anything: correct flickering of first tab when filtering files
  • Auto Complete: fixed a regression with the Definition link
  • Sidebar: fixed keyboard navigation when the Open Files section is displayed
  • Code Folding: fixed some edge-case incorrect behaviors
  • Linux: recursively expanding and collapsing sidebar folders now works with alt or super
  • Various syntax definition updates
  • API: added Sheet.group()
  • API: added sublime.CLEAR_TO_RIGHT for use with Window.open_file()
  • API: fixed ViewEventListener.on_load_async() sometimes not being called
  • API: added missing Window.select_sheets() method to Python 3.3 plugin host
  • API: Syntax.name is now derived from the path if not present

Build 4099

15 March 2021

  • Auto Complete: added the auto_complete_when_likely setting
  • Auto Complete: when mini_auto_complete is enabled, a normal AC window will no longer appear
  • Auto Complete: fixed clipping of kind letters
  • Sidebar: keyboard navigation has been fixed
  • Sidebar: various file selection fixes, including paths passed to commands
  • switch_file now preserves the current tab multi-selection
  • delete_file now properly closes associated tabs
  • swap_line_down will no longer result in an invalid selection
  • Trimming modified white space works properly in more edge cases
  • trim_trailing_white_space_on_save set to not_on_caret will no longer remove file contents
  • Selection will no longer be reset after Find All is used when finding in selection
  • Find results are now properly highlighted on Find All when close_find_after_find_all is turned off
  • Unicode URLs are now properly handled in the editor context menu
  • Closing window right after creating it will no longer crash
  • Changing window layout will no longer crash
  • Tab selection changes will no longer crash
  • Mac: windows will now stay maximized when using Mac window tabs
  • Linux: drag and drop of files into the editor has been fixed
  • Windows: menu corruption when using dark menus has been fixed
  • Themes: the tree_row for the file with input focus now gets the attribute highlighted
  • Various syntax definition updates
  • Clicking the Definition popup side-by-side icon will now replace all the selected tabs on the right
  • Fixed reveal in side bar sometimes not scrolling far enough
  • API: Added logging status functions:
    • sublime.get_log_commands()
    • sublime.get_log_input()
    • sublime.get_log_build_systems()
    • sublime.get_log_result_regex()
    • sublime.get_log_indexing()
    • sublime.get_log_fps()
    • sublime.get_log_control_tree()
  • API: Make the logging function toggle when no argument is passed:
    • sublime.log_commands()
    • sublime.log_input()
    • sublime.log_build_systems()
    • sublime.log_result_regex()
    • sublime.log_indexing()
    • sublime.log_fps()
    • sublime.log_control_tree()
  • API: ok_cancel_dialog() and yes_no_cancel_dialog now accept an optional title parameter
  • API: popups will be properly positioned when displayed near the right-hand side of the editor
  • API: popups near the right-hand side of the editor with wrapped lines will now be properly sized
  • API: minihtml will now properly handle whitespace after br tags and at the beginning of li tags
  • API: minihtml now supports white-space: nowrap
  • API: Updated Python to 3.8.8 and OpenSSL to 1.1.1j

Build 4098

12 February 2021

  • Windows will remember their Virtual Desktop/Space/Workspace, controlled by the remember_workspace setting
  • Tab Multi-Select: added commands to change tab focus left and right
  • Tab Multi-Select: improved Selection > Tab Selection menu
  • Tab Multi-Select: the Alt modifier now works in the Side Bar
  • Tab Multi-Select: the Alt and Ctrl/Cmd modifiers now work with the tab dropdown
  • Find highlights are no longer shown for files over 1MB
  • Side bar row highlights now properly reflect the selected tabs
  • Fixed a regression that would leave open files after being deleted from the side bar
  • Reveal in Side Bar now works consistently
  • Goto Symbol in Project now properly behaves with the Ctrl/Cmd modifier
  • Fixed the tree_animation_enabled setting to work properly
  • Prevent a crash when opening a file while two or more tabs are selected
  • Fixed a bug with Goto Anything when combining a file name and line number
  • Themes: Fix a regression that could cause folder icons in the side bar to be rendered incorrectly
  • Linux: Resolved menu performance issues when using Wayland
  • Linux: Fixed a crash on some non-Gnome desktop environments
  • Linux: Prevent carets from getting stuck due to text drags
  • API: Added modifier_keys to event dicts when commands are invoked via a menu
  • API: Tooltips from minihtml title attributes are now positioned properly
  • API: Additional fix for CommandInputHandler() objects for Python 3.3
  • API: Updated Python to 3.8.7 and OpenSSL to 1.1.1i

Build 4097

3 February 2021

  • Key Bindings: Join Lines is now on Ctrl+Shift+J / Cmd+Shift+J
  • Key Bindings: Expand Selection to Indentation is no longer bound by default
  • Key Bindings: Ctrl+J / Cmd+J is now used as a prefix for sequential key bindings, similar to Ctrl+K / Cmd+K
  • Improved symbol popup navigation to default to replacing the focused sheet
  • Append Tab icon in symbol popup now always opens a new tab to the right
  • Added Selection/Tab Selection menu
  • Find: Find in Selection now highlights the area that will be searched
  • Find: Added find_only and replace_only options to auto_find_in_selection
  • Find: Fixed adjacent matches being skipped when find in selection is in use
  • Find: Fixed find in selection option not being cleared when changing tabs
  • Find: Find commands can now be run without the find panel having input focus
  • Linux: Disable custom title-bar on non-gnome desktop environments
  • Linux: Fix popups having a titlebar or not showing
  • API: Fix CommandInputHandler objects for Python 3.3

Build 4096

29 January 2021

  • Linux: Added support for custom title bars
  • Goto File, Goto Symbol in Project, Goto Definition and the Definitions popup now support the ctrl/cmd modifier to open the file in addition to the current file
  • Tabs, Open Files entries, Goto File, Goto Symbol in Project, Goto Definition and the Definitions popup now support using the alt modifier to replace the current file with the selected file
  • Added support for previewing TGA and PSD images
  • Command Palette entry UI: Customize Color scheme now supports in .tmTheme files
  • Find in Files: Fix not recursing into directories on networked file systems
  • Find in Files: Hide rulers by default in find results
  • Themes: Improved appearance of highlight_modified_tabs with square and rounded tabs
  • Themes: Fix background color of Adaptive theme tabset when a sheet has a color scheme override
  • Themes: tabset_control and tab_control now get a tint of the sheet after background_modifier is applied
  • Windows: Fix display of color emoji when using subpixel_antialiasing
  • Windows: Work around OpenGL artifacts in text controls
  • Windows: Fix flashing when using OpenGL and resizing a window
  • Fixed an regression in Auto Complete window positioning
  • API: Backwards Compatibility Break: sublime.ADD_TO_SELECTION_SEMI_TRANSIENT was removed, should use sublime.ADD_TO_SELECTION | sublime.SEMI_TRANSIENT in place
  • API: Added the flag sublime.SEMI_TRANSIENT for use with window.open_file()
  • API: Added the flag sublime.REPLACE_MRU for use with window.open_file(). When multiple sheets are selected, this flag will cause the opened file to replace the most recently used sheet with the file being opened.
  • API: Backwards Compatibility Break: The event parameter passed to commands when a minihtml link is clicked changed from a two-element list to a dict with the keys x and y
  • API: Added the flag sublime.WANT_EVENT for use with window.show_quick_panel(). This will pass an event dict to the on_select callback. The dict will contain the key modifier_keys, which will be a dict that may contain zero or more of the keys: primary, ctrl, super, alt, altgr.
  • API: The TextInputHandler and ListInputHandler classes may define a method want_event() that returns True to receive an extra parameter, an event dict, when the validate() and confirm() methods are called. The dict will contain the key modifier_keys, which will be a dict that may contain zero or more of the keys: primary, ctrl, super, alt, altgr.
  • API: Add sublime.ui_info() for high-level information about the UI
  • API: Fix display of the annotation field of ListInputItem()

Build 4095

22 January 2021

  • Changed file tab style, adding file_tab_style setting
  • Added Default Dark theme
  • Added automatic dark/light theme and color scheme switching, based on OS theme changes
  • Sheets without input focus are now dimmed when using included themes
  • Included themes have a tab connector joining the active sheet and tab when using sheet multi-select
  • Improved the theme and color scheme selection commands
  • Added commands to simplify customizing the active theme or color scheme
  • Added a New Tab button in the tab bar, and hide_new_tab_button setting
  • Various syntax highlighting improvements
  • Added Preserve Case to Find in Files
  • Definitions popups now include the symbol name
  • Improved handling of newlines in exported HTML
  • When renaming a file, the extension is now excluded from the initial selection
  • switch_file command now handles filenames with compound extensions
  • The scroll_past_end setting now supports customizing the scroll distance using numbers from 0.0 to 1.0
  • Double-clicking a semi-transient sheet's tab will now fully open the sheet
  • Invalid Python version files are now correctly displayed in the Console
  • Fix a regression with side bar input focus
  • Resolve some bugs with syntax definitions that use branching
  • Fix a bug with Jump Back saving multiple jump points when drag-selecting text
  • Fixed a bug with Find where the most recent history item was sometimes overwritten
  • Fixed image sheets to properly follow the theme scroll bar colors
  • Fixed a bug with scroll position jumping around where certain commands were executed
  • Color Schemes: Slightly darkened the background of Mariana
  • Color Schemes: .hidden-tmTheme files are now supported by the .sublime-color-scheme convertor
  • Themes: Included themes use variables extensively, making customization simpler
  • Themes: The settings key now supports objects, with keys being settings and values being a boolean, string or array of strings
  • Themes: Added sheet_contents class to text, image and HTML sheets
  • Themes: Added the background_modifier property for sheet_contents
  • Themes: Added a number of new attributes to tab_control for richer tab theming
  • Themes: The highlighted attribute is only applied to the most recently active sheet, rather that the most recently active sheet in each group
  • Themes: tab_control and sheet_contents classes now synchronize their highlighted and hover attributes
  • Themes: tooltip controls now support animations to their opacity
  • Linux: Fix bug with the caret not moving after performing a text drag
  • Linux: Fix key bindings containing the - key when using a French AZERTY keyboard
  • Linux: Fix a bug with context menus sometimes getting incorrect variables
  • Mac: Updated icon to follow macOS 11 style
  • Mac: Added a workaround for Apple M1 OpenGL graphics driver bug that caused text to be rendered incorrectly
  • Mac: Fix title bar flickering after switching between themes using light and dark menus
  • Mac: Fix a bug with "preview_on_click": "left_only" when the option key was used with the left mouse button
  • Mac/Windows: Added document icons and file associations for all Sublime file formats
  • Windows: Added support for dark mode title bars and menus
  • Windows: Correct some font rendering glitches
  • Windows: Fix bug causing menu to appear when using key binding using alt
  • Windows: Fix a crash when starting after closing with a window fullscreen
  • Windows: Fix issue with properly sizing maximized windows when using custom title bars
  • Windows: Added a workaround for Intel OpenGL graphics driver bug that caused black bars at the top of some windows
  • API: Added ListInputItem so that ListInputHandler objects can provide kind info, annotations and details
  • API: Added color-based kind IDs for ListInputItem and QuickPanelItem to allow plugins to provide semantic colors
  • API: Improved sys.stdout to extend io.TextIOBase
  • API: Fix a bug with popup being stuck open when a popup is shown in the hide event handler of another popup

Build 4094

30 November 2020

  • Added additional menu items to the command palette
  • Auto save is now asynchronous
  • Added themed_title_bar setting
  • Added control_character_style setting
  • Copy as HTML will now set the clipboard MIME type
  • Fixed block carets not aligning with pixel boundaries on screens with fractional DPI scales
  • Windows: Fixed regression that disabled sub-pixel anti-aliasing
  • Mac: Improved OpenGL performance on Intel GPUs
  • API: .sublime-commands files now support filtering commands via the "platform" key

Build 4093

18 November 2020

  • Windows: Various fixes for custom title bars
  • Printing: Added support for hashed color schemes
  • Printing: Fixed non-ascii characters rendering incorrectly on Mac
  • Fixed warning about incorrect menu mnemonic
  • Mac: Fix subl not bringing the running application to the foreground

Build 4092

16 November 2020

  • Various syntax highlighting improvements
  • Windows: Added support for custom title bars
  • Added File/Print, which prints via a browser
  • Added Edit/Copy as HTML
  • Added Project/Recent/Remove Deleted
  • Added wrap_width_style preference
  • Added close_find_after_find_all preference
  • Added close_find_after_replace_all preference
  • Improved performance with large session files
  • Fixed an issue with undo stack serialization in the session
  • Fixed dragging tabs to non-visible windows
  • Build Systems: Any currently running process will be killed immediately when a new build is started
  • Mac: Added workaround for the command line helper when app translocation is in effect
  • Mac: Added workaround for macOS file dialogs not supporting file extensions containing periods
  • API: Added View.export_to_html()
  • API: sublime.select_folder_dialog() now supports multiselect on Windows

Build 4090

21 October 2020

  • Fixed a selection rendering regression

Build 4089

20 October 2020

  • Fixed a selection rendering regression in 4088
  • Fixed a Goto Anything regression in 4088
  • Indexing: index_workers is now applied exactly, rather than approximately, which improves behavior when re-indexing a large number of windows
  • Mac: Quick Switch Project now works without any windows open
  • Linux: Fixed a compatibility regression in 4088 when GTK is built without Wayland support
  • Windows: Fixed a case where the mouse cursor could remain unexpectedly hidden
  • Windows: Fixed a compatibility issue with non-ascii user names

Build 4088

12 October 2020

  • Fixed a syntax highlighting backtracking crash
  • Fixed incorrect popup window sizes in some circumstances
  • Improved performance with a large number of selections
  • Added console_max_history_lines
  • Tweaked jump history behavior
  • Tweaked block caret size
  • Quick Switch Project will open the selected project in a new window if Ctrl (Cmd on Mac) is held down
  • Fixed regression where all but the first open file was being skipped in find in files
  • Mac: Added a workaround for an Nvidia OpenGL driver issue
  • API: Added Sheet.close()

Build 4087

25 September 2020

  • Various syntax highlighting improvements
  • OpenGL rendering performance improvements
  • Syntax Definitions: Added symbol indexing tests
  • Syntax Definitions: Added more information to the Show Scope Name popup
  • Syntax Definitions: Renamed TypeScript to TSX, and added a new vanilla TypeScript syntax
  • Syntax Definitions: Fixed an infinite loop that could occur with branch points
  • API: Fixed on_pre_close() being called after the view had been removed from the window
  • API: Updated Python to 3.8.6

Build 4086

14 September 2020

  • Tweaks to block caret rendering
  • Fixed glow font rendering regression in 4085
  • Fixed incorrect line highlight rendering
  • Fixed an issue restoring undo history
  • Syntax definitions can now use multiple inheritance, provided all parents have the same base syntax
  • Linux: Added support for extra keys on Sun Type 7 keyboards
  • Windows: Fixed a Korean IME compatibility issue
  • Mac: Fixed a rendering glitch when moving windows between low dpi and high dpi monitors
  • API: Fixed an issue when using sublime.COMPLETION_FLAG_KEEP_PREFIX in conjunction with sublime.DYNAMIC_COMPLETIONS

Build 4085

4 September 2020

  • Definitions hover popup shows more information about symbols
  • Goto Symbol shows more information about symbols
  • trim_trailing_white_space_on_save can now be set to "not_on_caret"
  • Improved behavior of scroll_context_lines in conjunction with mouse selection
  • Fixed rendering of large ligature symbols
  • minihtml: Added support for display: inline-block and text-align
  • minihtml: Added support for title attribute tool tips
  • API: Added sublime.SymbolRegion and sublime.SymbolLocation with corresponding methods on View and Window

Build 4084

21 August 2020

  • Fixed a crash regression in 4083
  • Fixed new windows not having input focus set correctly
  • API: Added on_associate_buffer() callback
  • API: Python 3.3 plugins trying to import Default/history_list.py will no longer fail, however these plugins must still be moved to 3.8 to work as expected

Build 4083

19 August 2020

  • Improved Jump Back and Jump Forward commands
  • Added advanced options to the draw_white_space setting
  • Auto Complete: no longer triggers at . or -> when there is an identifier to the right
  • Auto Complete: auto_complete_trailing_symbols is now disabled by default
  • Auto Complete: cancelCompletion will no longer prevent manual invocation
  • Files with the same filename, but in different groups, will now show path info in tab to disambiguate
  • Resolved bugs when two views of the same buffer had different color schemes
  • Relative line numbers are now correct when using a block caret
  • Fix closing read-only files when save_on_focus_lost is true
  • Popups now better constrain themselves to the available window space
  • Corrected OpenGL rendering to not accidentally reuse textures in certain circumstances
  • Various crash fixes
  • Various syntax highlighting improvements
  • Syntax Definitions: prevent a crash when "extends" was combined with a context containing no patterns
  • API: added sublime.QuickPanelItem() with support for kind info, annotations and basic minihtml
  • API: plugins may now add selections to the Jump Back history list via the add_jump_record command
  • API: plugins may suppress selections from the Jump Back history list via the jump_ignore_selection region
  • API: plugins may now disable the default HTML and CSS completions
  • API: Renamed TextChangeListener.remove() to TextChangeListener.detach()
  • API: Fixed a crash with TextChangeListener
  • API: Added Buffer.id() and Buffer.file_name()
  • API: Added View.sheet() and View.sheet_id()
  • API: Added Window.selected_sheets(), Window.selected_sheets_in_group() and Window.select_sheets()
  • API: EventListener.on_selection_modified() is no longer fired on non-selection state changes
  • Linux: added handling for GTK touch events
  • Mac: editor context menu now shows the correct cursor
  • Mac: cursor is no longer set when Sublime Text is not the foreground window
  • Mac: macOS 10.14+ no longer uses custom IBeam cursor for dark editor panes
  • Windows: corrected display of new windows to prevent flashes
  • Windows: fixed hang when the compositor is disabled, removed setting to disable vsync

Build 4081

7 August 2020

  • Changed default color scheme to Mariana
  • Various syntax highlighting improvements
  • Improved popup window behavior
  • Improved performance when loading files with very long lines
  • Improved quick panel sizing logic
  • Improved behavior of find_under_expand
  • Improved snippet behavior
  • Improved subl behavior when choosing which window to open a file in
  • Improved undo history serialization performance
  • Added highlight_find_results_in_scrollbar setting
  • set_file_type command now accepts "scope:" prefixed syntax names
  • Fixed white flashes that could occur in some circumstances
  • API: Added sublime.TextChangeListener, replacing the now removed on_text_changed()
  • API: show_quick_panel now accepts placeholder text, via the placeholder argument
  • API: Added sublime.syntax_from_path(), sublime.find_syntax_by_name(), sublime.find_syntax_by_scope(), and sublime.find_syntax_for_file()
  • API: Removed sublime.find_syntax()
  • API: Added View.clones()
  • API: Added Sheet.is_semi_transient() and Sheet.is_transient
  • API: CommandInputHandler now has an initial_selection() method
  • API: sublime.executable_path(), sublime.packages_path(), sublime.installed_packages_path() and sublime.cache_path() may now be called at import time
  • Windows: added setting to disable vsync

Build 4079

17 July 2020

  • Fixed a crash regression in 4078
  • Mac: Fix Adaptive theme title bar color regression in 4078

Build 4078

17 July 2020

  • Improved find history behavior
  • Linux and Mac: Adaptive theme will set the menu color to follow the color scheme
  • Fixed scrolling in popup windows when using fractional scaling
  • Fixed links in annotations not working
  • Fixed close button position when show_tab_close_buttons_on_left is used
  • Fix keypad enter not working in find panel
  • Windows: Improved menu toggling behavior
  • Windows: Fixed IME caret position when inserting code points outside of the BMP
  • API: Replaced Settings iteration with Settings.to_dict() (3.8 only)

Build 4077

11 July 2020

  • Fixed a crash in 4075 that could occur when closing the preferences window

Build 4076

10 July 2020

  • Fixed a crash regression in 4075 with missing embeds

Build 4075

10 July 2020

  • Added out of the box support for TypeScript and JSX
  • Undo information is preserved in the session
  • Renamed File/New View into File into File/Split View
  • Goto Anything can multi-select files by selecting a file while holding down Ctrl (Command on Mac)
  • Find in Files: Added Find/Cancel Find in Files menu item
  • Find in Files: Improved performance with large numbers of matches
  • Added various performance improvements with large files and graceful find degradation
  • Popup windows now use virtual windows for improved performance
  • Added setting scroll_context_lines
  • Added preview_on_click setting to support only previewing files on left click
  • Added selection_description_column_type setting to control how the column in the status bar is calculated
  • Added close_deleted_files setting to control behavior of session restoration when files have been deleted on disk
  • Added show_tab_close_buttons_on_left setting
  • Added Central European (Mac) encoding support
  • Macros now record Find commands
  • Added support for stippled_underline and squiggly_underline in color schemes
  • Fixed several OpenGL related rendering issues
  • Fixed white flashes in text views
  • Fixed over/underscroll not providing any context
  • Fixed annotations being oversized without overlay scrollbars
  • Fixed phantoms sometimes leaking
  • A cold exit will now update the recently opened files list
  • Improve file deletion when there is no trash folder
  • Session is now saved when application is notified of system shutdown
  • Syntax Definitions: "extends" keyword in .sublime-syntax
  • Syntax Definitions: "version: 2" in .sublime-syntax to fix edge cases while retaining backwards compatibility
  • Syntax Definitions: lazy loading of external "embed" actions
  • Syntax Definitions: reduced cache size on disk
  • Syntax Definitions: prevent infinite include loops via with_prototype
  • Syntax Definitions: improved matching performance and memory usage
  • Syntax Definitions: "hidden_extensions" in .sublime-syntax
  • Syntax Definitions: allow combining "pop" with "push"/"set"/"embed"/"branch"
  • Syntax Definitions: fixed a number of scope related bugs
  • Syntax Definitions: fixed some regex capture related bugs
  • Windows: Added drop shadows to popup windows. These can be disabled via the popup_shadows setting
  • Windows: Added support for color emoji
  • Windows: Various IME improvements
  • Windows: Safe Mode is now activated via shift+alt
  • Mac: Improved key translation fallback for non-pure-ascii keyboards
  • Mac: Fix single instance id not taking into account the current user
  • minihtml: Improved support for HTML entities
  • minihtml: Added support for self-closed tags
  • API: Updated Python to 3.8.3, and OpenSSL to 1.1.1g
  • API: TextChange objects now include the number of UTF16 and UTF8 code units
  • API: Window.open_file now accepts sublime.ADD_TO_SELECTION_SEMI_TRANSIENT in addition to sublime.ADD_TO_SELECTION as flags
  • API: View.show() now takes keep_to_left and animate parameters
  • API: Added sublime.open_dialog, sublime.save_dialog and sublime.select_folder_dialog
  • API: Settings objects can now be iterated over (3.8 only)
  • API: View.text_point() and related functions now accept a clamp_column parameter
  • API: Ensure on_text_changed() is called before on_query_completions() when sublime.DYNAMIC_COMPLETIONS has been specified
  • API: Region.__hash__ and Phantom.__hash__ have been replaced with to_tuple
  • API: repr now works as expected

Build 4074

28 April 2020

  • Auto Complete: Ranking quality improvements
  • Auto Complete: Added auto_complete_use_history setting to control if previous choices are automatically selected
  • Added additional settings to control the status bar: show_sidebar_button, show_indentation and show_syntax
  • Added relative line numbers, controlled by the relative_line_numbers setting
  • Color Schemes: Added support for the underline font style
  • Color Schemes: Added new property, inactive_selection_border
  • Added setting hide_pointer_while_typing
  • Console now uses Python syntax highlighting by default
  • Windows, Linux: Added Shift+F10 key binding to open the context menu
  • Fixed folder dragging in the sidebar
  • Further improvements in layout preservation when programmatically editing preferences
  • API: View.add_regions() calls that add an underline now have that underline applied to whitespace characters
  • API: Added sublime.INHIBIT_REORDER
  • API: Window.new_html_sheet() now accepts the sublime.ADD_TO_SELECTION flag
  • API: Window.new_html_sheet() no longer accepts cmd and args parameters
  • API: Fixed a regression in View.split_by_newlines()

Build 4073

8 April 2020

  • Reworked Auto Complete UI
  • Fixed a Find in Files crash regression in 4072
  • Improved layout preservation when programmatically editing preferences
  • .sublime-completion files can now specify annotation, kind and details
  • API: CompletionItem now accepts a details parameter, which can include basic HTML
  • API: minihtml now processes subl: links, running them as commands

Build 4072

8 April 2020

  • Find in Files can now filter by .gitignore
  • Fixed a path wildcard matching regression in 4070
  • Auto Complete: auto_complete_selector now applies to the position before the just-typed in character, matching auto_complete_triggers
  • Linux: Added Ctrl+Space to trigger Auto Complete
  • Linux, Windows: Added Alt+Shift+Left Mouse Button as an alternative column selection binding
  • Fixed a file encoding regression
  • Fixed a syntax highlighting backtracking edge case
  • API: Fixed on_selection_modified() being called with the wrong view when using cloned views

Build 4070

1 April 2020

  • Spell Checking: Updated dictionaries
  • Spell Checking: Added support for non-utf8 dictionaries
  • Spell Checking: System dictionaries are now available on Linux
  • Spell Checking: Dictionaries in ~/Library/Spelling are now available on Mac
  • Fixed ignored_packages setting causing sub-directories to be ignored
  • Fixed inline diffs not rendering an expected when draw centered is enabled
  • Linux: Fixed a regression in key bindings for the space bar
  • Windows: Fixed IME crash
  • API: Fixed View.text_point_utf8() and View.text_point_utf16() not working as expected

Build 4069

27 March 2020

  • Comments and layout are preserved when programmatically editing preferences
  • Holding down Shift on Windows, or Option on macOS, will start Sublime Text in Safe Mode
  • Auto Complete: Typing the full tab trigger of a snippet will move it to the top of the results
  • Auto Complete: Fixed some scenarios when auto complete would incorrectly trigger
  • Linux: Improved compatibility with some keyboard layouts
  • Mac: Improved compatibility with some keyboard layouts
  • Windows: Improved IME support
  • Syntax tests can now assert that reindent is working as expected
  • Fixed popups not scrolling
  • Fixed incorrect scrolling in Find Results after startup
  • Windows: Fixed some Safe Mode inconsistencies
  • minihtml: Fix HSL color blending
  • minihtml: Fix handling of CSS comments
  • API: Updated Python to 3.8.2
  • API: Added View.rowcol_utf8(), View.rowcol_utf16(), View.text_point_utf8() and View.text_point_utf16()
  • API: sublime.HistoricPosition now supplies utf8 and utf16 offsets
  • API: More detailed output when using sublime.log_control_tree()

Build 4068

28 February 2020

  • Fixed Auto Complete unexpectedly showing after the first edit on a newly opened file
  • Fixed a crash that could occur with syntax definition branch points
  • Fixed the Console not scrolling to the end at startup
  • Fixed syntax definitions not reloading
  • Windows: Fixed subl not making Sublime Text the foreground window
  • Windows: Fixed a crash that could occur on startup

Build 4067

14 February 2020

  • Auto Hide: Text now never jumps around when hiding tabs, even for short files
  • Find in Files: Binary file patterns are applied when an explicit folder is given
  • Find in Files: Using "Find in Folder…" from the sidebar context menu will apply project file filters
  • folder_exclude_patterns and folder_include_patterns now support project-relative paths, by starting the path with //
  • Improved performance when adding directories with extreme amounts of files to the side bar
  • Fixed a race condition when using Build, with Save All on Build enabled and async file saving
  • Improved menu auto hide behavior on Linux and Windows
  • Fixed a case where Jump Back didn't behave as expected
  • Linux: Removed dependency on glibc 2.18
  • Linux: Better support for copy+paste with other applications that don't support utf8 text
  • API: Added Window.bring_to_front()

Build 4065

29 January 2020

  • API: Added HTML sheets, which can be created via window.new_html_sheet()
  • Command Line: Fixed subl only working intermittently on Windows
  • Scrolling: Actually fixed newly opened files on Mac not scrolling to the expected position

Build 4064

28 January 2020

  • Command Line: Fixed regressions in 4063
  • API: Added sublime.log_control_tree(bool). When enabled, clicking with ctrl+alt will log the control tree under the mouse to the console

Build 4063

27 January 2020

  • Command Line: subl - can now be used to read from stdin on all platforms
  • Fixed a regression in 4062 that could cause syntax definitions to not load correctly
  • Fixed Wrap Selection With Tag not working
  • Scrolling: Fixed newly opened files on Mac not scrolling to the expected position
  • Scrolling: Fixed scroll position not being restored at start for non-selected tabs
  • Scrolling: Fixed revert on non-selected tabs not keeping the scroll position
  • Auto Complete: AC won't be triggered when replacing selected text
  • Fixed revert_hunk not showing in the context menu within inline diffs
  • Linux: Fixed text drag and drop not working correctly with unicode text
  • Mac: Fixed tooltip rendering issue on external low DPI monitors
  • Mac: Fixed Undo always being enabled, even if there's nothing to undo
  • API: Added "glow" to view.style_for_scope()
  • API: Fixed newly created views not having a valid viewport before being returned to the API

Build 4062

14 January 2020

  • Improved syntax definition load time
  • Fixed a crash that could occur with syntax definition branch points
  • Auto Complete: Several small fixes
  • minihtml: Fixed incorrect layout when using a non-default ui_scale

Build 4061

11 December 2019

  • Auto Complete: Fixed cancelCompletions being ignored
  • Auto Complete: Fixed inserting a newline character not hiding the AC dialog

Build 4060

6 December 2019

  • Mac: Fixed New Window not working
  • Auto Complete: Fixed a regression causing auto complete to be case sensitive
  • OpenGL: Added support for repeated textures
  • Fixed a 4059 regression in Jump Back

Build 4059

5 December 2019

  • Reworked Jump Back and Jump Forward commands
  • Auto Complete: Added Sublime Text 3 style selection history
  • Auto Complete: Fixed a scenario where auto complete could insert nothing after selecting a completion already present at the insert location
  • Fixed Join Lines not working as expected with multiple selections
  • Fixed transient files not being created at startup when Hot Exit is disabled
  • OpenGL: Fixed a rendering regression in 4058

Build 4058

4 December 2019

  • Auto Complete: Rework how punctuation triggers are handled
  • Auto Complete: Pressing tab when there are no available completions will insert a tab
  • OpenGL: Improve minimap rendering quality
  • OpenGL: Improve performance with many spelling errors

Build 4057

1 December 2019

  • Fixed incorrect minimap rendering when using OpenGL
  • Auto Complete: Completions are not as dependent on the syntax tokenisation rules
  • Auto Complete: Various changes to how completions with punctuation are handled
  • API: Added sublime.DYNAMIC_COMPLETIONS. on_query_completions() can return this flag to indicate that completion results should be re-queried as the user types
  • API: Added sublime.KEEP_ON_SELECTION_MODIFIED, which can be passed to View.show_popup()

Build 4056

26 November 2019

  • Fixed a crash in 4055

Build 4055

25 November 2019

  • Fixed a rendering regression in 4053
  • Fixed saving files with hexadecimal encoding not working correctly when using non-canonical formatting
  • Auto Complete: Improved behavior of completions starting with non-word characters
  • Auto Complete: Running the auto_complete command when auto complete is already showing will re-query plugins for results
  • Auto Complete: Manually typing in the only available completion will hide the auto complete popup
  • Improved minihtml rendering performance
  • Linux: Fixed a wayland compatibility regression in 4054
  • Windows: Fixed file deletion
  • API: Fixed plugin profiling
  • API: Fixed several edge cases related to plugin loading and reloading
  • API: Auto Complete can be used in input panels again

Build 4054

20 November 2019

  • Improved Switch File behavior in conjunction with multiple tabs selected
  • Fixed a 4053 regression where draw_centered wasn't rendering correctly
  • Fixed a 4053 regression where up and down arrows weren't working as expected in Goto Anything
  • Fixed empty buffers not displaying Phantoms
  • Fixed using the Command Palette to automatically prompt for missing command arguments not working correctly
  • Linux: Fixed tearing in full screen when using OpenGL

Build 4053

19 November 2019

  • Added Revert Diff Hunk
  • Improved rendering performance on very long lines
  • Expanded draw_unicode_white_space setting
  • Fixed selection matching sometimes acting as if the find panel was open when it wasn't
  • Fixed open_project_or_workspace opening blank windows when the workspace is already open
  • Auto Complete: Fixed Auto Complete incorrectly showing in widget controls
  • Auto Complete: Re-added support for t characters in .sublime-completion triggers
  • Auto Complete: Added fallback theme rules for older themes
  • Auto Complete: Several minor behavior enhancements
  • Windows: Fixed subl --safe-mode not working as expected
  • Mac: Fixed an issue creating new windows when using the Adaptive theme in full screen mode
  • Mac: Fixed two cases where ctrl+click wasn't showing the context menu on MacOS
  • API: Added error reporting for invalid .python-version files
  • API: Fixed a backwards compatibility issue with window.get_view_index()
  • API: Packages shipped with Sublime Text, such as HTML, can now be imported by both 3.3 and 3.8 plugins

Build 4052

15 November 2019

  • Auto Complete: Added auto_complete_preserve_order setting
  • Auto Complete: Added auto_complete_include_snippets_when_typing setting
  • Auto Complete: Added auto_complete_use_index setting
  • Auto Complete: Fixed trailing punctuation being incorrectly added to API suggestions
  • Added back Expand Selection to Scope
  • OpenGL: Added support for selection_corner_style
  • OpenGL: Performance improvements
  • OpenGL: Fixed a crash related to missing textures
  • Fixed trim_only_modified_white_space not working as expected when using Save As
  • Fixed a crash with syntax highlighting back tracking
  • Fixed selecting past the last line in the Command Palette
  • API: Fixed compatibility with decorated EventListener methods
  • API: Simplified CompletionItem interface

Build 4051

14 November 2019

  • Fixed annotation close buttons not showing on custom themes
  • Fixed navigation to unsaved files via Find in Files not working correctly
  • Mac: Fixed slow Goto Anything in conjunction with OpenGL rendering in some circumstances
  • Mac: Fixed a touch bar related memory leak
  • Linux: Fixed menu drawing on old versions of GTK3
  • Various minor crash fixes

Build 4050

13 November 2019

GPU Rendering

  • New hardware_acceleration setting will composite the UI on the GPU
  • By default, GPU rendering is enabled on Mac, and disabled on Windows and Linux
  • Details about the active GPU will be displayed in the Console

Context-aware Auto Complete

  • The auto complete engine now suggests completions based on patterns in existing code
  • Uses the entire project as a source, instead of just the current view
  • Plugins may specify symbol kind info to be displayed in suggestions list

Tab Multi Select

  • When multiple tabs are selected, their contents will be shown side-by-side
  • Side-by-side view is also used when selecting multiple files in sidebar
  • Goto Definition popup allows opening the definition using side-by-side view

Python 3.8 API

  • Added a Python 3.8 API environment for plugins
  • Plugins can choose Python version via .python-version file in plugin folder
  • Existing plugins are fully supported via legacy Python 3.3 API
  • Many API improvements and additions - see API section for more details

Editor Control

  • Build systems now use new annotations functionality instead of phantoms, reducing re-flow
  • Caret blinking is disabled by default. Set caret_style setting to smooth for previous behavior.
  • Find results are highlighted on the scroll bar
  • Improved automatic indentation detection
  • trim_trailing_white_space_on_save now trims only newly inserted trailing whitespace by default. Controlled via trim_only_modified_white_space setting.
  • Expanded draw_white_space setting, supporting leading and trailing white space
  • Unicode white space characters, such as the zero width no-break space, are now drawn as hex values. Controlled via draw_unicode_white_space setting.
  • Fixed spelling correction to support languages with upper case characters after start of word
  • Linux: Text drag and drop is now supported
  • Linux: Added support for alternate font weight names
  • Linux: Selection is no longer cleared when another application makes a selection

Text Commands

  • Improved behavior of Wrap Paragraph
  • Improved behavior of Swap Lines
  • Added Selection/Expand Selection as a general mechanism to expand the selection
  • Selection/Split into Lines will now split a selection into words if the selection doesn't contain any newlines
  • Show a sum in the status bar when there are multiple selections and all of them are numbers
  • Fixed swap_line_down not being able to swap an empty line onto the last line of a file
  • Fixed sort_lines replacing unicode newlines with regular ones

Snippets

  • Added auto_complete_include_snippets setting, for disabling auto complete integration
  • Added ignored_snippets setting, for disabling default snippets

Goto Symbol

  • Goto Symbol in Project is now significantly faster on huge projects
  • Icons are now shown next to symbols, indicating the symbol kind
  • Symbols with 3 characters or less are now indexed

Indexing (Goto Definition)

  • Files ignored by .gitignore are not indexed by default. Controlled via index_exclude_gitignore setting.
  • Files without known extensions are no longer indexed by default. Controlled via index_skip_unknown_extensions setting.
  • Improved behavior with constantly changing files

Input Handling

  • Modifier key taps can now be used as part of a key binding. For example, ["ctrl", "ctrl"] will trigger when Ctrl is pressed twice without pressing any other keys in between.
  • Linux: AltGr can now be used in key bindings via altgr
  • Linux: Added a workaround for a touchscreen driver bug, which would cause right click and mouse scrolling to stop working
  • Linux: When the menu is hidden, pressing alt will show it
  • Mac: Fix Pinyin input
  • Mac: Keypad keys can now be bound to as expected
  • Mac: Added key bindings for macOS application tabs
  • Windows, Linux: Hide mouse cursor when typing. Controlled via hide_pointer_while_typing setting.
  • Windows, Linux: Fixed being unable to bind Ctrl+Break

Files and Folders

  • Saving files is now asynchronous
  • When save_on_focus_lost is enabled, closing an unsaved file will save and close it, instead of prompting to save
  • Improved behavior of save_on_focus_lost in conjunction with administrator owned files
  • Added reload_file_on_change setting to control if files are automatically reloaded or not
  • Windows: Fixed Open Containing Folder for UNC paths
  • Windows: Fixed Save dialog not showing for new files with control characters on the first line
  • Windows: Fixed Ctrl+Backspace inserting a DEL character when a dialog is open in the background
  • Linux: Fix recreated directories not working correctly with file change monitoring

UI

  • Added highlight_gutter and highlight_line_number settings
  • Added the ability to auto hide the menu, tabs, and status bar when typing. See auto_hide_menu and related settings.
  • Window title bar can be controlled by show_rel_path and show_project_first settings
  • Tab context menu now includes Close Unmodified Files and Close Deleted Files entries
  • Themes now have a style property for title_bar element, for better integration with OS "dark modes"
  • Added glow font option to color schemes
  • Linux: Show sequential key bindings in the menu
  • Linux: Fixed context menu position being slightly offset

Rendering

  • Windows, Linux: Added support for per-display subpixel ordering
  • Mac: Improved window resize performance
  • Windows: Fixed rendering bug where other applications could cause persistent artifacts via window animations

Application Behavior

  • Added Safe Mode, to simulate a clean install. Enabled by passing --safe-mode on the command line.
  • Added options to hot_exit setting to control behavior when the last window is closed
  • Fixed a possible case where an update loses the current session
  • Settings containing a UTF-8 BOM will no longer fail to load

Syntax Definitions

  • Added ability to "branch" within syntax definitions, for non-deterministic or multi-line constructs
  • Many syntax highlighting improvements, including significant improvements to:
  • Fixed a performance issue with bounded repeats in regular expressions

API

  • minihtml now handles list-style-type CSS property - circle, square and disc
  • Improved coverage of plugin profiling
  • The cProfile module is now included on Linux
  • EventListener has many new features and bug fixes
    • on_query_completions() can now
      • return suggestions asynchronously
      • return command completions
      • include symbol kind information
    • New: on_init() is called once with list of views opened before plugin was loaded
    • New: on_exit() is called immediately before plugin_host exits, after API is shut down
    • New: on_text_changed() and on_text_changed_async() provide detailed modification info
    • New methods:
      • on_reload()
      • on_revert()
      • on_new_window()
      • on_new_window_async()
      • on_pre_close_window()
      • on_pre_move()
      • on_post_move()
      • on_post_move_async()
      • on_new_project()
      • on_new_project_async()
      • on_load_project()
      • on_load_project_async()
      • on_pre_save_project()
      • on_post_save_project()
      • on_post_save_project_async()
      • on_pre_close_project()
    • Fixed on_selection_modified() to not be called twice when left clicking
  • View.add_regions() now has an annotations parameter, to allow adding a per-region annotation to the buffer. The exec command now uses this API for build errors.
  • View.element() returns a string describing widget views (find input, quick panel input, etc)
  • Image filenames can be retrieved via Sheet.file_name()
  • Syntax definitions can be queried via sublime.list_syntaxes() and sublime.find_syntax()
  • View.assign_syntax() now fully supports scope names, e.g. "scope:source.c++"
  • Assigning a syntax no longer removes widget settings files from a widget view
  • Added Window.workspace_file_name()
  • Added open_project_or_workspace command
  • append command has new, optional disable_tab_translation argument
  • Improvements to the API, applied to the new Python 3.8 environment only:
    • bool(sublime.Selection()) will return False when len() == 0
    • sublime.load_binary_resource() now returns bytes instead of bytearray
    • Added Selection.__iter__()
    • Added Region.__iter__()
    • Added Region.__contains__()
    • Settings can now be treated like a dict
    • Plugins starting with _ will be ignored, __all__ global will be respected
    • Events won't be reported until plugin_loaded() has been called
    • .pyc files can now be imported when contained within .sublime-package files, although they will not be scanned for plugins
  • The certifi Python package is preinstalled
  • Significant performance improvements when rapidly printing to the Console

OS Compatibility

  • The following operating systems are no longer supported as a result of adding Python 3.8:
    • OS X 10.7
    • OS X 10.8
    • Windows XP
    • Windows Vista
@jfcherng
Copy link
Author

jfcherng commented May 27, 2021

that's nice to know. Then what is the purpose of this GIST?

You come here too late :)

image
Back to the time when this GIST was created, there were not many people even know there was ST 4. And the changelog of ST 4 was not published on the official website since it was a private beta at that time. I uploaded changelog to this GIST personally and direct people who ere interested in testing ST 4 in its early stage to the official Discord.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment