New hardware_acceleration setting will composite the UI on the GPU
By default, GPU rendering is enabled on Mac, and disabled on Windows and Linux
Details about the active GPU will be displayed in the Console
Context-aware Auto Complete
The auto complete engine now suggests completions based on patterns in existing code
Uses the entire project as a source, instead of just the current view
Plugins may specify symbol kind info to be displayed in suggestions list
Tab Multi Select
When multiple tabs are selected, their contents will be shown side-by-side
Side-by-side view is also used when selecting multiple files in sidebar
Goto Definition popup allows opening the definition using side-by-side view
Python 3.8 API
Added a Python 3.8 API environment for plugins
Plugins can choose Python version via .python-version file in plugin folder
Existing plugins are fully supported via legacy Python 3.3 API
Many API improvements and additions - see API section for more details
Editor Control
Build systems now use new annotations functionality instead of phantoms, reducing re-flow
Caret blinking is disabled by default. Set caret_style setting to smooth for previous behavior.
Find results are highlighted on the scroll bar
Improved automatic indentation detection
trim_trailing_whitespace now trims only newly inserted trailing whitespace by default. Controlled via trim_only_modified_white_space setting.
Expanded draw_white_space setting, supporting leading and trailing white space
Unicode white space characters, such as the zero width no-break space, are now drawn as hex values. Controlled via draw_unicode_white_space setting.
Fixed spelling correction to support languages with upper case characters after start of word
Linux: Text drag and drop is now supported
Linux: Added support for alternate font weight names
Linux: Selection is no longer cleared when another application makes a selection
Text Commands
Improved behavior of Wrap Paragraph
Improved behavior of Swap Lines
Added Selection/Expand Selection as a general mechanism to expand the selection
Selection/Split into Lines will now split a selection into words if the selection doesn't contain any newlines
Show a sum in the status bar when there are multiple selections and all of them are numbers
Fixed swap_line_down not being able to swap an empty line onto the last line of a file
Fixed sort_lines replacing unicode newlines with regular ones
Snippets
Added auto_complete_include_snippets setting, for disabling auto complete integration
Added ignored_snippets setting, for disabling default snippets
Goto Symbol
Goto Symbol in Project is now significantly faster on huge projects
Icons are now shown next to symbols, indicating the symbol kind
Symbols with 3 characters or less are now indexed
Indexing (Goto Definition)
Files ignored by .gitignore are not indexed by default. Controlled via index_exclude_gitignore setting.
Files without known extensions are no longer indexed by default. Controlled via index_skip_unknown_extensions setting.
Improved behavior with constantly changing files
Input Handling
Modifier key taps can now be used as part of a key binding. For example, ["ctrl", "ctrl"] will trigger when Ctrl is pressed twice without pressing any other keys in between.
Linux: AltGr can now be used in key bindings via altgr
Linux: Added a workaround for a touchscreen driver bug, which would cause right click and mouse scrolling to stop working
Linux: When the menu it hidden, pressing alt will show it
Mac: Fix Pinyin input
Mac: Keypad keys can now be bound to as expected
Mac: Added key bindings for macOS application tabs
Windows, Linux: Hide mouse cursor when typing. Controlled via hide_pointer_while_typing setting.
Windows, Linux: Fixed being unable to bind Ctrl+Break
Files and Folders
Saving files is now asynchronous
When save_on_focus_lost is enabled, closing an unsaved file will save and close it, instead of prompting to save
Improved behavior of save_on_focus_lost in conjunction with administrator owned files
Added reload_file_on_change setting to control if files are automatically reloaded or not
Windows: Fixed Open Containing Folder for UNC paths
Windows: Fixed Save dialog not showing for new files with control characters on the first line
Windows: Fixed Ctrl+Backspace inserting a DEL character when a dialog is open in the background
Linux: Fix recreated directories not working correctly with file change monitoring
UI
Added highlight_gutter and highlight_line_number settings
Added the ability to auto hide the menu, tabs, and status bar when typing. See auto_hide_menu and related settings.
Window title bar can be controlled by show_rel_path and show_project_first settings
Tab context menu now includes Close Unmodified Files and Close Deleted Files entries
Themes now have a style property for title_bar element, for better integration with OS "dark modes"
Added glow font option to color schemes
Linux: Show sequential key bindings in the menu
Linux: Fixed context menu position being slightly offset
Rendering
Windows, Linux: Added support for per-display subpixel ordering
Mac: Improved window resize performance
Windows: Fixed rendering bug where other applications could cause persistent artifacts via window animations
Application Behavior
Added Safe Mode, to simulate a clean install. Enabled by passing --safe-mode on the command line.
Added options to hot_exit setting to control behavior when the last window is closed
Fixed a possible case where an update loses the current session
Settings containing a UTF-8 BOM will no longer fail to load
Syntax Definitions
Added ability to "branch" within syntax definitions, for non-deterministic or multi-line constructs
Many syntax highlighting improvements, including significant improvements to:
Fixed a performance issue with bounded repeats in regular expressions
API
minihtml now handles list-style-type CSS property - circle, square and disc
Improved coverage of plugin profiling
The cProfile module is now included on Linux
EventListener has many new features and bug fixes
on_query_completions() can now
return suggestions asynchronously
return command completions
include symbol kind information
New: on_init() is called once with list of views opened before plugin was loaded
New: on_exit() is called immediately before plugin_host exits, after API is shut down
New: on_text_changed() and on_text_changed_async() provide detailed modification info
New methods:
on_reload()
on_revert()
on_new_window()
on_new_window_async()
on_pre_close_window()
on_pre_move()
on_post_move()
on_post_move_async()
on_new_project()
on_new_project_async()
on_load_project()
on_load_project_async()
on_pre_save_project()
on_post_save_project()
on_post_save_project_async()
on_pre_close_project()
Fixed on_selection_modified() to not be called twice when left clicking
View.add_regions() now has an annotations parameter, to allow adding a per-region annotation to the buffer. The exec command now uses this API for build errors.