Skip to content

Instantly share code, notes, and snippets.

@jfcherng
Last active August 18, 2024 07: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
@michaelblyons
Copy link

could you consider using HTML details tag to reduce the size of the page?

What is your objective? The page would be shorter, but at the expense of hiding the information. No more Ctrl+F. I'd counterpoint with a TOC of <a href="#build-4xxx"> links, but I don't think anyone would use them.

Copy link

ghost commented Feb 14, 2021

that's fair enough, and sorry, I've just realized that download links are not the part of original document

@DirtyHerby
Copy link

Will there be an open test phase?

@michaelblyons
Copy link

@DirtyHerby
Copy link

Will there be an open test phase?

https://gist.github.com/jfcherng/7bf4103ea486d1f67b7970e846b3a619#gistcomment-3270270

Does that mean no? I don't currently have a license for version 3, but I'm very interested in version 4. If I buy a license, it doesn't automatically apply to version 4, right?

@michaelblyons
Copy link

michaelblyons commented Feb 15, 2021

If you buy a license, it will immediately work for new versions (including the v4 alphas) that are created within the next 3 years. JF Cherng is saying the same thing. Hit up the Discord for questions.

My ST3 license (purchased >3 years ago) also works for the v4 alphas. I've been daily driving ST4xxx for almost a year. My license is too old to work when a 4xxx release version comes out; I'll have to re-up. But if you're buying now, you'll be fine.

Edit: If "open test phase" to you means "free to try," then you'll have to wait until release. At release, I presume (though I do not have personal knowledge) that 4xxx will be "free to try, pay for continued use" just like ≤3xxx have been.

@gooker
Copy link

gooker commented Feb 19, 2021

Autocomplete miss with Chinese Input ,test 4093->4098

@sgtcoder
Copy link

Can we get the Menu back in Sublime 4? I just paid for the upgrade and you removed a critical feature.

@2af
Copy link

2af commented May 27, 2021

The pointer/cursor isn't blinking after updating to 4107.

MBP 13'' 2020 macOS BS 11.4

Edit: TYVM ratijas and BenStigsen! Powersaving perfomante it is. Missed that in change notes.

@ratijas
Copy link

ratijas commented May 27, 2021

@sgtcoder If you are trying to report a bug or request a feature, then you came to the wrong place. This is not an issue tracker of ST, nor is it provided or monitored by official devs.

@2af From what I heard, it's just a new "power-saving" default. There is a setting for it, and it has been there since the dawn of ages.

@benstigsen
Copy link

@2af

The pointer/cursor isn't blinking after updating to 4107.

MBP 13'' 2020 macOS BS 11.4

This was done for performance reasons and it can be enabled again.
https://twitter.com/sublimehq/status/1397799139786706945

@sgtcoder
Copy link

@ratijas that's nice to know. Then what is the purpose of this GIST? And why are other people coming to the "wrong place". This is not an issue tracker of ST, nor is it provided or monitored by official devs.

@ratijas
Copy link

ratijas commented May 27, 2021

@sgtcoder Because ST4 is closed source, and for a long time was available only to paid license users who are willing to test "beta releases" or something like that. ST4 has only become publicly available about a week ago, and that's why the top line states "This gist will no longer be updated [...]"

For official support you wanna check out their GitHub issues repository, their official Discourse forum, or their official Discord server where you may directly chat with core team members.

@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