The first stable release of Sublime Text 4 has finally arrived! We"ve worked hard on providing improvements without losing focus on what makes Sublime Text great. There are some new major features that we hope will significantly improve sầu your workflow và a countless number of minor improvements across the board.
A huge thanks goes out lớn all the beta testers on discord và all the contributors to our packages.
Download Sublime Text 4
License Changes
Sublime Text license keys are no longer tied khổng lồ a single major version, instead they are now valid for all updates within 3 years of purchase. After that, you will still have sầu full access to every version of Sublime Text released within the 3 year window, but newer builds will required a license tăng cấp. These are the same license terms we use for Sublime Merge, and they allow us to deliver more frequent và exciting updates as soon as they"re ready, without having lớn roll them into lớn a new major version.
Tab Multi-Select
File tabs have been enhanced to lớn make split views effortless, with support throughout the interface & built-in commands. The side bar, tab bar, Goto Anything, Gokhổng lồ Definition, auto complete và more have sầu all been tweaked to make code navigation easier & more intuitive than ever.
Apple Silibé & Linux ARM64
Sublime Text for Mac now includes native tư vấn for Apple Silicon processors. Linux ARM64 builds are also available for devices lượt thích the Raspberry Pi.
Refreshed UI
The Default & Adaptive themes have sầu been refreshed with new tab styles and inactive sầu pane dimming. Themes và Color Schemes tư vấn tự động hóa dark-mode switching. The Adaptive theme on Windows & Linux now features custom title bars.
Context-Aware Auto Complete
The tự động hóa complete engine has been rewritten lớn provide smart completions based on existing code in a project. Suggestions are also augmented with info about their kind, và provide liên kết to lớn definitions.
Support for one of the most popular new programming languages is now shipped by default. Utilize all of the smart syntax-based features of Sublime Text within the modern JavaScript ecosystem.
Superpowered Syntax Definitions
The syntax highlighting engine has been significantly improved, with new features like handling non-deterministic grammars, multi-line constructs, lazy embeds and syntax inheritance. Memory usage has been reduced, và load times are faster than ever.
GPU Rendering
Sublime Text can now utilize your GPU on Linux, Mac and Windows when rendering the interface. This results in a fluid UI all the way up to 8K resolutions, all while using less power than before.
A single frame being rendered. See our blogpost on OpenGL rendering.
Updated Pybé nhỏ API
The Sublime Text API has been updated khổng lồ Pydong dỏng 3.8, while keeping backwards compatibility with packages built for Sublime Text 3. The API has been significantly expanded, adding features that allow plugins like LSPhường. to lớn work better than ever. Read the revamped documentation here.
Compatibility
Sublime Text 4 is fully compatible with version 3. It will pickup your session & configuration automatically. If you"d prefer however, it is possible lớn keep things separate.
Download Sublime Text 4
Full Changelog
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 & Linux Details about the active sầu GPU will be displayed in the Console
Context-aware Aulớn 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 lớn be displayed in suggestions list
Tab Multi-Select
Multiple tabs can be selected using ctrl/cmd, their contents will be shown side-by-side Selecting multiple files from the sidebar will also pĐánh Giá them simultaneously Included themes have a tab connector joining the active sầu sheet & tab when using sheet multi-select The sidebar can now select multiple files using alternative text Goto Anything allows opening tabs side-by-side using ctrl/cmd The Definition popup has a dedicated button for opening files side-by-side Multiple tabs can also be selected from the tab dropdown The thực đơn Selection/Tab Selection contains various options for manipulating tab multi-select File/New View inlớn File has been replaced by File/Split View using multi-select
Pynhỏ bé 3.8 API
Added a Pybé 3.8 API environment for plugins Plugins can choose Pyhạn hẹp version via .python-version tệp tin in plugin folder Existing plugins are fully supported via legacy Pythanh mảnh 3.3 API Many API improvements và additions - see API section for more details
Goto lớn Symbol
Goto lớn 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
Syntax Definitions
Added ability to "branch" within syntax definitions, for non-deterministic or multi-line constructs Many syntax highlighting improvements, including significant improvements to: Significantly improved load times, match times & reduced cache kích cỡ on disk embed is now lazy loaded, resulting in much higher performance for syntaxes like markdown Added branch & fail for non-deterministic parsing Added version: 2 khổng lồ fix edge cases while retaining backwards compatibility Added extends lớn inherit from another syntax definition. Multiple inheritance is supported, provided all parents have sầu the same base syntax Added hidden_extensions Allow using pop alongside push/set/embed/branch Fixed a performance issue with bounded repeats in regular expressions Syntax tests can now assert that reindent is working as expected Syntax tests can now assert that symbols are indexed Prsự kiện infinite include loops via with_prototype Fixed a number of scope related bugs Fixed some regex capture related bugs Added more information khổng lồ the Show Scope Name popup
OS Compatibility
The following operating systems are no longer supported as a result of adding Pythanh mảnh 3.8: OS X 10.7 OS X 10.8 Windows XPhường. Windows Vista
Platsize Integration
Added automatic dark/light theme and color scheme switching, based on OS theme changes subl - can now be used lớn read from stdin on all platforms Windows will remember their Virtual Desktop/Space/Workspace, controlled by the remember_workspace setting Scroll bars now follow platsize conventions when clicking on them. Configurable using Scroll Bar.sublime-mousebản đồ Mac: Releases use universal binaries with Apple Silicon support Mac: Updated ibé to follow macOS 11 style Mac: Windows will now stay maximized when using Mac window tabs Mac: Fix various issues with the wrong cursor being used Linux: ARM64 builds are now available Linux: Text drag và drop is now supported Linux: Added proper support for Wayland Linux: cảm biến screen events are now handled Linux: Better tư vấn for copy+paste with other applications that don"t tư vấn utf8 text Linux: Native file dialogs lượt thích those for KDE will be used when configured Windows: IME preview & multi-select tư vấn Windows, Linux: Added support for custom title bars Windows, Linux: Use vsync for animations instead of a fixed 60hz Mac, Linux: Improved compatibility with some keyboard layouts
Application Behavior
Added Safe Mode, khổng lồ simulate a clean install. Enabled by passing --safe-mode on the command line or holding shift+alt/option at startup on Windows/macOS respectively Added Help/Report a Bug khổng lồ links lớn our public issue tracker Added options khổng lồ hot_exit setting khổng lồ control behavior when the last window is closed Fixed a possible case where an update loses the current session Settings containing a UTF-8 BOM will no longer fail to load Added tư vấn for previewing TGA & PSD images Added close_deleted_files setting to lớn control behavior of session restoration when files have sầu been deleted on disk Popup windows now use virtual windows for improved performance Improved performance when loading files with very long lines Improved rendering performance on very long lines Improved performance with large session files Data directories have sầu dropped the "3", though if a "3" directory still exists it will be used Mac: Quiông xã Switch Project now works without any windows open Mac, Linux: The cabít và index are now located in the proper location (~/.cađậy & ~/Library/Caches respectively)
Aukhổng lồ Complete
Typing the full tab trigger of a snippet will move sầu it to lớn the top of the results Manually typing in the only available completion will hide the tự động complete popup .sublime-completion files can now specify annotation, kind and details Ranking quality improvements Improved behavior of completions starting with non-word characters auto_complete_trailing_symbols is now disabled by default cancelCompletion will no longer prevent manual invocation Added the auto_complete_when_likely setting Added auto_complete_preserve_order setting Added auto_complete_include_snippets_when_typing setting Added auto_complete_use_index setting Added auto_complete_use_history setting lớn control if previous choices are automatically selected Running the auto_complete comm& when tự động hóa complete is already showing will re-query plugins for results auto_complete_selector now applies to the position before the just-typed in character, matching auto_complete_triggers
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 và mouse scrolling to stop working Linux: When the menu is hidden, pressing alt will show it Mac: Fix Pinyin input đầu vào Mac: Keypad keys can now be bound to lớn 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 lớn bind Ctrl+Break
Editor Control
Added File/Print, which prints via a browser Added Edit/Copy as HTML Build systems now use new annotations functionality instead of phantoms, reducing re-flow Unvì chưng history is preserved in the session Comments & layout are preserved when programmatically editing preferences Caret blinking is disabled by default. Set caret_style setting khổng lồ smooth for previous behavior Improved automatic indentation detection Added relative sầu line numbers, controlled by the relative_line_numbers setting Added setting scroll_context_lines Added setting hide_pointer_while_typing Added setting control_character_style Added Project/Recent/Remove sầu Deleted Added chain comm& khổng lồ run multiple commands in series switch_tệp tin comm& now handles filenames with compound extensions The scroll_past_over setting now supports customizing the scroll distance using numbers from 0.0 to 1.0 Double-clicking a semi-transient sheet"s tab will now fully open the sheet trim_trailing_white_space_on_save sầu can now be phối to lớn "not_on_caret" trim_trailing_white_space_on_save sầu now trims only newly inserted trailing whitespace by mặc định. Controlled via trim_only_modified_white_space setting Expanded draw_white_space setting, supporting leading & trailing Trắng 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 lớn tư vấn languages with upper case characters after start of word Added commands to simplify customizing the active theme or color scheme Quichồng Switch Project will open the selected project in a new window if Ctrl (Cmd on Mac) is held down Added wrap_width_style preference Added console_max_history_lines Added additional settings to control the status bar: show_sidebar_button, show_indentation và show_syntax Console now uses Pyeo hẹp syntax highlighting by mặc định Added Central European (Mac) encoding tư vấn Key Bindings: Join Lines is now on Ctrl+Shift+J / Cmd+Shift+J Key Bindings: Expand Selection to lớn Indentation is no longer bound by mặc định Key Bindings: Ctrl+J / Cmd+J is now used as a prefix for sequential key bindings, similar to Ctrl+K / Cmd+K Code Folding: fixed some edge-case incorrect behaviors Linux: Added tư vấn for alternate phông weight names Linux: Selection is no longer cleared when another application makes a selection Linux: Added Ctrl+Space lớn trigger Auto Complete Linux, Windows: Added Alt+Shift+Left Mouse Button as an alternative sầu column selection binding Linux, Windows: Added Shift+F10 key binding to lớn open the context menu
Text Commands
Macros now record Find commands Reworked Jump Bachồng & Jump Forward commands Improved behavior of Wrap Paragraph Improved behavior of Swap Lines Added Revert Diff Hunk Added Selection/Expvà Selection as a general mechanism lớn expand the selection Selection/Split into lớn Lines will now split a selection inlớn 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 set_file_type comm& now accepts "scope:" prefixed syntax names Fixed sort_lines replacing unicode newlines with regular ones
Snippets
Added auto_complete_include_snippets setting, for disabling tự động complete integration Added ignored_snippets setting, for disabling mặc định snippets
Indexing (Goto Definition)
Files ignored by .gitignore are not indexed by mặc định. 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 Significantly improved load times
Files and Folders
Saving files is now asynchronous Improved performance when adding directories with extreme amounts of files When save_on_focus_lost is enabled, closing an unsaved file will save & cthảm bại it, instead of prompting lớn save sầu Improved behavior of save_on_focus_lost in conjunction with administrator owned files Added reload_file_on_change setting khổng lồ control if files are automatically reloaded or not folder_exclude_patterns and folder_include_patterns now support project-relative sầu paths, by starting the path with // Folders in the sidebar can be recursively expanded via alt+arrow key Added preview_on_cliông chồng setting khổng lồ tư vấn only previewing files on left click Windows: Fixed mở cửa 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 tệp tin change monitoring Linux: Recursively expanding and collapsing sidebar folders now works with alt or super
Find
Find results are highlighted on the scroll bar, controlled by highlight_find_results_in_scrollbar Find in Selection now highlights the area that will be searched Commands can now be run without the find panel having đầu vào focus Fix keypad enter not working in find panel Improved find history behavior Find: Various performance improvements with large files using graceful degradation Find: Fixed adjacent matches being skipped when find in selection is in use Find: Fixed find in selection option not being cleared when changing tabs Find: Selection will no longer be reset after Find All is used when finding in selection Find: Results are now properly highlighted on Find All when close_find_after_find_all is turned off Find in Files: Improved performance with large numbers of matches Find in Files: Can now filter by .gitignore Find in Files: Added Preserve Case option for replacements Find in Files: Fix not recursing inkhổng lồ directories on networked tệp tin systems Find in Files: Hide rulers by default in find results Find in Files: Added Find/Cancel Find in Files menu item Find in Files: Binary tệp tin patterns are applied when an explicit folder is given Find in Files: Using "Find in Folder…" from the sidebar context thực đơn will apply project tệp tin filters Find in Files: Added close_find_after_find_all preference Find in Files: Added close_find_after_replace_all preference
UI
Changed mặc định color scheme khổng lồ Mariana Added Default Dark theme Added themed_title_bar setting Changed file tab style, adding file_tab_style setting Goto Symbol shows more information about symbols Definitions hover popup shows more information about symbols Sheets without input đầu vào focus are now dimmed when using included themes Added a New Tab button in the tab bar, and hide_new_tab_button setting Added show_tab_close_buttons_on_left setting Added highlight_gutter & highlight_line_number settings Added the ability lớn tự động hóa hide the menu, tabs, and status bar when typing. See auto_hide_menu và related settings Window title bar can be controlled by show_rel_path and show_project_first settings Tab context thực đơn now includes Cđại bại Unmodified Files và Cchiến bại Deleted Files entries Side bar row highlights now properly reflect the selected tabs Màu sắc Schemes: Added glow fonts option màu sắc Schemes: Added tư vấn for the underline fonts style Màu sắc Schemes: Added new property, inactive_selection_border màu sắc Schemes: Slightly darkened the background of Mariamãng cầu Màu sắc Schemes: Added support for stippled_underline and squiggly_underline Color Schemes: .hidden-tmTheme files are now supported by the .sublime-color-scheme convertor Themes: Included themes use variables extensively, making customization simpler Themes: Added style property for title_bar element, for better integration with OS "dark modes" Themes: The tree_row for the file with input focus now gets the attribute highlighted Themes: The settings key now supports objects, with keys being settings and values being a boolean, string or array of strings Themes: Added sheet_contents class to lớn text, image và HTML sheets Themes: Added the background_modifier property for sheet_contents Themes: Added a number of new attributes khổng lồ tab_control for richer tab theming Themes: The highlighted attribute is only applied to lớn the most recently active sầu sheet, rather that the most recently active sầu sheet in each group Themes: tab_control & sheet_contents classes now synchronize their highlighted & hover attributes Themes: tooltip controls now tư vấn animations lớn their opađô thị Linux: Show sequential key bindings in the menu Linux: Fixed context thực đơn position being slightly offset
Spell Checking
Updated dictionaries Added tư vấn for non-utf8 dictionaries Updated Hunspell for improved suggestions System dictionaries are now available on Linux Dictionaries in ~/Library/Spelling are now available on Mac
Rendering
Properly query glyph extents in order to avoid cutting off large glyphs Windows, Linux: Added support for per-display subpx ordering Mac: Improved window rekích cỡ performance Windows: Fixed rendering bug where other applications could cause persistent artifacts via window animations Windows: Add support for color emoji
API
Improved coverage of plugin profiling The cProfile module is now included on Linux Added HTML sheets, which can be created via window.new_html_sheet() retruyền thông quảng cáo now works as expected Updated OpenSSL khổng lồ 1.1.1j .sublime-commands files now tư vấn filtering commands via the "platform" key Minihtml now handles list-style-type CSS property - circle, square and disc Minihtml now processes subl: liên kết, running them as commands Minihtml now supports white-space: nowrap Improved minihtml rendering performance EventListener has many new features and bug fixes on_query_completions() can now Return suggestions asynchronously Return comm& completions Include symbol kind information New: on_init() is called once with menu 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() và 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() on_associate_buffer() Fixed on_selection_modified() khổng lồ not be called twice when left clicking Fixed on_selection_modified() begin called on non-selection state changes New TextChangeListener for getting callbacks when a text buffer is changed Can be dynamically bound to a Buffer using TextChangeListener.attach and TextChangeListener.detach Methods: on_text_changed() on_text_changed_async() on_revert() on_revert_async() on_reload() on_reload_async() Sheet has some new methods: file_name() group() close() is_semi_transient() Sheet.is_transient View has a number of changes & improvements Fixed newly created views not having a valid viewport before being returned lớn the API add_regions() now has an annotations parameter, to lớn allow adding a per-region annotation to the buffer. The exec command uses this API for build errors add_regions() calls that add an underline now have that underline applied to lớn whitespace characters show() now takes keep_to_left and animate parameters text_point() & related functions now accept a clamp_column parameter Added "glow" to style_for_scope() Added View.rowcol_utf8(), View.rowcol_utf16(), View.text_point_utf8() & View.text_point_utf16() Added sublime.KEEP_ON_SELECTION_MODIFIED, which can be passed to show_popup() New: element() returns a string describing widget views (find input đầu vào, quick panel đầu vào, etc) New: assign_syntax() sets the syntax used in a view, supports Syntax objects, paths & scope selectors New: syntax() returns the currently mix Syntax New: clones() New: sheet() & sheet_id() New: export_to_html() Window has some changes & improvements: show_quick_panel now accepts placeholder text, via the placeholder argument Added sublime.CLEAR_TO_RIGHT và sublime.SEMI_TRANSIENT for use with open_file() Added the flag sublime.REPLACE_MRU for use with open_file(). When multiple sheets are selected, this flag will cause the opened tệp tin to replace the most recently used sheet with the tệp tin being opened Added the flag sublime.WANT_EVENT for use with show_quick_panel(). This will pass an sự kiện dict lớn 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 open_tệp tin now accepts sublime.ADD_TO_SELECTION as a flag New: selected_sheets(), selected_sheets_in_group() and select_sheets() New: workspace_file_name() New: bring_to_front() sublime.ok_cancel_dialog() & sublime.yes_no_cancel_dialog() now accept an optional title parameter Added sublime.open_dialog, sublime.save_dialog and sublime.select_folder_dialog Syntax definitions can be queried via sublime.list_syntaxes(), sublime.find_syntax(), sublime.syntax_from_path(), sublime.find_syntax_by_name(), sublime.find_syntax_by_scope(), and sublime.find_syntax_for_file(). They return Syntax objects Improved sys.stdout to lớn extkết thúc io.TextIOBase sublime.executable_path(), sublime.packages_path(), sublime.installed_packages_path() and sublime.cache_path() may now be called at import time Added sublime.SymbolRegion và sublime.SymbolLocation with corresponding methods on View và Window Fix a bug with popup being stuck open when a popup is shown in the hide event handler of another popup Added open_project_or_workspace comm& appkết thúc comm& has new, optional disable_tab_translation argument Added modifier_keys lớn event dicts when commands are invoked via a menu Added sublime.DYNAMIC_COMPLETIONS. on_query_completions() can return this flag to indicate that completion results should be re-queried as the user types Added sublime.INHIBIT_REORDER. Returned by on_query_competions() CompletionItem now accepts a details parameter, which can include basic HTML CommandInputHandler now has an initial_selection() method Added Region.to_tuple và Phantom.to_tuple Fixed ViewEventListener.on_load_async() sometimes not being called Added sublime.QuickPanelItem() with tư vấn for kind info, annotations & basic minihtml Plugins may now add selections khổng lồ the Jump Baông chồng history menu via the add_jump_record comm& Plugins may suppress selections from the Jump Back history danh mục via the jump_ignore_selection region Plugins may now disable the default HTML & CSS completions Added Buffer.id() và Buffer.file_name() The TextInputHandler and ListInputHandler classes may define a method want_event() that returns True lớn receive sầu an extra parameter, an event dict, when the validate() & confirm() 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, alternative text, altgr Add sublime.ui_info() for high-level information about the UI Popups will be properly positioned when displayed near the right-h& side of the editor Popups near the right-hand side of the editor with wrapped lines will now be properly sized Added ListInputItem so that ListInputHandler objects can provide kind info, annotations & details Improvements lớn the API, applied to the new Pydong dỏng 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__() Added Settings.to_dict() Settings can now be treated lượt thích 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 Pybé package is preinstalled Significant performance improvements when rapidly printing lớn the Console Added sublime.log_control_tree(). When enabled, clicking with ctrl+alt will log the control tree under the mouse to the console Added sublime.log_fps(). When enabled, the render times are tracked and logged Added logging status functions: sublime.get_log_commands() sublime.get_log_input() sublime.get_log_build_systems() sublime.get_log_result_regex() sublime.get_log_indexing() sublime.get_log_fps() sublime.get_log_control_tree() Logging functions are now toggle when no argument is passed: sublime.log_commands() sublime.log_input() sublime.log_build_systems() sublime.log_result_regex() sublime.log_indexing() sublime.log_fps() sublime.log_control_tree() Backwards Compatibility Break: The sự kiện parameter passed to lớn commands when a minihtml link is clicked changed from a two-element menu to a dict with the keys x and y