<style>
html {
    background-color: #f6f6f6;
    margin: 16px;
}
body {
    color: #333;
    font-family: "Open Sans", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
}
ul {
    padding-left: 1.2rem;
}
li { margin: 2px; }
h1 {
    font-size: 2.0rem;
    margin: 0;
}
h2 {
    color: #444;
    font-size: 1.4rem;
    margin: 1em 0 0.1em 0;
}
a {
    color: #000;
}
article { display: block; }
.release-date, .forum-link {
    font-size: 0.9rem;
    font-style: italic;
    color: #666;
}
tt {
    font-size: 0.9em;
    border-radius: 2px;
    background-color: #e3e3e3;
    padding: 0 4px;
}
li ul {
    margin: 2px 0 4px;
}
</style>

<h1>Dev Channel Changelog</h1>

<article class="current">
<h2>Build 4077</h2>
<div class="release-date">11 July 2020</div>
<ul>
    <li>Fixed a crash in 4075 that could occur when closing the preferences window</li>
</ul>
</article>

<article>
<h2>Build 4076</h2>
<div class="release-date">10 July 2020</div>
<ul>
    <li>Fixed a crash regression in 4075 with missing embeds</li>
</ul>
</article>

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

<article>
<h2>Build 4074</h2>
<div class="release-date">28 April 2020</div>
<ul>
    <li>Auto Complete: Ranking quality improvements</li>
    <li>Auto Complete: Added <tt>auto_complete_use_history</tt> setting to control if previous choices are automatically selected</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>Added relative line numbers, controlled by the <tt>relative_line_numbers</tt> setting</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>Added setting <tt>hide_pointer_while_typing</tt></li>
    <li>Console now uses Python syntax highlighting by default</li>
    <li>Windows, Linux: Added Shift+F10 key binding to open the context menu</li>
    <li>Fixed folder dragging in the sidebar</li>
    <li>Further improvements in layout preservation when programmatically editing preferences</li>
    <li>API: <tt>View.add_regions()</tt> calls that add an underline now have that underline applied to whitespace characters</li>
    <li>API: Added <tt>sublime.INHIBIT_REORDER</tt></li>
    <li>API: <tt>Window.new_html_sheet()</tt> now accepts the <tt>sublime.ADD_TO_SELECTION</tt> flag</li>
    <li>API: <tt>Window.new_html_sheet()</tt> no longer accepts <tt>cmd</tt> and <tt>args</tt> parameters</li>
    <li>API: Fixed a regression in <tt>View.split_by_newlines()</tt></li>
</ul>
</article>

<article>
<h2>Build 4073</h2>
<div class="release-date">8 April 2020</div>
<ul>
    <li>Reworked Auto Complete UI</li>
    <li>Fixed a Find in Files crash regression in 4072</li>
    <li>Improved layout preservation when programmatically editing preferences</li>
    <li><tt>.sublime-completion</tt> files can now specify <tt>annotation</tt>, <tt>kind</tt> and <tt>details</tt></li>
    <li>API: <tt>CompletionItem</tt> now accepts a <tt>details</tt> parameter, which can include basic HTML</li>
    <li>API: minihtml now processes <tt>subl:</tt> links, running them as commands</li>
</ul>
</article>

<article>
<h2>Build 4072</h2>
<div class="release-date">8 April 2020</div>
<ul>
    <li>Find in Files can now filter by <tt>.gitignore</tt></li>
    <li>Fixed a path wildcard matching regression in 4070</li>
    <li>Auto Complete: <tt>auto_complete_selector</tt> now applies to the position before the just-typed in character, matching <tt>auto_complete_triggers</tt></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>Fixed a file encoding regression</li>
    <li>Fixed a syntax highlighting backtracking edge case</li>
    <li>API: Fixed <tt>on_selection_modified()</tt> being called with the wrong view when using cloned views</li>
</ul>
</article>

<article>
<h2>Build 4070</h2>
<div class="release-date">1 April 2020</div>
<ul>
    <li>Spell Checking: Updated dictionaries</li>
    <li>Spell Checking: Added support for non-utf8 dictionaries</li>
    <li>Spell Checking: System dictionaries are now available on Linux</li>
    <li>Spell Checking: Dictionaries in <tt>~/Library/Spelling</tt> are now available on Mac</li>
    <li>Fixed <tt>ignored_packages</tt> setting causing sub-directories to be ignored</li>
    <li>Fixed inline diffs not rendering an expected when draw centered is enabled</li>
    <li>Linux: Fixed a regression in key bindings for the space bar</li>
    <li>Windows: Fixed IME crash</li>
    <li>API: Fixed <tt>View.text_point_utf8()</tt> and <tt>View.text_point_utf16()</tt> not working as expected</li>
</ul>
</article>

<article>
<h2>Build 4069</h2>
<div class="release-date">27 March 2020</div>
<ul>
    <li>Comments and layout are preserved when programmatically editing preferences</li>
    <li>Holding down Shift on Windows, or Option on macOS, will start Sublime Text in Safe Mode</li>
    <li>Auto Complete: Typing the full tab trigger of a snippet will move it to the top of the results</li>
    <li>Auto Complete: Fixed some scenarios when auto complete would incorrectly trigger</li>
    <li>Linux: Improved compatibility with some keyboard layouts</li>
    <li>Mac: Improved compatibility with some keyboard layouts</li>
    <li>Windows: Improved IME support</li>
    <li>Syntax tests can now assert that reindent is working as expected</li>
    <li>Fixed popups not scrolling</li>
    <li>Fixed incorrect scrolling in Find Results after startup</li>
    <li>Windows: Fixed some Safe Mode inconsistencies</li>
    <li>minihtml: Fix HSL color blending</li>
    <li>minihtml: Fix handling of CSS comments</li>
    <li>API: Updated Python to 3.8.2</li>
    <li>API: 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>API: <tt>sublime.HistoricPosition</tt> now supplies utf8 and utf16 offsets</li>
    <li>API: More detailed output when using <tt>sublime.log_control_tree()</tt></li>
</ul>
</article>

<article>
<h2>Build 4068</h2>
<div class="release-date">28 February 2020</div>
<ul>
    <li>Fixed Auto Complete unexpectedly showing after the first edit on a newly opened file</li>
    <li>Fixed a crash that could occur with syntax definition branch points</li>
    <li>Fixed the Console not scrolling to the end at startup</li>
    <li>Fixed syntax definitions not reloading</li>
    <li>Windows: Fixed <tt>subl</tt> not making Sublime Text the foreground window</li>
    <li>Windows: Fixed a crash that could occur on startup</li>
</ul>
</article>

<article>
<h2>Build 4067</h2>
<div class="release-date">14 February 2020</div>
<ul>
    <li>Auto Hide: Text now never jumps around when hiding tabs, even for short files</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><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>Improved performance when adding directories with extreme amounts of files to the side bar</li>
    <li>Fixed a race condition when using Build, with Save All on Build enabled and async file saving</li>
    <li>Improved menu auto hide behavior on Linux and Windows</li>
    <li>Fixed a case where <i>Jump Back</i> didn't behave as expected</li>
    <li>Linux: Removed dependency on glibc 2.18</li>
    <li>Linux: Better support for copy+paste with other applications that don't support utf8 text</li>
    <li>API: Added <tt>Window.bring_to_front()</tt></li>
</ul>
</article>

<article>
<h2>Build 4065</h2>
<div class="release-date">29 January 2020</div>
<ul>
    <li>API: Added HTML sheets, which can be created via <tt>window.new_html_sheet()</tt></li>
    <li>Command Line: Fixed subl only working intermittently on Windows</li>
    <li>Scrolling: Actually fixed newly opened files on Mac not scrolling to the expected position</li>
</ul>
</article>

<article>
<h2>Build 4064</h2>
<div class="release-date">28 January 2020</div>
<ul>
    <li>Command Line: Fixed regressions in 4063</li>
    <li>API: Added <tt>sublime.log_control_tree(bool)</tt>. When enabled, clicking with ctrl+alt will log the control tree under the mouse to the console</li>
</ul>
</article>

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

<article>
<h2>Build 4062</h2>
<div class="release-date">14 January 2020</div>
<ul>
    <li>Improved syntax definition load time</li>
    <li>Fixed a crash that could occur with syntax definition branch points</li>
    <li>Auto Complete: Several small fixes</li>
    <li>minihtml: Fixed incorrect layout when using a non-default <tt>ui_scale</tt></li>
</ul>
</article>

<article>
<h2>Build 4061</h2>
<div class="release-date">11 December 2019</div>
<ul>
    <li>Auto Complete: Fixed <tt>cancelCompletions</tt> being ignored</li>
    <li>Auto Complete: Fixed inserting a newline character not hiding the AC dialog</li>
</ul>
</article>

<article>
<h2>Build 4060</h2>
<div class="release-date">6 December 2019</div>
<ul>
    <li>Mac: Fixed <i>New Window</i> not working</li>
    <li>Auto Complete: Fixed a regression causing auto complete to be case sensitive</li>
    <li>OpenGL: Added support for repeated textures</li>
    <li>Fixed a 4059 regression in <i>Jump Back</i></li>
</ul>
</article>

<article>
<h2>Build 4059</h2>
<div class="release-date">5 December 2019</div>
<ul>
    <li>Reworked <i>Jump Back</i> and <i>Jump Forward</i> commands</li>
    <li>Auto Complete: Added Sublime Text 3 style selection history</li>
    <li>Auto Complete: Fixed a scenario where auto complete could insert nothing after selecting a completion already present at the insert location</li>
    <li>Fixed Join Lines not working as expected with multiple selections</li>
    <li>Fixed transient files not being created at startup when Hot Exit is disabled</li>
    <li>OpenGL: Fixed a rendering regression in 4058</li>
</ul>
</article>

<article>
<h2>Build 4058</h2>
<div class="release-date">4 December 2019</div>
<ul>
    <li>Auto Complete: Rework how punctuation triggers are handled</li>
    <li>Auto Complete: Pressing tab when there are no available completions will insert a tab</li>
    <li>OpenGL: Improve minimap rendering quality</li>
    <li>OpenGL: Improve performance with many spelling errors</li>
</ul>
</article>

<article>
<h2>Build 4057</h2>
<div class="release-date">1 December 2019</div>
<ul>
    <li>Fixed incorrect minimap rendering when using OpenGL</li>
    <li>Auto Complete: Completions are not as dependent on the syntax tokenisation rules</li>
    <li>Auto Complete: Various changes to how completions with punctuation are handled</li>
    <li>API: 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>API: Added <tt>sublime.KEEP_ON_SELECTION_MODIFIED</tt>, which can be passed to <tt>View.show_popup()</tt></li>
</ul>
</article>

<article>
<h2>Build 4056</h2>
<div class="release-date">26 November 2019</div>
<ul>
    <li>Fixed a crash in 4055</li>
</ul>
</article>

<article>
<h2>Build 4055</h2>
<div class="release-date">25 November 2019</div>
<ul>
    <li>Fixed a rendering regression in 4053</li>
    <li>Fixed saving files with hexadecimal encoding not working correctly when using non-canonical formatting</li>
    <li>Auto Complete: Improved behavior of completions starting with non-word characters</li>
    <li>Auto Complete: Running the <tt>auto_complete</tt> command when auto complete is already showing will re-query plugins for results</li>
    <li>Auto Complete: Manually typing in the only available completion will hide the auto complete popup</li>
    <li>Improved minihtml rendering performance</li>
    <li>Linux: Fixed a wayland compatibility regression in 4054</li>
    <li>Windows: Fixed file deletion</li>
    <li>API: Fixed plugin profiling</li>
    <li>API: Fixed several edge cases related to plugin loading and reloading</li>
    <li>API: Auto Complete can be used in input panels again</li>
</ul>
</article>

<article>
<h2>Build 4054</h2>
<div class="release-date">20 November 2019</div>
<ul>
    <li>Improved <i>Switch File</i> behavior in conjunction with multiple tabs selected</li>
    <li>Fixed a 4053 regression where <tt>draw_centered</tt> wasn't rendering correctly</li>
    <li>Fixed a 4053 regression where up and down arrows weren't working as expected in Goto Anything</li>
    <li>Fixed empty buffers not displaying Phantoms</li>
    <li>Fixed using the Command Palette to automatically prompt for missing command arguments not working correctly</li>
    <li>Linux: Fixed tearing in full screen when using OpenGL</li>
</ul>
</article>

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

<article>
<h2>Build 4052</h2>
<div class="release-date">15 November 2019</div>
<ul>
    <li>Auto Complete: Added <tt>auto_complete_preserve_order</tt> setting</li>
    <li>Auto Complete: Added <tt>auto_complete_include_snippets_when_typing</tt> setting</li>
    <li>Auto Complete: Added <tt>auto_complete_use_index</tt> setting</li>
    <li>Auto Complete: Fixed trailing punctuation being incorrectly added to API suggestions</li>
    <li>Added back Expand Selection to Scope</li>
    <li>OpenGL: Added support for <tt>selection_corner_style</tt></li>
    <li>OpenGL: Performance improvements</li>
    <li>OpenGL: Fixed a crash related to missing textures</li>
    <li>Fixed <tt>trim_only_modified_white_space</tt> not working as expected when using <i>Save As</i></li>
    <li>Fixed a crash with syntax highlighting back tracking</li>
    <li>Fixed selecting past the last line in the Command Palette</li>
    <li>API: Fixed compatibility with decorated EventListener methods</li>
    <li>API: Simplified <tt>CompletionItem</tt> interface</li>
</ul>
</article>

<article>
<h2>Build 4051</h2>
<div class="release-date">14 November 2019</div>
<ul>
    <li>Fixed annotation close buttons not showing on custom themes</li>
    <li>Fixed navigation to unsaved files via Find in Files not working correctly</li>
    <li>Mac: Fixed slow Goto Anything in conjunction with OpenGL rendering in some circumstances</li>
    <li>Mac: Fixed a touch bar related memory leak</li>
    <li>Linux: Fixed menu drawing on old versions of GTK3</li>
    <li>Various minor crash fixes</li>
</ul>
</article>

<article>
<h2>Build 4050</h2>
<div class="release-date">13 November 2019</div>

<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>When multiple tabs are selected, their contents will be shown side-by-side</li>
    <li>Side-by-side view is also used when selecting multiple files in sidebar</li>
    <li>Goto Definition popup allows opening the definition using side-by-side view</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>Editor Control</h3>
<ul class="topic">
    <li>Build systems now use new annotations functionality instead of phantoms, reducing re-flow</li>
    <li>Caret blinking is disabled by default. Set <tt>caret_style</tt> setting to <tt>smooth</tt> for previous behavior.</li>
    <li>Find results are highlighted on the scroll bar</li>
    <li>Improved automatic indentation detection</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>Linux: Text drag and drop is now supported</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>
</ul>

<h3>Text Commands</h3>
<ul class="topic">
    <li>Improved behavior of <i>Wrap Paragraph</i></li>
    <li>Improved behavior of <i>Swap Lines</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>Fixed <tt>swap_line_down</tt> not being able to swap an empty line onto the last line of a file</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>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>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>
</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 <i>Ctrl</i> is pressed twice without pressing any other keys in between.</li>
    <li>Linux: <i>AltGr</i> 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 <i>Ctrl+Break</i></li>
</ul>

<h3>Files and Folders</h3>
<ul class="topic">
    <li>Saving files is now asynchronous</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>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 <i>Ctrl+Backspace</i> 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>
</ul>

<h3>UI</h3>
<ul class="topic">
    <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>Themes now have a <tt>style</tt> property for <tt>title_bar</tt> element, for better integration with OS "dark modes"</li>
    <li>Added <tt>glow</tt> font option to color schemes</li>
    <li>Linux: Show sequential key bindings in the menu</li>
    <li>Linux: Fixed context menu position being slightly offset</li>
</ul>

<h3>Rendering</h3>
<ul class="topic">
    <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>
</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.</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>
</ul>

<h3>Syntax Definitions</h3>
<ul class="topic">
    <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>Fixed a performance issue with bounded repeats in regular expressions</li>
</ul>

<h3>API</h3>
<ul class="topic">
    <li>minihtml now handles <tt>list-style-type</tt> CSS property - <tt>circle</tt>, <tt>square</tt> and <tt>disc</tt></li>
    <li>Improved coverage of plugin profiling</li>
    <li>The cProfile module is now included on Linux</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>
                </ul>
            </li>
            <li>Fixed <tt>on_selection_modified()</tt> to not be called twice when left clicking</li>
        </ul>
    </li>
    <li><tt>View.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 now uses this API for build errors.</li>
    <li><tt>View.element()</tt> returns a string describing widget views (find input, quick panel input, etc)</li>
    <li>Image filenames can be retrieved via <tt>Sheet.file_name()</tt></li>
    <li>Syntax definitions can be queried via <tt>sublime.list_syntaxes()</tt> and <tt>sublime.find_syntax()</tt></li>
    <li><tt>View.assign_syntax()</tt> now fully supports scope names, e.g. <tt>"scope:source.c++"</tt></li>
    <li>Assigning a syntax no longer removes widget settings files from a widget view</li>
    <li>Added <tt>Window.workspace_file_name()</tt></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>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><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>
</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>
</article>
