This gist will no longer be updated as the changelog will be on the official website.
- Sublime Text/Merge Official Discord chat server: https://discord.gg/D43Pecu
- Sublime Text/Merge 中文 Telegram 交流群組: https://t.me/sublime_tw
Converted via https://domchristie.github.io/turndown
Sublime Text 4 (Stable 4107) has been released. Check https://www.sublimetext.com/blog/articles/sublime-text-4
19 May 2021
- Preparation for public release
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
3 May 2021
- Fix crash with
chain
command - Fix regressions with
Goto Anything
in 4103 - Windows: Fixed an OpenGL regression in 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
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
6 April 2021
- Windows: Fixed missing manifest
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
orsuper
- Various syntax definition updates
- API: added
Sheet.group()
- API: added
sublime.CLEAR_TO_RIGHT
for use withWindow.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
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-selectiondelete_file
now properly closes associated tabsswap_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 tonot_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 attributehighlighted
- 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()
andyes_no_cancel_dialog
now accept an optionaltitle
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 ofli
tags - API: minihtml now supports
white-space: nowrap
- API: Updated Python to 3.8.8 and OpenSSL to 1.1.1j
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 consistentlyGoto 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
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 toCtrl+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
andreplace_only
options toauto_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
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
andtab_control
now get a tint of the sheet afterbackground_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 usesublime.ADD_TO_SELECTION
|sublime.SEMI_TRANSIENT
in place - API: Added the flag
sublime.SEMI_TRANSIENT
for use withwindow.open_file()
- API: Added the flag
sublime.REPLACE_MRU
for use withwindow.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 withwindow.show_quick_panel()
. This will pass an event dict to theon_select
callback. The dict will contain the keymodifier_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 keymodifier_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()
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 from0.0
to1.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 forsheet_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
andsheet_contents
classes now synchronize theirhighlighted
andhover
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 thatListInputHandler
objects can provide kind info, annotations and details - API: Added color-based kind IDs for
ListInputItem
andQuickPanelItem
to allow plugins to provide semantic colors - API: Improved
sys.stdout
to extendio.TextIOBase
- API: Fix a bug with popup being stuck open when a popup is shown in the hide event handler of another popup
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
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
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
21 October 2020
- Fixed a selection rendering regression
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
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()
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
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 withsublime.DYNAMIC_COMPLETIONS
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
andtext-align
- minihtml: Added support for
title
attribute tool tips - API: Added
sublime.SymbolRegion
andsublime.SymbolLocation
with corresponding methods onView
andWindow
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
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
istrue
- 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()
toTextChangeListener.detach()
- API: Fixed a crash with
TextChangeListener
- API: Added
Buffer.id()
andBuffer.file_name()
- API: Added
View.sheet()
andView.sheet_id()
- API: Added
Window.selected_sheets()
,Window.selected_sheets_in_group()
andWindow.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
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 removedon_text_changed()
- API:
show_quick_panel
now accepts placeholder text, via theplaceholder
argument - API: Added
sublime.syntax_from_path()
,sublime.find_syntax_by_name()
,sublime.find_syntax_by_scope()
, andsublime.find_syntax_for_file()
- API: Removed
sublime.find_syntax()
- API: Added
View.clones()
- API: Added
Sheet.is_semi_transient()
andSheet.is_transient
- API:
CommandInputHandler
now has aninitial_selection()
method - API:
sublime.executable_path()
,sublime.packages_path()
,sublime.installed_packages_path()
andsublime.cache_path()
may now be called at import time - Windows: added setting to disable vsync
17 July 2020
- Fixed a crash regression in 4078
- Mac: Fix Adaptive theme title bar color regression in 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)
11 July 2020
- Fixed a crash in 4075 that could occur when closing the preferences window
10 July 2020
- Fixed a crash regression in 4075 with missing embeds
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 acceptssublime.ADD_TO_SELECTION_SEMI_TRANSIENT
in addition tosublime.ADD_TO_SELECTION
as flags - API:
View.show()
now takeskeep_to_left
andanimate
parameters - API: Added
sublime.open_dialog
,sublime.save_dialog
andsublime.select_folder_dialog
- API:
Settings
objects can now be iterated over (3.8 only) - API:
View.text_point()
and related functions now accept aclamp_column
parameter - API: Ensure on_text_changed() is called before on_query_completions() when sublime.DYNAMIC_COMPLETIONS has been specified
- API:
Region.__hash__
andPhantom.__hash__
have been replaced withto_tuple
- API:
repr
now works as expected
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
andshow_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 thesublime.ADD_TO_SELECTION
flag - API:
Window.new_html_sheet()
no longer acceptscmd
andargs
parameters - API: Fixed a regression in
View.split_by_newlines()
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 specifyannotation
,kind
anddetails
- API:
CompletionItem
now accepts adetails
parameter, which can include basic HTML - API: minihtml now processes
subl:
links, running them as commands
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, matchingauto_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
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()
andView.text_point_utf16()
not working as expected
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()
andView.text_point_utf16()
- API: sublime.HistoricPosition now supplies utf8 and utf16 offsets
- API: More detailed output when using
sublime.log_control_tree()
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
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
andfolder_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()
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
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
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"
toview.style_for_scope()
- API: Fixed newly created views not having a valid viewport before being returned to the API
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
11 December 2019
- Auto Complete: Fixed
cancelCompletions
being ignored - Auto Complete: Fixed inserting a newline character not hiding the AC dialog
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
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
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
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 toView.show_popup()
26 November 2019
- Fixed a crash in 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
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
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
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
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
13 November 2019
- 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
- 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
- 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
- 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
- Build systems now use new annotations functionality instead of phantoms, reducing re-flow
- Caret blinking is disabled by default. Set
caret_style
setting tosmooth
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 viatrim_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
- 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
- Added
auto_complete_include_snippets
setting, for disabling auto complete integration - Added
ignored_snippets
setting, for disabling default snippets
- 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
- Files ignored by
.gitignore
are not indexed by default. Controlled viaindex_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
- 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
- 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
- Added
highlight_gutter
andhighlight_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
andshow_project_first
settings - Tab context menu now includes Close Unmodified Files and Close Deleted Files entries
- Themes now have a
style
property fortitle_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
- 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
- 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
- Added ability to "branch" within syntax definitions, for non-deterministic or multi-line constructs
- Many syntax highlighting improvements, including significant improvements to:
- Erlang, with thanks to deathaxe
- Fixed a performance issue with bounded repeats in regular expressions
- minihtml now handles
list-style-type
CSS property -circle
,square
anddisc
- Improved coverage of plugin profiling
- The cProfile module is now included on Linux
EventListener
has many new features and bug fixeson_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 beforeplugin_host
exits, after API is shut down - New:
on_text_changed()
andon_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 anannotations
parameter, to allow adding a per-region annotation to the buffer. Theexec
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()
andsublime.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, optionaldisable_tab_translation
argument- Improvements to the API, applied to the new Python 3.8 environment only:
bool(sublime.Selection())
will returnFalse
whenlen() == 0
sublime.load_binary_resource()
now returnsbytes
instead ofbytearray
- Added
Selection.__iter__()
- Added
Region.__iter__()
- Added
Region.__contains__()
Settings
can now be treated like adict
- 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
- 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
Thanks for maintaining this changelog, it's a nice service for the community. Would anyone happen to have a summary of the major user-facing changes between ST3 and ST4?