Skip to content

Instantly share code, notes, and snippets.

@dungsaga
Forked from jfcherng/st4-changelog.md
Last active July 14, 2020 07:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dungsaga/75356abcc9ec936a1587f454a7423fd9 to your computer and use it in GitHub Desktop.
Save dungsaga/75356abcc9ec936a1587f454a7423fd9 to your computer and use it in GitHub Desktop.
Sublime Text 4 changelog just because it's not on the official website yet.

Converted via https://domchristie.github.io/turndown

Dev Channel Changelog

Build 4077

11 July 2020

  • Fixed a crash in 4075 that could occur when closing the preferences window

Build 4076

10 July 2020

  • Fixed a crash regression in 4075 with missing embeds

Build 4075

10 July 2020

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

Build 4074

28 April 2020

  • Auto Complete: Ranking quality improvements
  • Auto Complete: Added auto_complete_use_history setting to control if previous choices are automatically selected
  • Added additional settings to control the status bar: show_sidebar_button, show_indentation and show_syntax
  • Added relative line numbers, controlled by the relative_line_numbers setting
  • Color Schemes: Added support for the underline font style
  • Color Schemes: Added new property, inactive_selection_border
  • Added setting hide_pointer_while_typing
  • Console now uses Python syntax highlighting by default
  • Windows, Linux: Added Shift+F10 key binding to open the context menu
  • Fixed folder dragging in the sidebar
  • Further improvements in layout preservation when programmatically editing preferences
  • API: View.add_regions() calls that add an underline now have that underline applied to whitespace characters
  • API: Added sublime.INHIBIT_REORDER
  • API: Window.new_html_sheet() now accepts the sublime.ADD_TO_SELECTION flag
  • API: Window.new_html_sheet() no longer accepts cmd and args parameters
  • API: Fixed a regression in View.split_by_newlines()

Build 4073

8 April 2020

  • Reworked Auto Complete UI
  • Fixed a Find in Files crash regression in 4072
  • Improved layout preservation when programmatically editing preferences
  • .sublime-completion files can now specify annotation, kind and details
  • API: CompletionItem now accepts a details parameter, which can include basic HTML
  • API: minihtml now processes subl: links, running them as commands

Build 4072

8 April 2020

  • Find in Files can now filter by .gitignore
  • Fixed a path wildcard matching regression in 4070
  • Auto Complete: auto_complete_selector now applies to the position before the just-typed in character, matching auto_complete_triggers
  • Linux: Added Ctrl+Space to trigger Auto Complete
  • Linux, Windows: Added Alt+Shift+Left Mouse Button as an alternative column selection binding
  • Fixed a file encoding regression
  • Fixed a syntax highlighting backtracking edge case
  • API: Fixed on_selection_modified() being called with the wrong view when using cloned views

Build 4070

1 April 2020

  • Spell Checking: Updated dictionaries
  • Spell Checking: Added support for non-utf8 dictionaries
  • Spell Checking: System dictionaries are now available on Linux
  • Spell Checking: Dictionaries in ~/Library/Spelling are now available on Mac
  • Fixed ignored_packages setting causing sub-directories to be ignored
  • Fixed inline diffs not rendering an expected when draw centered is enabled
  • Linux: Fixed a regression in key bindings for the space bar
  • Windows: Fixed IME crash
  • API: Fixed View.text_point_utf8() and View.text_point_utf16() not working as expected

Build 4069

27 March 2020

  • Comments and layout are preserved when programmatically editing preferences
  • Holding down Shift on Windows, or Option on macOS, will start Sublime Text in Safe Mode
  • Auto Complete: Typing the full tab trigger of a snippet will move it to the top of the results
  • Auto Complete: Fixed some scenarios when auto complete would incorrectly trigger
  • Linux: Improved compatibility with some keyboard layouts
  • Mac: Improved compatibility with some keyboard layouts
  • Windows: Improved IME support
  • Syntax tests can now assert that reindent is working as expected
  • Fixed popups not scrolling
  • Fixed incorrect scrolling in Find Results after startup
  • Windows: Fixed some Safe Mode inconsistencies
  • minihtml: Fix HSL color blending
  • minihtml: Fix handling of CSS comments
  • API: Updated Python to 3.8.2
  • API: Added View.rowcol_utf8(), View.rowcol_utf16(), View.text_point_utf8() and View.text_point_utf16()
  • API: sublime.HistoricPosition now supplies utf8 and utf16 offsets
  • API: More detailed output when using sublime.log_control_tree()

Build 4068

28 February 2020

  • Fixed Auto Complete unexpectedly showing after the first edit on a newly opened file
  • Fixed a crash that could occur with syntax definition branch points
  • Fixed the Console not scrolling to the end at startup
  • Fixed syntax definitions not reloading
  • Windows: Fixed subl not making Sublime Text the foreground window
  • Windows: Fixed a crash that could occur on startup

Build 4067

14 February 2020

  • Auto Hide: Text now never jumps around when hiding tabs, even for short files
  • Find in Files: Binary file patterns are applied when an explicit folder is given
  • Find in Files: Using "Find in Folder…" from the sidebar context menu will apply project file filters
  • folder_exclude_patterns and folder_include_patterns now support project-relative paths, by starting the path with //
  • Improved performance when adding directories with extreme amounts of files to the side bar
  • Fixed a race condition when using Build, with Save All on Build enabled and async file saving
  • Improved menu auto hide behavior on Linux and Windows
  • Fixed a case where Jump Back didn't behave as expected
  • Linux: Removed dependency on glibc 2.18
  • Linux: Better support for copy+paste with other applications that don't support utf8 text
  • API: Added Window.bring_to_front()

Build 4065

29 January 2020

  • API: Added HTML sheets, which can be created via window.new_html_sheet()
  • Command Line: Fixed subl only working intermittently on Windows
  • Scrolling: Actually fixed newly opened files on Mac not scrolling to the expected position

Build 4064

28 January 2020

  • Command Line: Fixed regressions in 4063
  • API: Added sublime.log_control_tree(bool). When enabled, clicking with ctrl+alt will log the control tree under the mouse to the console

Build 4063

27 January 2020

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

Build 4062

14 January 2020

  • Improved syntax definition load time
  • Fixed a crash that could occur with syntax definition branch points
  • Auto Complete: Several small fixes
  • minihtml: Fixed incorrect layout when using a non-default ui_scale

Build 4061

11 December 2019

  • Auto Complete: Fixed cancelCompletions being ignored
  • Auto Complete: Fixed inserting a newline character not hiding the AC dialog

Build 4060

6 December 2019

  • Mac: Fixed New Window not working
  • Auto Complete: Fixed a regression causing auto complete to be case sensitive
  • OpenGL: Added support for repeated textures
  • Fixed a 4059 regression in Jump Back

Build 4059

5 December 2019

  • Reworked Jump Back and Jump Forward commands
  • Auto Complete: Added Sublime Text 3 style selection history
  • Auto Complete: Fixed a scenario where auto complete could insert nothing after selecting a completion already present at the insert location
  • Fixed Join Lines not working as expected with multiple selections
  • Fixed transient files not being created at startup when Hot Exit is disabled
  • OpenGL: Fixed a rendering regression in 4058

Build 4058

4 December 2019

  • Auto Complete: Rework how punctuation triggers are handled
  • Auto Complete: Pressing tab when there are no available completions will insert a tab
  • OpenGL: Improve minimap rendering quality
  • OpenGL: Improve performance with many spelling errors

Build 4057

1 December 2019

  • Fixed incorrect minimap rendering when using OpenGL
  • Auto Complete: Completions are not as dependent on the syntax tokenisation rules
  • Auto Complete: Various changes to how completions with punctuation are handled
  • API: Added sublime.DYNAMIC_COMPLETIONS. on_query_completions() can return this flag to indicate that completion results should be re-queried as the user types
  • API: Added sublime.KEEP_ON_SELECTION_MODIFIED, which can be passed to View.show_popup()

Build 4056

26 November 2019

  • Fixed a crash in 4055

Build 4055

25 November 2019

  • Fixed a rendering regression in 4053
  • Fixed saving files with hexadecimal encoding not working correctly when using non-canonical formatting
  • Auto Complete: Improved behavior of completions starting with non-word characters
  • Auto Complete: Running the auto_complete command when auto complete is already showing will re-query plugins for results
  • Auto Complete: Manually typing in the only available completion will hide the auto complete popup
  • Improved minihtml rendering performance
  • Linux: Fixed a wayland compatibility regression in 4054
  • Windows: Fixed file deletion
  • API: Fixed plugin profiling
  • API: Fixed several edge cases related to plugin loading and reloading
  • API: Auto Complete can be used in input panels again

Build 4054

20 November 2019

  • Improved Switch File behavior in conjunction with multiple tabs selected
  • Fixed a 4053 regression where draw_centered wasn't rendering correctly
  • Fixed a 4053 regression where up and down arrows weren't working as expected in Goto Anything
  • Fixed empty buffers not displaying Phantoms
  • Fixed using the Command Palette to automatically prompt for missing command arguments not working correctly
  • Linux: Fixed tearing in full screen when using OpenGL

Build 4053

19 November 2019

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

Build 4052

15 November 2019

  • Auto Complete: Added auto_complete_preserve_order setting
  • Auto Complete: Added auto_complete_include_snippets_when_typing setting
  • Auto Complete: Added auto_complete_use_index setting
  • Auto Complete: Fixed trailing punctuation being incorrectly added to API suggestions
  • Added back Expand Selection to Scope
  • OpenGL: Added support for selection_corner_style
  • OpenGL: Performance improvements
  • OpenGL: Fixed a crash related to missing textures
  • Fixed trim_only_modified_white_space not working as expected when using Save As
  • Fixed a crash with syntax highlighting back tracking
  • Fixed selecting past the last line in the Command Palette
  • API: Fixed compatibility with decorated EventListener methods
  • API: Simplified CompletionItem interface

Build 4051

14 November 2019

  • Fixed annotation close buttons not showing on custom themes
  • Fixed navigation to unsaved files via Find in Files not working correctly
  • Mac: Fixed slow Goto Anything in conjunction with OpenGL rendering in some circumstances
  • Mac: Fixed a touch bar related memory leak
  • Linux: Fixed menu drawing on old versions of GTK3
  • Various minor crash fixes

Build 4050

13 November 2019

GPU Rendering

  • New hardware_acceleration setting will composite the UI on the GPU
  • By default, GPU rendering is enabled on Mac, and disabled on Windows and Linux
  • Details about the active GPU will be displayed in the Console

Context-aware Auto Complete

  • The auto complete engine now suggests completions based on patterns in existing code
  • Uses the entire project as a source, instead of just the current view
  • Plugins may specify symbol kind info to be displayed in suggestions list

Tab Multi Select

  • When multiple tabs are selected, their contents will be shown side-by-side
  • Side-by-side view is also used when selecting multiple files in sidebar
  • Goto Definition popup allows opening the definition using side-by-side view

Python 3.8 API

  • Added a Python 3.8 API environment for plugins
  • Plugins can choose Python version via .python-version file in plugin folder
  • Existing plugins are fully supported via legacy Python 3.3 API
  • Many API improvements and additions - see API section for more details

Editor Control

  • Build systems now use new annotations functionality instead of phantoms, reducing re-flow
  • Caret blinking is disabled by default. Set caret_style setting to smooth for previous behavior.
  • Find results are highlighted on the scroll bar
  • Improved automatic indentation detection
  • trim_trailing_white_space_on_save now trims only newly inserted trailing whitespace by default. Controlled via trim_only_modified_white_space setting.
  • Expanded draw_white_space setting, supporting leading and trailing white space
  • Unicode white space characters, such as the zero width no-break space, are now drawn as hex values. Controlled via draw_unicode_white_space setting.
  • Fixed spelling correction to support languages with upper case characters after start of word
  • Linux: Text drag and drop is now supported
  • Linux: Added support for alternate font weight names
  • Linux: Selection is no longer cleared when another application makes a selection

Text Commands

  • Improved behavior of Wrap Paragraph
  • Improved behavior of Swap Lines
  • Added Selection/Expand Selection as a general mechanism to expand the selection
  • Selection/Split into Lines will now split a selection into words if the selection doesn't contain any newlines
  • Show a sum in the status bar when there are multiple selections and all of them are numbers
  • Fixed swap_line_down not being able to swap an empty line onto the last line of a file
  • Fixed sort_lines replacing unicode newlines with regular ones

Snippets

  • Added auto_complete_include_snippets setting, for disabling auto complete integration
  • Added ignored_snippets setting, for disabling default snippets

Goto Symbol

  • Goto Symbol in Project is now significantly faster on huge projects
  • Icons are now shown next to symbols, indicating the symbol kind
  • Symbols with 3 characters or less are now indexed

Indexing (Goto Definition)

  • Files ignored by .gitignore are not indexed by default. Controlled via index_exclude_gitignore setting.
  • Files without known extensions are no longer indexed by default. Controlled via index_skip_unknown_extensions setting.
  • Improved behavior with constantly changing files

Input Handling

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

Files and Folders

  • Saving files is now asynchronous
  • When save_on_focus_lost is enabled, closing an unsaved file will save and close it, instead of prompting to save
  • Improved behavior of save_on_focus_lost in conjunction with administrator owned files
  • Added reload_file_on_change setting to control if files are automatically reloaded or not
  • Windows: Fixed Open Containing Folder for UNC paths
  • Windows: Fixed Save dialog not showing for new files with control characters on the first line
  • Windows: Fixed Ctrl+Backspace inserting a DEL character when a dialog is open in the background
  • Linux: Fix recreated directories not working correctly with file change monitoring

UI

  • Added highlight_gutter and highlight_line_number settings
  • Added the ability to auto hide the menu, tabs, and status bar when typing. See auto_hide_menu and related settings.
  • Window title bar can be controlled by show_rel_path and show_project_first settings
  • Tab context menu now includes Close Unmodified Files and Close Deleted Files entries
  • Themes now have a style property for title_bar element, for better integration with OS "dark modes"
  • Added glow font option to color schemes
  • Linux: Show sequential key bindings in the menu
  • Linux: Fixed context menu position being slightly offset

Rendering

  • Windows, Linux: Added support for per-display subpixel ordering
  • Mac: Improved window resize performance
  • Windows: Fixed rendering bug where other applications could cause persistent artifacts via window animations

Application Behavior

  • Added Safe Mode, to simulate a clean install. Enabled by passing --safe-mode on the command line.
  • Added options to hot_exit setting to control behavior when the last window is closed
  • Fixed a possible case where an update loses the current session
  • Settings containing a UTF-8 BOM will no longer fail to load

Syntax Definitions

  • Added ability to "branch" within syntax definitions, for non-deterministic or multi-line constructs
  • Many syntax highlighting improvements, including significant improvements to:
  • Fixed a performance issue with bounded repeats in regular expressions

API

  • minihtml now handles list-style-type CSS property - circle, square and disc
  • Improved coverage of plugin profiling
  • The cProfile module is now included on Linux
  • EventListener has many new features and bug fixes
    • on_query_completions() can now
      • return suggestions asynchronously
      • return command completions
      • include symbol kind information
    • New: on_init() is called once with list of views opened before plugin was loaded
    • New: on_exit() is called immediately before plugin_host exits, after API is shut down
    • New: on_text_changed() and on_text_changed_async() provide detailed modification info
    • New methods:
      • on_reload()
      • on_revert()
      • on_new_window()
      • on_new_window_async()
      • on_pre_close_window()
      • on_pre_move()
      • on_post_move()
      • on_post_move_async()
      • on_new_project()
      • on_new_project_async()
      • on_load_project()
      • on_load_project_async()
      • on_pre_save_project()
      • on_post_save_project()
      • on_post_save_project_async()
      • on_pre_close_project()
    • Fixed on_selection_modified() to not be called twice when left clicking
  • View.add_regions() now has an annotations parameter, to allow adding a per-region annotation to the buffer. The exec command now uses this API for build errors.
  • View.element() returns a string describing widget views (find input, quick panel input, etc)
  • Image filenames can be retrieved via Sheet.file_name()
  • Syntax definitions can be queried via sublime.list_syntaxes() and sublime.find_syntax()
  • View.assign_syntax() now fully supports scope names, e.g. "scope:source.c++"
  • Assigning a syntax no longer removes widget settings files from a widget view
  • Added Window.workspace_file_name()
  • Added open_project_or_workspace command
  • append command has new, optional disable_tab_translation argument
  • Improvements to the API, applied to the new Python 3.8 environment only:
    • bool(sublime.Selection()) will return False when len() == 0
    • sublime.load_binary_resource() now returns bytes instead of bytearray
    • Added Selection.__iter__()
    • Added Region.__iter__()
    • Added Region.__contains__()
    • Settings can now be treated like a dict
    • Plugins starting with _ will be ignored, __all__ global will be respected
    • Events won't be reported until plugin_loaded() has been called
    • .pyc files can now be imported when contained within .sublime-package files, although they will not be scanned for plugins
  • The certifi Python package is preinstalled
  • Significant performance improvements when rapidly printing to the Console

OS Compatibility

  • The following operating systems are no longer supported as a result of adding Python 3.8:
    • OS X 10.7
    • OS X 10.8
    • Windows XP
    • Windows Vista
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment