0% found this document useful (0 votes)
82 views17 pages

Changelog

This changelog summarizes updates in Sublime Text builds 4126 and 4121, including over 100 fixes and improvements. Some highlights include improved OpenGL performance, additional file encoding support, issues resolved with symlinks and session data, and fixes for various crashes and bugs across platforms. Syntax highlighting, find/replace, and API functionality also saw numerous enhancements and fixes.

Uploaded by

ggggggggsdfddff
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
82 views17 pages

Changelog

This changelog summarizes updates in Sublime Text builds 4126 and 4121, including over 100 fixes and improvements. Some highlights include improved OpenGL performance, additional file encoding support, issues resolved with symlinks and session data, and fixes for various crashes and bugs across platforms. Syntax highlighting, find/replace, and API functionality also saw numerous enhancements and fixes.

Uploaded by

ggggggggsdfddff
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 17

<style>

html {
background-color: var(--background);
margin: 16px;
}
body {
color: var(--foreground);
font-family: "Open Sans", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-
serif;
}

ul {
padding-left: 1.2rem;
}
li { margin: 2px; }
li ul {
margin: 2px 0 4px;
}
ul.topic {
margin-top: 0;
padding-left: 1.5rem;
}
ul.topic ul {
margin: 0.2em 0;
}

h1 {
color: color(var(--foreground) l(- 10%));
font-size: 2.0rem;
margin: 0;
}
html.dark h1 {
color: color(var(--foreground) l(+ 10%));
}
h2 {
color: color(var(--foreground) a(0.9));
font-size: 1.4rem;
margin: 1em 0 0.1em 0;
}
a {
color: var(--bluish);
}
article { display: block; }
.release-date, .forum-link {
font-size: 0.9rem;
font-style: italic;
color: color(var(--foreground) a(0.7));
}
tt {
font-size: 0.9em;
border-radius: 2px;
background-color: rgba(0, 0, 0, 0.08);
padding: 0 4px;
}
html.dark tt {
background-color: rgba(255, 255, 255, 0.1);
}
</style>
<h1>Stable Channel Changelog</h1>

<article class="current">
<h2>Build 4126</h2>
<div class="release-date">21 December 2021</div>
<ul>
<li>Improved OpenGL rendering performance by automatically batching together
controls</li>
<li>Added support for Chinese standard GB18030 file encoding</li>
<li>Added support for CP862 file encoding</li>
<li>Resolved various issues tracking symlinks in the side-bar</li>
<li>Avoid session data corruption if a crash happens while saving the
session</li>
<li><tt>subl -n</tt> will reuse an existing empty window if the application
isn't running</li>
<li>Binary files now show as "Binary" syntax instead of "Plain Text" in the
status bar</li>
<li>Fixed wildcards incorrectly matching subpaths (For settings like
<tt>"folder_exclude_patterns"</tt>)</li>
<li>Made <tt>"find_in_files_max_result_size"</tt> not apply when replacing</li>
<li>Fixed crash when loading invalid grid layout from session</li>
<li>Fixed spell checker incorrectly marking some words as correct if they can't
be encoded</li>
<li>Fixed rendering order of successive popups</li>
<li>Fixed package subfolders sometimes not being loaded when matching the
<tt>"ignored_packages"</tt> setting</li>
<li>Fixed layout instability in side bar causing things to occasionally be
rendered 1 pixel off</li>
<li>Added some missing glyphs to <tt>"draw_unicode_white_space":
"all"</tt></li>
<li>Added <tt>"draw_unicode_bidi"</tt> setting for drawing unicode bidi
characters</li>
<li>Added <tt>"select_across_groups"</tt> setting for opting into the old side
bar selection behavior when selecting a single file</li>
<li>Fixed <tt>"close_windows_when_empty"</tt> setting not working</li>
<li>Fixed goto-definition preview not closing on escape</li>
<li>Fixed quick panel closing on enter when there are no matching entries</li>
<li>Syntax Highlighting: Fixed backtracking breaking when creating phantoms or
doing a context backtrace</li>
<li>Syntax Highlighting: Fixed regression with some syntax definitions
introduced in 4115</li>
<li>Linux: Added missing <tt>libcurl</tt> dependency for package managers</li>
<li>Linux: Fixed GTK overriding <tt>LC_NUMERIC</tt> environment variable
breaking serialization</li>
<li>Windows: Fixed command line not taking focus after closing a waited on
file</li>
<li>Windows: Fixed crash when OpenGL initialization fails</li>
<li>Mac: Aliases are now resolved when using drag and drop</li>
<li>Mac: Fixed window sometimes being restored on startup when
<tt>"create_window_at_startup"</tt> is disabled</li>
<li>Mac: Fixed native tabs restoration resulting in odd behavior</li>
<li>Mac: Fixed <tt>subl -b</tt> not working</li>
<li>Mac: Fixed terminal not being focused after waiting on file</li>
<li>Mac: Fixed <i>Window > Merge All Windows</i> merging minimized windows</li>
<li>Mac: Fixed various inconsistencies when opening files from finder</li>
<li>API: The <tt>show_panel</tt> command for the find and find in files panels
can now take <tt>"pattern"</tt> and <tt>"replace_pattern"</tt> arguments</li>
<li>API: <tt>ListInputHandler.preview</tt> is now called with <tt>None</tt>
when no items match the current filter</li>
<li>API: Fixed case where <tt>Window.project_data()</tt> could return an
invalid value</li>
<li>API: Opening a new pane moves currently selected sheets</li>
<li>API: Added <tt>Window.move_sheets_to_group</tt></li>
<li>API: The commands <tt>move_to</tt> and <tt>move_to_neighbouring</tt> now
move currently selected sheets</li>
</ul>
</article>

<article>
<h2>Build 4121</h2>
<div class="release-date">26 October 2021</div>
<ul>
<li>New update dialog that shows versions, license status and links to the
changelog</li>
<li>Various syntax highlighting improvements</li>
<li>Use goto-symbol to jump to specific files in find results</li>
<li>Improved color scheme/theme selection UI</li>
<li>Layout is no longer remembered when <tt>"hot_exit"</tt> is disabled. You
can change this using <tt>"remember_layout"</tt></li>
<li>Right-delete now respects <tt>"use_tab_stops"</tt> setting</li>
<li>Various improvements to behavior of moving sheets during window layout
changes</li>
<li>Improved mini-diff and white space rendering performance under OpenGL</li>
<li>Improved performance when reading large files from stdin</li>
<li>Fixed regex replace not working on last occurrence when using look-
behind</li>
<li>Fixed <tt>"save_on_focus_lost"</tt> not working as expected with the reload
dialog</li>
<li>Fixed open files not being added to recent file list when
<tt>"hot_exit"</tt> is disabled</li>
<li>Fixed snippet completions not respecting word boundaries</li>
<li>Fixed extra blank window being opened at startup in some cases</li>
<li>Fixed not properly exiting after a prompt when <tt>"hot_exit"</tt> is
disabled</li>
<li>Fixed window unexpectedly closing when project has no added folders and
<tt>"close_windows_when_empty"</tt> is enabled</li>
<li>Fixed tab selection stack not being updated as expected in some cases</li>
<li>Fixed transient sheets persisting when exiting goto-anything</li>
<li>Fixed squiggle underline width not scaling properly</li>
<li>Fixed line highlighting not working when gutter is disabled</li>
<li>Fixed case where folders were being added to existing windows instead of
opening in a new window</li>
<li>Fixed performance regression under Windows with non-integer DPI
scaling</li>
<li>Fixed syntax highlighting backtracking-related performance problem</li>
<li>Undo stack is now cleared when reading from stdin</li>
<li>Added <i>Selection > Expand Selection to Block</i> which has the same
behavior as <i>Expand Selection to Paragraph</i> had previously</li>
<li><tt>"open_files_in_new_window"</tt> is now respected when reading from
stdin</li>
<li>Added <tt>"find_scroll_highlights_limit"</tt>,
<tt>"find_highlight_matches_max_size"</tt> and
<tt>"find_regex_highlight_matches_max_size"</tt> settings to allow configuring find
limits</li>
<li>Added newline detection and normalization when changing settings
programmatically</li>
<li>Sublime Merge menu items are hidden when <tt>"sublime_merge_path"</tt> is
set to <tt>null</tt></li>
<li>Fixed wrong path sometimes being used when viewing file history in Sublime
Merge</li>
<li>Fixed focus lost when selected group is closed whilst reducing the number
of groups</li>
<li>File-specific indentation settings are now persisted across restarts</li>
<li>Fixed some edge cases related to
<tt>"find_in_files_max_result_size"</tt></li>
<li>Fixed completions in input panel not utilizing available window space</li>
<li>Fixed expand selection to tag not working in XML</li>
<li>Fixed current transient sheet unexpectedly closing when using goto-
anything</li>
<li>Fixed crash related to syntax backtracking and phantoms</li>
<li>Fixed being unable to open more than one new empty window</li>
<li>Linux: Make selection after middle-click paste consistent with other
applications</li>
<li>Linux: Fixed race condition with multiple simultaneous command line
invocations</li>
<li>Linux: Fixed custom title bar label color for some GTK themes</li>
<li>Windows: Fixed a case where session could be lost when upgrading</li>
<li>Windows: Fixed NTFS alternate data streams being deleted on save</li>
<li>Windows: Fixed slow window creation when using OpenGL</li>
<li>Windows: Fixed incorrect case being used when opening files from find-in-
files with gitignore enabled</li>
<li>Windows: Fixed stdout/stderr output data race when building</li>
<li>Windows: Fixed hang on modal dialogs when context menu is open</li>
<li>Mac: Tweaked text drag-drop behavior to respect NSDragAndDropTextDelay</li>
<li>Mac: The setting <tt>"use_find_clipboard"</tt> can be used to disable
global find clipboard integration</li>
<li>Mac: Fixed double click not working at the top of a window when in full
screen with a custom title bar</li>
<li>Mac: Fixed incorrectly reporting successful key event when no command was
found</li>
<li>Mac: Fixed windows not restoring properly with multi-monitor setups</li>
<li>Mac: Fixed window layout issue with native tabs when exiting full
screen</li>
<li>Mac: Fixed title bar text not fading when out of focus</li>
<li>Mac: Fixed reading stdin not working when no windows are open</li>
<li>API: Fixed plugin popups sometimes having the wrong placement</li>
<li>API: Fixed plugins not loading when a <tt>.python-version</tt> file is in
the User package</li>
<li>API: Added <tt>Buffer.clear_undo_stack()</tt></li>
<li>API: Fixed <tt>View.show</tt> and <tt>View.show_at_center</tt> not working
from <tt>on_load</tt> callback</li>
</ul>
</article>

<article>
<h2>Build 4113</h2>
<div class="release-date">14 July 2021</div>
<ul>
<li>Improved performance when editing large files</li>
<li>Improved OpenGL rendering performance</li>
<li>Improved handling of deleted files</li>
<li>Various syntax highlighting improvements</li>
<li><tt>subl</tt> can now be used to edit stdin, eg: <tt>echo test | subl |
cat</tt></li>
<li>Syntax and indentation detection is now done when editing stdin</li>
<li>Added <tt>syntax_detection_size_limit</tt> setting for controlling when
syntax detection is skipped</li>
<li>Theme: Improved scroll puck visibility</li>
<li>Theme: Fixed adaptive theme not respecting themed_title_bar setting with
light color schemes</li>
<li>Middle clicking in the Open Files section of then sidebar will close the
clicked on file</li>
<li>Preserve Case now works with unicode characters</li>
<li>Added <tt>reveal_menu</tt> setting for disabling revealing the menu when
alt is pressed on Linux and Windows</li>
<li>Safe Mode key binding can be disabled by creating a file named <tt>.Disable
Safe Mode Shortcut</tt> in the data directory</li>
<li>Fixed Ruby syntax highlighting in the Monokai color scheme</li>
<li>Fixed a scenario where folders weren't being watched for changes</li>
<li>Fixed underlines being drawn behind line highlight</li>
<li>Fixed an infinite loop that could occur during syntax highlighting</li>
<li>Fixed the append command's <tt>scroll_to_end</tt> parameter sometimes not
working</li>
<li>Fixed <i>Goto Symbol</i> sometimes being scrolled incorrectly</li>
<li>Fixed multi-select file limit applying to sidebar</li>
<li>Fixed auto-complete related hang in some large files</li>
<li>Linux: Fixed print sometimes not working</li>
<li>Linux: Fixed wrong order of yes/no buttons in GTK dialogs</li>
<li>Linux: Fixed letters sometimes being cut off</li>
<li>Windows: Always make a new window when launching main executable on
Windows</li>
<li>Windows: Fixed window icon not scaling properly on Windows</li>
<li>Windows: Fixed globs not being expanded in some cases on Windows</li>
<li>Mac: Fixed auto theme not changing with OS auto theme on macOS</li>
</ul>
</article>

<article>
<h2>4 (Build 4107)</h2>
<div class="release-date">20 May 2021</div>
<div class="forum-link">See also the <a
href="https://www.sublimetext.com/blog/articles/sublime-text-4">Announcement
Post</a></div>

<h3>Release Highlights</h3>
<ul class="topic">
<li>Multi-select tabs to view them side-by-side</li>
<li>Context-aware auto complete by finding similar code elsewhere in the
current project</li>
<li>Symbols have kind information that is shown for completions and
navigation</li>
<li>Theme can follow system dark mode preference and title bars can be themed
on all platforms</li>
<li>Syntax highlighting now supports back-tracking and inheritance</li>
<li>Many syntax highlighting improvements as well as builtin TypeScript, JSX
and TSX support</li>
<li>GPU rendering for improved performance. Enabled by default on macOS</li>
<li>ARM64 support for Linux and macOS (Apple Silicon)</li>
<li>Many plugin API additions particularly to better support plugins like
LSP</li>
<li>Python 3.8 support for plugins</li>
</ul>

<h3>GPU Rendering</h3>
<ul class="topic">
<li>New <tt>hardware_acceleration</tt> setting will composite the UI on the
GPU</li>
<li>By default, GPU rendering is enabled on Mac, and disabled on Windows and
Linux</li>
<li>Details about the active GPU will be displayed in the Console</li>
</ul>

<h3>Context-aware Auto Complete</h3>


<ul class="topic">
<li>The auto complete engine now suggests completions based on patterns in
existing code</li>
<li>Uses the entire project as a source, instead of just the current view</li>
<li>Plugins may specify symbol kind info to be displayed in suggestions
list</li>
</ul>

<h3>Tab Multi-Select</h3>
<ul class="topic">
<li>Multiple tabs can be selected using <tt>ctrl/cmd</tt>, their contents will
be shown side-by-side</li>
<li>Selecting multiple files from the sidebar will also preview them
simultaneously</li>
<li>Included themes have a tab connector joining the active sheet and tab when
using sheet multi-select</li>
<li>The sidebar can now select multiple files using <tt>alt</tt></li>
<li>Goto Anything allows opening tabs side-by-side using <tt>ctrl/cmd</tt></li>
<li>The Definition popup has a dedicated button for opening files side-by-
side</li>
<li>Multiple tabs can also be selected from the tab dropdown</li>
<li>The menu <i>Selection/Tab Selection</i> contains various options for
manipulating tab multi-select</li>
<li><i>File/New View into File</i> has been replaced by <i>File/Split View</i>
using multi-select</li>
</ul>

<h3>Python 3.8 API</h3>


<ul class="topic">
<li>Added a Python 3.8 API environment for plugins</li>
<li>Plugins can choose Python version via <tt>.python-version</tt> file in
plugin folder</li>
<li>Existing plugins are fully supported via legacy Python 3.3 API</li>
<li>Many API improvements and additions - see API section for more details</li>
</ul>

<h3>Goto Symbol</h3>
<ul class="topic">
<li>Goto Symbol in Project is now significantly faster on huge projects</li>
<li>Icons are now shown next to symbols, indicating the symbol kind</li>
<li>Symbols with 3 characters or less are now indexed</li>
</ul>

<h3>Syntax Definitions</h3>
<ul class="topic">
<li>Added out of the box support for TypeScript, JSX and TSX - thanks to <a
href="https://github.com/Thom1729">Thomas Smith</a></li>
<li>Added ability to "branch" within syntax definitions, for non-deterministic
or multi-line constructs</li>
<li>Many syntax highlighting improvements, including significant improvements
to:
<ul>
<li><i>Erlang</i>, with thanks to <a
href="https://github.com/deathaxe">deathaxe</a></li>
</ul>
</li>
<li>Significantly improved load times, match times and reduced cache size on
disk</li>
<li><tt>embed</tt> is now lazy loaded, resulting in much higher performance for
syntaxes like markdown</li>
<li>Added <tt>branch</tt> and <tt>fail</tt> for non-deterministic parsing</li>
<li>Added <tt>version: 2</tt> to fix edge cases while retaining backwards
compatibility</li>
<li>Added <tt>extends</tt> to inherit from another syntax definition. Multiple
inheritance is supported, provided all parents have the same base syntax</li>
<li>Added <tt>hidden_extensions</tt></li>
<li>Allow using <tt>pop</tt> alongside
<tt>push</tt>/<tt>set</tt>/<tt>embed</tt>/<tt>branch</tt></li>
<li>Fixed a performance issue with bounded repeats in regular expressions</li>
<li>Syntax tests can now assert that reindent is working as expected</li>
<li>Syntax tests can now assert that symbols are indexed</li>
<li>Prevent infinite include loops via with_prototype</li>
<li>Fixed a number of scope related bugs</li>
<li>Fixed some regex capture related bugs</li>
<li>Added more information to the <i>Show Scope Name</i> popup</li>
</ul>

<h3>OS Compatibility</h3>
<ul class="topic">
<li>The following operating systems are no longer supported as a result of
adding Python 3.8:
<ul style="list-style-type: circle;">
<li>OS X 10.7</li>
<li>OS X 10.8</li>
<li>Windows XP</li>
<li>Windows Vista</li>
</ul>
</li>
</ul>

<h3>Platform Integration</h3>
<ul class="topic">
<li>Added automatic dark/light theme and color scheme switching, based on OS
theme changes</li>
<li><tt>subl -</tt> can now be used to read from stdin on all platforms</li>
<li>Windows will remember their Virtual Desktop/Space/Workspace, controlled by
the <tt>remember_workspace</tt> setting</li>
<li>Scroll bars now follow platform conventions when clicking on them.
Configurable using <tt>Scroll Bar.sublime-mousemap</tt></li>
<li>Mac: Releases use universal binaries with Apple Silicon support</li>
<li>Mac: Updated icon to follow macOS 11 style</li>
<li>Mac: Windows will now stay maximized when using Mac window tabs</li>
<li>Mac: Fix various issues with the wrong cursor being used</li>
<li>Linux: ARM64 builds are now available</li>
<li>Linux: Text drag and drop is now supported</li>
<li>Linux: Added proper support for Wayland</li>
<li>Linux: Touch screen events are now handled</li>
<li>Linux: Better support for copy+paste with other applications that don't
support utf8 text</li>
<li>Linux: Native file dialogs like those for KDE will be used when
configured</li>
<li>Windows: IME preview and multi-select support</li>
<li>Windows, Linux: Added support for custom title bars</li>
<li>Windows, Linux: Use vsync for animations instead of a fixed 60hz</li>
<li>Mac, Linux: Improved compatibility with some keyboard layouts</li>
</ul>

<h3>Application Behavior</h3>
<ul class="topic">
<li>Added <i>Safe Mode</i>, to simulate a clean install. Enabled by passing
<tt>--safe-mode</tt> on the command line or holding
<tt>shift+alt</tt>/<tt>option</tt> at startup on Windows/macOS respectively</li>
<li>Added <i>Help/Report a Bug</i> to link to our public issue tracker</li>
<li>Added options to <tt>hot_exit</tt> setting to control behavior when the
last window is closed</li>
<li>Fixed a possible case where an update loses the current session</li>
<li>Settings containing a UTF-8 BOM will no longer fail to load</li>
<li>Added support for previewing TGA and PSD images</li>
<li>Added <tt>close_deleted_files</tt> setting to control behavior of session
restoration when files have been deleted on disk</li>
<li>Popup windows now use virtual windows for improved performance</li>
<li>Improved performance when loading files with very long lines</li>
<li>Improved rendering performance on very long lines</li>
<li>Improved performance with large session files</li>
<li>Data directories have dropped the "3", though if a "3" directory still
exists it will be used</li>
<li>Mac: <i>Quick Switch Project</i> now works without any windows open</li>
<li>Mac, Linux: The cache and index are now located in the proper location
(<tt>~/.cache</tt> and <tt>~/Library/Caches</tt> respectively)</li>
</ul>

<h3>Auto Complete</h3>
<ul class="topic">
<li>Typing the full tab trigger of a snippet will move it to the top of the
results</li>
<li>Manually typing in the only available completion will hide the auto
complete popup</li>
<li><tt>.sublime-completion</tt> files can now specify <tt>annotation</tt>,
<tt>kind</tt> and <tt>details</tt></li>
<li>Ranking quality improvements</li>
<li>Improved behavior of completions starting with non-word characters</li>
<li><tt>auto_complete_trailing_symbols</tt> is now disabled by default</li>
<li><tt>cancelCompletion</tt> will no longer prevent manual invocation</li>
<li>Added the <tt>auto_complete_when_likely</tt> setting</li>
<li>Added <tt>auto_complete_preserve_order</tt> setting</li>
<li>Added <tt>auto_complete_include_snippets_when_typing</tt> setting</li>
<li>Added <tt>auto_complete_use_index</tt> setting</li>
<li>Added <tt>auto_complete_use_history</tt> setting to control if previous
choices are automatically selected</li>
<li>Running the <tt>auto_complete</tt> command when auto complete is already
showing will re-query plugins for results</li>
<li><tt>auto_complete_selector</tt> now applies to the position before the
just-typed in character, matching <tt>auto_complete_triggers</tt></li>
</ul>

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

<h3>Editor Control</h3>
<ul class="topic">
<li>Added <i>File/Print</i>, which prints via a browser</li>
<li>Added <i>Edit/Copy as HTML</i></li>
<li>Build systems now use new annotations functionality instead of phantoms,
reducing re-flow</li>
<li>Undo history is preserved in the session</li>
<li>Comments and layout are preserved when programmatically editing
preferences</li>
<li>Caret blinking is disabled by default. Set <tt>caret_style</tt> setting to
<tt>smooth</tt> for previous behavior</li>
<li>Improved automatic indentation detection</li>
<li>Added relative line numbers, controlled by the
<tt>relative_line_numbers</tt> setting</li>
<li>Added setting <tt>scroll_context_lines</tt></li>
<li>Added setting <tt>hide_pointer_while_typing</tt></li>
<li>Added setting <tt>control_character_style</tt></li>
<li>Added <i>Project/Recent/Remove Deleted</i></li>
<li>Added <tt>chain</tt> command to run multiple commands in series</li>
<li><tt>switch_file</tt> command now handles filenames with compound
extensions</li>
<li>The <tt>scroll_past_end</tt> setting now supports customizing the scroll
distance using numbers from <tt>0.0</tt> to <tt>1.0</tt></li>
<li>Double-clicking a semi-transient sheet's tab will now fully open the
sheet</li>
<li><tt>trim_trailing_white_space_on_save</tt> can now be set to
<tt>"not_on_caret"</tt></li>
<li><tt>trim_trailing_white_space_on_save</tt> now trims only newly inserted
trailing whitespace by default. Controlled via
<tt>trim_only_modified_white_space</tt> setting</li>
<li>Expanded <tt>draw_white_space</tt> setting, supporting leading and trailing
white space</li>
<li>Unicode white space characters, such as the zero width no-break space, are
now drawn as hex values. Controlled via <tt>draw_unicode_white_space</tt>
setting</li>
<li>Fixed spelling correction to support languages with upper case characters
after start of word</li>
<li>Added commands to simplify customizing the active theme or color
scheme</li>
<li><i>Quick Switch Project</i> will open the selected project in a new window
if <tt>Ctrl</tt> (<tt>Cmd</tt> on Mac) is held down</li>
<li>Added <tt>wrap_width_style</tt> preference</li>
<li>Added <tt>console_max_history_lines</tt></li>
<li>Added additional settings to control the status bar:
<tt>show_sidebar_button</tt>, <tt>show_indentation</tt> and
<tt>show_syntax</tt></li>
<li>Console now uses Python syntax highlighting by default</li>
<li>Added <i>Central European (Mac)</i> encoding support</li>
<li>Key Bindings: <i>Join Lines</i> is now on <tt>Ctrl+Shift+J</tt> /
<tt>Cmd+Shift+J</tt></li>
<li>Key Bindings: <i>Expand Selection to Indentation</i> is no longer bound by
default</li>
<li>Key Bindings: <tt>Ctrl+J</tt> / <tt>Cmd+J</tt> is now used as a prefix for
sequential key bindings, similar to <tt>Ctrl+K</tt> / <tt>Cmd+K</tt></li>
<li>Code Folding: fixed some edge-case incorrect behaviors</li>
<li>Linux: Added support for alternate font weight names</li>
<li>Linux: Selection is no longer cleared when another application makes a
selection</li>
<li>Linux: Added <tt>Ctrl+Space</tt> to trigger Auto Complete</li>
<li>Linux, Windows: Added <tt>Alt+Shift+Left Mouse Button</tt> as an
alternative column selection binding</li>
<li>Linux, Windows: Added Shift+F10 key binding to open the context menu</li>
</ul>

<h3>Text Commands</h3>
<ul class="topic">
<li>Macros now record Find commands</li>
<li>Reworked <i>Jump Back</i> and <i>Jump Forward</i> commands</li>
<li>Improved behavior of <i>Wrap Paragraph</i></li>
<li>Improved behavior of <i>Swap Lines</i></li>
<li>Added <i>Revert Diff Hunk</i></li>
<li>Added <i>Selection/Expand Selection</i> as a general mechanism to expand
the selection</li>
<li><i>Selection/Split into Lines</i> will now split a selection into words if
the selection doesn't contain any newlines</li>
<li>Show a sum in the status bar when there are multiple selections and all of
them are numbers</li>
<li><tt>set_file_type</tt> command now accepts "scope:" prefixed syntax
names</li>
<li>Fixed <tt>sort_lines</tt> replacing unicode newlines with regular ones</li>
</ul>

<h3>Snippets</h3>
<ul class="topic">
<li>Added <tt>auto_complete_include_snippets</tt> setting, for disabling auto
complete integration</li>
<li>Added <tt>ignored_snippets</tt> setting, for disabling default
snippets</li>
</ul>

<h3>Indexing (Goto Definition)</h3>


<ul class="topic">
<li>Files ignored by <tt>.gitignore</tt> are not indexed by default. Controlled
via <tt>index_exclude_gitignore</tt> setting</li>
<li>Files without known extensions are no longer indexed by default. Controlled
via <tt>index_skip_unknown_extensions</tt> setting</li>
<li>Improved behavior with constantly changing files</li>
<li>Significantly improved load times</li>
</ul>

<h3>Files and Folders</h3>


<ul class="topic">
<li>Saving files is now asynchronous</li>
<li>Improved performance when adding directories with extreme amounts of
files</li>
<li>When <tt>save_on_focus_lost</tt> is enabled, closing an unsaved file will
save and close it, instead of prompting to save</li>
<li>Improved behavior of <tt>save_on_focus_lost</tt> in conjunction with
administrator owned files</li>
<li>Added <tt>reload_file_on_change</tt> setting to control if files are
automatically reloaded or not</li>
<li><tt>folder_exclude_patterns</tt> and <tt>folder_include_patterns</tt> now
support project-relative paths, by starting the path with <tt>//</tt></li>
<li>Folders in the sidebar can be recursively expanded via alt+arrow key</li>
<li>Added <tt>preview_on_click</tt> setting to support only previewing files on
left click</li>
<li>Windows: Fixed <i>Open Containing Folder</i> for UNC paths</li>
<li>Windows: Fixed Save dialog not showing for new files with control
characters on the first line</li>
<li>Windows: Fixed <tt>Ctrl+Backspace</tt> inserting a <tt>DEL</tt> character
when a dialog is open in the background</li>
<li>Linux: Fix recreated directories not working correctly with file change
monitoring</li>
<li>Linux: Recursively expanding and collapsing sidebar folders now works with
<tt>alt</tt> or <tt>super</tt></li>
</ul>

<h3>Find</h3>
<ul class="topic">
<li>Find results are highlighted on the scroll bar, controlled by
<tt>highlight_find_results_in_scrollbar</tt></li>
<li>Find in Selection now highlights the area that will be searched</li>
<li>Commands can now be run without the find panel having input focus</li>
<li>Fix keypad enter not working in find panel</li>
<li>Improved find history behavior</li>
<li>Find: Various performance improvements with large files using graceful
degradation</li>
<li>Find: Fixed adjacent matches being skipped when find in selection is in
use</li>
<li>Find: Fixed find in selection option not being cleared when changing
tabs</li>
<li>Find: Selection will no longer be reset after <i>Find All</i> is used when
finding in selection</li>
<li>Find: Results are now properly highlighted on <i>Find All</i> when
<tt>close_find_after_find_all</tt> is turned off</li>
<li>Find in Files: Improved performance with large numbers of matches</li>
<li>Find in Files: Can now filter by <tt>.gitignore</tt></li>
<li>Find in Files: Added Preserve Case option for replacements</li>
<li>Find in Files: Fix not recursing into directories on networked file
systems</li>
<li>Find in Files: Hide rulers by default in find results</li>
<li>Find in Files: Added <i>Find/Cancel Find in Files</i> menu item</li>
<li>Find in Files: Binary file patterns are applied when an explicit folder is
given</li>
<li>Find in Files: Using "Find in Folder…" from the sidebar context menu will
apply project file filters</li>
<li>Find in Files: Added <tt>close_find_after_find_all</tt> preference</li>
<li>Find in Files: Added <tt>close_find_after_replace_all</tt> preference</li>
</ul>

<h3>UI</h3>
<ul class="topic">
<li>Changed default color scheme to <i>Mariana</i></li>
<li>Added Default Dark theme</li>
<li>Added <tt>themed_title_bar</tt> setting</li>
<li>Changed file tab style, adding <tt>file_tab_style</tt> setting</li>
<li>Goto Symbol shows more information about symbols</li>
<li>Definitions hover popup shows more information about symbols</li>
<li>Sheets without input focus are now dimmed when using included themes</li>
<li>Added a New Tab button in the tab bar, and <tt>hide_new_tab_button</tt>
setting</li>
<li>Added <tt>show_tab_close_buttons_on_left</tt> setting</li>
<li>Added <tt>highlight_gutter</tt> and <tt>highlight_line_number</tt>
settings</li>
<li>Added the ability to auto hide the menu, tabs, and status bar when typing.
See <tt>auto_hide_menu</tt> and related settings</li>
<li>Window title bar can be controlled by <tt>show_rel_path</tt> and
<tt>show_project_first</tt> settings</li>
<li>Tab context menu now includes <i>Close Unmodified Files</i> and <i>Close
Deleted Files</i> entries</li>
<li>Side bar row highlights now properly reflect the selected tabs</li>
<li>Color Schemes: Added <tt>glow</tt> font option</li>
<li>Color Schemes: Added support for the <tt>underline</tt> font style</li>
<li>Color Schemes: Added new property, <tt>inactive_selection_border</tt></li>
<li>Color Schemes: Slightly darkened the background of Mariana</li>
<li>Color Schemes: Added support for stippled_underline and
squiggly_underline</li>
<li>Color Schemes: <tt>.hidden-tmTheme</tt> files are now supported by the
<tt>.sublime-color-scheme</tt> convertor</li>
<li>Themes: Included themes use variables extensively, making customization
simpler</li>
<li>Themes: Added <tt>style</tt> property for <tt>title_bar</tt> element, for
better integration with OS "dark modes"</li>
<li>Themes: The <tt>tree_row</tt> for the file with input focus now gets the
attribute <tt>highlighted</tt></li>
<li>Themes: The <tt>settings</tt> key now supports objects, with keys being
settings and values being a boolean, string or array of strings</li>
<li>Themes: Added <tt>sheet_contents</tt> class to text, image and HTML
sheets</li>
<li>Themes: Added the <tt>background_modifier</tt> property for
<tt>sheet_contents</tt></li>
<li>Themes: Added a number of new attributes to <tt>tab_control</tt> for richer
tab theming</li>
<li>Themes: The <tt>highlighted</tt> attribute is only applied to the most
recently active sheet, rather that the most recently active sheet in each
group</li>
<li>Themes: <tt>tab_control</tt> and <tt>sheet_contents</tt> classes now
synchronize their <tt>highlighted</tt> and <tt>hover</tt> attributes</li>
<li>Themes: <tt>tooltip</tt> controls now support animations to their
opacity</li>
<li>Linux: Show sequential key bindings in the menu</li>
<li>Linux: Fixed context menu position being slightly offset</li>
</ul>

<h3>Spell Checking</h3>
<ul class="topic">
<li>Updated dictionaries</li>
<li>Added support for non-utf8 dictionaries</li>
<li>Updated Hunspell for improved suggestions</li>
<li>System dictionaries are now available on Linux</li>
<li>Dictionaries in <tt>~/Library/Spelling</tt> are now available on Mac</li>
</ul>
<h3>Rendering</h3>
<ul class="topic">
<li>Properly query glyph extents in order to avoid cutting off large
glyphs</li>
<li>Windows, Linux: Added support for per-display subpixel ordering</li>
<li>Mac: Improved window resize performance</li>
<li>Windows: Fixed rendering bug where other applications could cause
persistent artifacts via window animations</li>
<li>Windows: Add support for color emoji</li>
</ul>

<h3>API</h3>
<ul class="topic">
<li>Improved coverage of plugin profiling</li>
<li>The cProfile module is now included on Linux</li>
<li>Added HTML sheets, which can be created via
<tt>window.new_html_sheet()</tt></li>
<li><tt>repr</tt> now works as expected</li>
<li>Updated OpenSSL to 1.1.1j</li>
<li><tt>.sublime-commands</tt> files now support filtering commands via the
"platform" key</li>
<li>Minihtml now handles <tt>list-style-type</tt> CSS property -
<tt>circle</tt>, <tt>square</tt> and <tt>disc</tt></li>
<li>Minihtml now processes <tt>subl:</tt> links, running them as commands</li>
<li>Minihtml now supports <tt>white-space: nowrap</tt></li>
<li>Improved minihtml rendering performance</li>
<li><tt>EventListener</tt> has many new features and bug fixes
<ul style="list-style-type: circle;">
<li>
<tt>on_query_completions()</tt> can now
<ul style="list-style-type: square;">
<li>Return suggestions asynchronously</li>
<li>Return command completions</li>
<li>Include symbol kind information</li>
</ul>
</li>
<li>New: <tt>on_init()</tt> is called once with list of views opened
before plugin was loaded</li>
<li>New: <tt>on_exit()</tt> is called immediately before
<tt>plugin_host</tt> exits, after API is shut down</li>
<li>New: <tt>on_text_changed()</tt> and
<tt>on_text_changed_async()</tt> provide detailed modification info</li>
<li>New methods:
<ul style="list-style-type: square;">
<li><tt>on_reload()</tt></li>
<li><tt>on_revert()</tt></li>
<li><tt>on_new_window()</tt></li>
<li><tt>on_new_window_async()</tt></li>
<li><tt>on_pre_close_window()</tt></li>
<li><tt>on_pre_move()</tt></li>
<li><tt>on_post_move()</tt></li>
<li><tt>on_post_move_async()</tt></li>
<li><tt>on_new_project()</tt></li>
<li><tt>on_new_project_async()</tt></li>
<li><tt>on_load_project()</tt></li>
<li><tt>on_load_project_async()</tt></li>
<li><tt>on_pre_save_project()</tt></li>
<li><tt>on_post_save_project()</tt></li>
<li><tt>on_post_save_project_async()</tt></li>
<li><tt>on_pre_close_project()</tt></li>
<li><tt>on_associate_buffer()</tt></li>
</ul>
</li>
<li>Fixed <tt>on_selection_modified()</tt> to not be called twice when
left clicking</li>
<li>Fixed <tt>on_selection_modified()</tt> begin called on non-
selection state changes</li>
</ul>
</li>
<li>New <tt>TextChangeListener</tt> for getting callbacks when a text buffer is
changed
<ul style="list-style-type: circle;">
<li>Can be dynamically bound to a <tt>Buffer</tt> using
<tt>TextChangeListener.attach</tt> and <tt>TextChangeListener.detach</tt></li>
<li>Methods:
<ul style="list-style-type: square;">
<li><tt>on_text_changed()</tt></li>
<li><tt>on_text_changed_async()</tt></li>
<li><tt>on_revert()</tt></li>
<li><tt>on_revert_async()</tt></li>
<li><tt>on_reload()</tt></li>
<li><tt>on_reload_async()</tt></li>
</ul>
</li>
</ul>
</li>
<li><tt>Sheet</tt> has some new methods:
<ul style="list-style-type: circle;">
<li><tt>file_name()</tt></li>
<li><tt>group()</tt></li>
<li><tt>close()</tt></li>
<li><tt>is_semi_transient()</tt></li>
<li><tt>Sheet.is_transient</tt></li>
</ul>
</li>
<li><tt>View</tt> has a number of changes and improvements
<ul style="list-style-type: circle;">
<li>Fixed newly created views not having a valid viewport before being
returned to the API</li>
<li><tt>add_regions()</tt> now has an <tt>annotations</tt> parameter,
to allow adding a per-region annotation to the buffer. The <tt>exec</tt> command
uses this API for build errors</li>
<li><tt>add_regions()</tt> calls that add an underline now have that
underline applied to whitespace characters</li>
<li><tt>show()</tt> now takes <tt>keep_to_left</tt> and
<tt>animate</tt> parameters</li>
<li><tt>text_point()</tt> and related functions now accept a
<tt>clamp_column</tt> parameter</li>
<li>Added <tt>"glow"</tt> to <tt>style_for_scope()</tt></li>
<li>Added <tt>View.rowcol_utf8()</tt>, <tt>View.rowcol_utf16()</tt>,
<tt>View.text_point_utf8()</tt> and <tt>View.text_point_utf16()</tt></li>
<li>Added <tt>sublime.KEEP_ON_SELECTION_MODIFIED</tt>, which can be
passed to <tt>show_popup()</tt></li>
<li>New: <tt>element()</tt> returns a string describing widget views
(find input, quick panel input, etc)</li>
<li>New: <tt>assign_syntax()</tt> sets the syntax used in a view,
supports <tt>Syntax</tt> objects, paths and scope selectors</li>
<li>New: <tt>syntax()</tt> returns the currently set
<tt>Syntax</tt></li>
<li>New: <tt>clones()</tt></li>
<li>New: <tt>sheet()</tt> and <tt>sheet_id()</tt></li>
<li>New: <tt>export_to_html()</tt></li>
</ul>
</li>
<li><tt>Window</tt> has some changes and improvements:
<ul style="list-style-type: circle;">
<li><tt>show_quick_panel</tt> now accepts placeholder text, via the
<tt>placeholder</tt> argument</li>
<li>Added <tt>sublime.CLEAR_TO_RIGHT</tt> and
<tt>sublime.SEMI_TRANSIENT</tt> for use with <tt>open_file()</tt></li>
<li>Added the flag <tt>sublime.REPLACE_MRU</tt> for use with
<tt>open_file()</tt>. When multiple sheets are selected, this flag will cause the
opened file to replace the most recently used sheet with the file being opened</li>
<li>Added the flag <tt>sublime.WANT_EVENT</tt> for use with
<tt>show_quick_panel()</tt>. 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</li>
<li><tt>open_file</tt> now accepts <tt>sublime.ADD_TO_SELECTION</tt> as
a flag</li>
<li>New: <tt>selected_sheets()</tt>,
<tt>selected_sheets_in_group()</tt> and <tt>select_sheets()</tt></li>
<li>New: <tt>workspace_file_name()</tt></li>
<li>New: <tt>bring_to_front()</tt></li>

</ul>
</li>
<li><tt>sublime.ok_cancel_dialog()</tt> and
<tt>sublime.yes_no_cancel_dialog()</tt> now accept an optional <tt>title</tt>
parameter</li>
<li>Added <tt>sublime.open_dialog</tt>, <tt>sublime.save_dialog</tt> and
<tt>sublime.select_folder_dialog</tt></li>
<li>Syntax definitions can be queried via <tt>sublime.list_syntaxes()</tt>,
<tt>sublime.find_syntax()</tt>, <tt>sublime.syntax_from_path()</tt>,
<tt>sublime.find_syntax_by_name()</tt>, <tt>sublime.find_syntax_by_scope()</tt>,
and <tt>sublime.find_syntax_for_file()</tt>. They return <tt>Syntax</tt>
objects</li>
<li>Improved <tt>sys.stdout</tt> to extend <tt>io.TextIOBase</tt></li>
<li><tt>sublime.executable_path()</tt>, <tt>sublime.packages_path()</tt>,
<tt>sublime.installed_packages_path()</tt> and <tt>sublime.cache_path()</tt> may
now be called at import time</li>
<li>Added <tt>sublime.SymbolRegion</tt> and <tt>sublime.SymbolLocation</tt>
with corresponding methods on <tt>View</tt> and <tt>Window</tt></li>
<li>Fix a bug with popup being stuck open when a popup is shown in the hide
event handler of another popup</li>
<li>Added <tt>open_project_or_workspace</tt> command</li>
<li><tt>append</tt> command has new, optional <tt>disable_tab_translation</tt>
argument</li>
<li>Added <tt>modifier_keys</tt> to event dicts when commands are invoked via a
menu</li>
<li>Added <tt>sublime.DYNAMIC_COMPLETIONS</tt>. <tt>on_query_completions()</tt>
can return this flag to indicate that completion results should be re-queried as
the user types</li>
<li>Added <tt>sublime.INHIBIT_REORDER</tt>. Returned by
<tt>on_query_competions()</tt></li>
<li><tt>CompletionItem</tt> now accepts a <tt>details</tt> parameter, which can
include basic HTML</li>
<li><tt>CommandInputHandler</tt> now has an <tt>initial_selection()</tt>
method</li>
<li>Added <tt>Region.to_tuple</tt> and <tt>Phantom.to_tuple</tt></li>
<li>Fixed <tt>ViewEventListener.on_load_async()</tt> sometimes not being
called</li>
<li>Added <tt>sublime.QuickPanelItem()</tt> with support for kind info,
annotations and basic minihtml</li>
<li>Plugins may now add selections to the <i>Jump Back</i> history list via the
<tt>add_jump_record</tt> command</li>
<li>Plugins may suppress selections from the <i>Jump Back</i> history list via
the <tt>jump_ignore_selection</tt> region</li>
<li>Plugins may now disable the default HTML and CSS completions</li>
<li>Added <tt>Buffer.id()</tt> and <tt>Buffer.file_name()</tt></li>
<li>The <tt>TextInputHandler</tt> and <tt>ListInputHandler</tt> classes may
define a method <tt>want_event()</tt> that returns <tt>True</tt> to receive an
extra parameter, an event dict, when the <tt>validate()</tt> and <tt>confirm()</tt>
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</li>
<li>Add <tt>sublime.ui_info()</tt> for high-level information about the UI</li>
<li>Popups will be properly positioned when displayed near the right-hand side
of the editor</li>
<li>Popups near the right-hand side of the editor with wrapped lines will now
be properly sized</li>
<li>Added <tt>ListInputItem</tt> so that <tt>ListInputHandler</tt> objects can
provide kind info, annotations and details</li>
<li>Improvements to the API, applied to the new Python 3.8 environment only:
<ul style="list-style-type: circle;">
<li><tt>bool(sublime.Selection())</tt> will return <tt>False</tt> when
<tt>len() == 0</tt></li>
<li><tt>sublime.load_binary_resource()</tt> now returns <tt>bytes</tt>
instead of <tt>bytearray</tt></li>
<li>Added <tt>Selection.__iter__()</tt></li>
<li>Added <tt>Region.__iter__()</tt></li>
<li>Added <tt>Region.__contains__()</tt></li>
<li>Added <tt>Settings.to_dict()</tt></li>
<li><tt>Settings</tt> can now be treated like a <tt>dict</tt></li>
<li>Plugins starting with <tt>_</tt> will be ignored, <tt>__all__</tt>
global will be respected</li>
<li>Events won't be reported until <tt>plugin_loaded()</tt> has been
called</li>
<li><tt>.pyc</tt> files can now be imported when contained within
<tt>.sublime-package</tt> files, although they will not be scanned for plugins</li>
</ul>
</li>
<li>The <tt>certifi</tt> Python package is preinstalled</li>
<li>Significant performance improvements when rapidly printing to the
Console</li>
<li>Added <tt>sublime.log_control_tree()</tt>. When enabled, clicking with
ctrl+alt will log the control tree under the mouse to the console</li>
<li>Added <tt>sublime.log_fps()</tt>. When enabled, the render times are
tracked and logged</li>
<li>Added logging status functions:
<ul>
<li><tt>sublime.get_log_commands()</tt></li>
<li><tt>sublime.get_log_input()</tt></li>
<li><tt>sublime.get_log_build_systems()</tt></li>
<li><tt>sublime.get_log_result_regex()</tt></li>
<li><tt>sublime.get_log_indexing()</tt></li>
<li><tt>sublime.get_log_fps()</tt></li>
<li><tt>sublime.get_log_control_tree()</tt></li>
</ul>
</li>
<li>Logging functions are now toggle when no argument is passed:
<ul>
<li><tt>sublime.log_commands()</tt></li>
<li><tt>sublime.log_input()</tt></li>
<li><tt>sublime.log_build_systems()</tt></li>
<li><tt>sublime.log_result_regex()</tt></li>
<li><tt>sublime.log_indexing()</tt></li>
<li><tt>sublime.log_fps()</tt></li>
<li><tt>sublime.log_control_tree()</tt></li>
</ul>
</li>
<li>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</li>
</ul>
</article>

You might also like