As featured in:

  • Essential Apps to Install on your Windows PC or Mac
  • The All-time Portable Apps for Your Software Toolbox
  • Essential Apps You Should Install on a New PC Running Windows or macOS

Sublime Text is bachelor for Mac, Windows and Linux. 1 license is all you demand to utilize Sublime Text on every computer you own, no matter what operating organization it uses. Sublime Text uses a custom UI toolkit, optimized for speed and dazzler, while taking advantage of native functionality on each platform.

Goto Annihilation

Utilise Goto Anything to open files with but a few keystrokes, and instantly leap to symbols, lines or words.

Triggered with Ctrl+P, information technology is possible to:

  • Type part of a file name to open it.
  • Blazon @ to jump to symbols, # to search within the file, and : to get to a line number.

These shortcuts can be combined, and so tp@rf may take you to a part readfile within a file textparser.py. Similarly, tp:100 would take you to line 100 of the same file.

Multiple Selections

Make ten changes at the same time, not i change x times. Multiple selections allow you to interactively alter many lines at once, rename variables with ease, and manipulate files faster than ever.

Try pressing Ctrl+Shift+50 to separate the selection into lines and Ctrl+D to select the next occurrence of the selected word. To make multiple selections with the mouse, take a look at the Column Selection documentation.

Control Palette

The Command Palette holds infrequently used functionality, like sorting, changing the syntax and changing the indentation settings. With just a few keystrokes, you lot can search for what you want, without ever having to navigate through the menus or remember obscure key bindings.

Bear witness the Command Palette with Ctrl+Shift+P.

Distraction Free Mode

When you need to focus, Distraction Free Mode is there to help you lot out. Distraction Complimentary Way is total screen, chrome free editing, with nil but your text in the center of the screen. You lot tin incrementally bear witness elements of the UI, such as tabs and the find panel, as you need them.

You tin enter Distraction Free Mode using the View/Enter Distraction Free Mode menu.

Divide Editing

Get the well-nigh out of your wide screen monitor with split editing support. Edit files side by side, or edit two locations in the one file. Yous can edit with as many rows and columns equally you wish.

Take advantage of multiple monitors by editing with multiple windows, and using multiple splits in each window.

Take a expect at the View/Layout carte for split editing options. To open multiple views into the one file, apply the File/New View into File card item.

Instant Project Switch

Projects in Sublime Text capture the full contents of the workspace, including modified and unsaved files. You can switch between projects in a manner like to Goto Anything, and the switch is instant, with no save prompts - all your modifications volition be restored next time the projection is opened.

Customize Anything

Key Bindings, Menus, Snippets, Macros, Completions and more - just most everything in Sublime Text is customizable with simple JSON files. This organisation gives you flexibility as settings can be specified on a per-file type and per-project basis.

Plugin API

Sublime Text has a powerful, Python based plugin API. Forth with the API, information technology comes with a built in Python console to interactively experiment in real time.

What'due south New:

The start stable release of Sublime Text 4 has finally arrived! We've worked hard on providing improvements without losing focus on what makes Sublime Text keen. In that location are some new major features that we hope will significantly improve your workflow and a countless number of minor improvements across the board.

  • Improved OpenGL rendering performance by automatically batching together controls
  • Added back up for Chinese standard GB18030 file encoding
  • Added support for CP862 file encoding
  • Resolved diverse bug tracking symlinks in the side-bar
  • Avert session data abuse if a crash happens while saving the session
  • subl -northward will reuse an existing empty window if the application isn't running
  • Binary files now show every bit "Binary" syntax instead of "Obviously Text" in the status bar
  • Stock-still wildcards incorrectly matching subpaths (For settings similar "folder_exclude_patterns")
  • Made "find_in_files_max_result_size" not utilise when replacing
  • Fixed crash when loading invalid grid layout from session
  • Fixed spell checker incorrectly marking some words as correct if they tin can't exist encoded
  • Fixed rendering club of successive popups
  • Stock-still packet subfolders sometimes not existence loaded when matching the "ignored_packages" setting
  • Fixed layout instability in side bar causing things to occasionally be rendered 1 pixel off
  • Added some missing glyphs to "draw_unicode_white_space": "all"
  • Added "draw_unicode_bidi" setting for drawing unicode bidi characters
  • Added "select_across_groups" setting for opting into the erstwhile side bar choice behavior when selecting a unmarried file
  • Fixed "close_windows_when_empty" setting not working
  • Fixed goto-definition preview non closing on escape
  • Fixed quick panel closing on enter when there are no matching entries
  • Syntax Highlighting: Stock-still backtracking breaking when creating phantoms or doing a context backtrace
  • Syntax Highlighting: Fixed regression with some syntax definitions introduced in 4115
  • Linux: Added missing libcurl dependency for package managers
  • Linux: Stock-still GTK overriding LC_NUMERIC environment variable breaking serialization
  • Windows: Fixed command line not taking focus after closing a waited on file
  • Windows: Fixed crash when OpenGL initialization fails
  • Mac: Aliases are at present resolved when using drag and driblet
  • Mac: Stock-still window sometimes beingness restored on startup when "create_window_at_startup" is disabled
  • Mac: Fixed native tabs restoration resulting in odd behavior
  • Mac: Stock-still subl -b non working
  • Mac: Stock-still terminal not being focused after waiting on file
  • Mac: Fixed Window > Merge All Windows merging minimized windows
  • Mac: Stock-still diverse inconsistencies when opening files from finder
  • API: The show_panel command for the notice and find in files panels can now have "pattern" and "replace_pattern" arguments
  • API: ListInputHandler.preview is now called with None when no items match the current filter
  • API: Fixed case where Window.project_data() could return an invalid value
  • API: Opening a new pane moves currently selected sheets
  • API: Added Window.move_sheets_to_group
  • API: The commands move_to and move_to_neighbouring at present move currently selected sheets

A huge thank you goes out to all the beta testers on discord and all the contributors to our packages.

License Changes

Sublime Text license keys are no longer tied to a single major version, instead they are now valid for all updates inside iii years of buy. After that, you volition nevertheless have total access to every version of Sublime Text released within the 3 year window, merely newer builds will required a license upgrade. These are the same license terms we use for Sublime Merge, and they permit us to deliver more frequent and heady updates as soon equally they're ready, without having to roll them into a new major version.

Tab Multi-Select

File tabs have been enhanced to brand carve up views effortless, with back up throughout the interface and congenital-in commands. The side bar, tab bar, Goto Anything, Goto Definition, auto consummate and more have all been tweaked to make code navigation easier and more than intuitive than ever.

Apple Silicon and Linux ARM64

Sublime Text for Mac now includes native support for Apple Silicon processors. Linux ARM64 builds are too bachelor for devices like the Raspberry Pi.

Refreshed UI

The Default and Adaptive themes accept been refreshed with new tab styles and inactive pane dimming. Themes and Color Schemes support auto dark-fashion switching. The Adaptive theme on Windows and Linux now features custom title confined.

Context-Aware Auto Consummate

The machine complete engine has been rewritten to provide smart completions based on existing code in a project. Suggestions are besides augmented with info virtually their kind, and provide links to definitions.

TypeScript, JSX and TSX Support

Support for one of the most popular new programming languages is now shipped by default. Utilise all of the smart syntax-based features of Sublime Text inside 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, and load times are faster than ever.

GPU Rendering

Sublime Text can at present utilize your GPU on Linux, Mac and Windows when rendering the interface. This results in a fluid UI all the manner up to 8K resolutions, all while using less power than earlier.

Updated Python API

The Sublime Text API has been updated to Python 3.8, while keeping backwards compatibility with packages built for Sublime Text 3. The API has been significantly expanded, adding features that permit plugins like LSP to work ameliorate than ever. Read the revamped documentation here.

Compatibility

Sublime Text 4 is fully compatible with version iii. It volition pickup your session and configuration automatically. If yous'd prefer however, it is possible to continue things split up.

Release Highlights

  • Multi-select tabs to view them side-by-side
  • Context-aware auto complete by finding like code elsewhere in the current project
  • Symbols take kind data that is shown for completions and navigation
  • Theme can follow system nighttime style preference and title confined can be themed on all platforms
  • Syntax highlighting now supports dorsum-tracking and inheritance
  • Many syntax highlighting improvements as well every bit builtin TypeScript, JSX and TSX back up
  • GPU rendering for improved performance. Enabled past default on macOS
  • ARM64 support for Linux and macOS (Apple tree Silicon)
  • Many plugin API additions peculiarly to better support plugins similar LSP
  • Python three.8 support for plugins

GPU Rendering

  • New hardware_acceleration setting will blended the UI on the GPU
  • By default, GPU rendering is enabled on Mac, and disabled on Windows and Linux
  • Details well-nigh the active GPU will exist displayed in the Console

Context-aware Auto Complete

  • The auto complete engine now suggests completions based on patterns in existing lawmaking
  • Uses the entire project equally a source, instead of merely the electric current view
  • Plugins may specify symbol kind info to 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 preview them simultaneously
  • Included themes have a tab connector joining the active canvas and tab when using canvas multi-select
  • The sidebar can now select multiple files using alt
  • Goto Anything allows opening tabs side-past-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 menu Selection/Tab Selection contains diverse options for manipulating tab multi-select
  • File/New View into File has been replaced past File/Split View using multi-select

Python three.8 API

  • Added a Python 3.viii API environment for plugins
  • Plugins tin can choose Python version via .python-version file in plugin binder
  • Existing plugins are fully supported via legacy Python 3.3 API
  • Many API improvements and additions - run across API section for more details

Goto Symbol

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

Syntax Definitions

  • Added out of the box support for TypeScript, JSX and TSX - cheers to Thomas Smith
  • Added ability to "co-operative" within syntax definitions, for non-deterministic or multi-line constructs
  • Many syntax highlighting improvements, including pregnant improvements to:
  • Erlang, with thanks to deathaxe
  • Significantly improved load times, lucifer times and reduced cache size on disk
  • embed is at present lazy loaded, resulting in much higher performance for syntaxes like markdown
  • Added branch and fail for not-deterministic parsing
  • Added version: 2 to set border cases while retaining backwards compatibility
  • Added extends to inherit from some other syntax definition. Multiple inheritance is supported, provided all parents have the same base syntax
  • Added hidden_extensions
  • Let using popular aslope push/set up/embed/co-operative
  • Stock-still a operation upshot with bounded repeats in regular expressions
  • Syntax tests tin can now assert that reindent is working as expected
  • Syntax tests can at present assert that symbols are indexed
  • Prevent infinite include loops via with_prototype
  • Fixed a number of scope related bugs
  • Fixed some regex capture related bugs
  • Added more information to the Evidence Scope Proper noun popup

Bone Compatibility

The following operating systems are no longer supported as a outcome of adding Python three.8:

  • OS X 10.7
  • Bone X ten.8
  • Windows XP
  • Windows Vista

Platform Integration

  • Added automatic dark/light theme and colour scheme switching, based on Bone theme changes
  • subl - tin can at present exist used to read from stdin on all platforms
  • Windows will think their Virtual Desktop/Infinite/Workspace, controlled by the remember_workspace setting
  • Ringlet bars at present follow platform conventions when clicking on them. Configurable using Whorl Bar.sublime-mousemap
  • Mac: Releases use universal binaries with Apple Silicon support
  • Mac: Updated icon to follow macOS 11 mode
  • Mac: Windows will now stay maximized when using Mac window tabs
  • Mac: Fix various bug with the wrong cursor beingness used
  • Linux: ARM64 builds are now available
  • Linux: Text drag and drop is now supported
  • Linux: Added proper support for Wayland
  • Linux: Touch screen events are now handled
  • Linux: Meliorate support for copy+paste with other applications that don't support utf8 text
  • Linux: Native file dialogs like those for KDE will be used when configured
  • Windows: IME preview and multi-select support
  • Windows, Linux: Added support for custom title bars
  • Windows, Linux: Use vsync for animations instead of a stock-still 60hz
  • Mac, Linux: Improved compatibility with some keyboard layouts

Application Beliefs

  • Added Safe Mode, to simulate a clean install. Enabled by passing --safe-way on the control line or holding shift+alt/selection at startup on Windows/macOS respectively
  • Added Assist/Report a Bug to link to our public issue tracker
  • Added options to hot_exit setting to control behavior when the terminal window is closed
  • Stock-still a possible case where an update loses the electric current session
  • Settings containing a UTF-viii BOM will no longer fail to load
  • Added support for previewing TGA and PSD images
  • Added close_deleted_files setting to control beliefs of session restoration when files take been deleted on deejay
  • Popup windows now utilize virtual windows for improved functioning
  • 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 dropped the "3", though if a "iii" directory still exists information technology volition be used
  • Mac: Quick Switch Projection now works without any windows open
  • Mac, Linux: The cache and index are now located in the proper location (~/.enshroud and ~/Library/Caches respectively)

Machine Complete

  • Typing the full tab trigger of a snippet will motility information technology to the top of the results
  • Manually typing in the only bachelor completion will hide the car consummate popup
  • .sublime-completion files tin 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 foreclose 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 to command if previous choices are automatically selected
  • Running the auto_complete command when automobile complete is already showing will re-query plugins for results
  • auto_complete_selector now applies to the position before the simply-typed in character, matching auto_complete_triggers

Input Handling

  • Modifier key taps tin now be used every bit 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 at present 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 cease working
  • Linux: When the carte du jour is hidden, pressing alt will prove it
  • Mac: Fix Pinyin input
  • Mac: Keypad keys can now be bound to as expected
  • Mac: Added cardinal 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+Interruption

Editor Command

  • Added File/Print, which prints via a browser
  • Added Edit/Re-create as HTML
  • Build systems at present utilise new annotations functionality instead of phantoms, reducing re-menstruum
  • Undo history is preserved in the session
  • Comments and layout are preserved when programmatically editing preferences
  • Caret blinking is disabled by default. Set caret_style setting to smooth for previous beliefs
  • Improved automated indentation detection
  • Added relative 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 Deleted
  • Added chain command to run multiple commands in series
  • switch_file command now handles filenames with chemical compound extensions
  • The scroll_past_end setting now supports customizing the coil distance using numbers from 0.0 to 1.0
  • Double-clicking a semi-transient sail's tab will now fully open the sail
  • trim_trailing_white_space_on_save tin can now be gear up to "not_on_caret"
  • trim_trailing_white_space_on_save now trims simply newly inserted trailing whitespace by default. Controlled via trim_only_modified_white_space setting
  • Expanded draw_white_space setting, supporting leading and trailing white infinite
  • Unicode white space characters, such every bit the zero width no-pause space, are now drawn as hex values. Controlled via draw_unicode_white_space setting
  • Fixed spelling correction to support languages with upper case characters subsequently offset of give-and-take
  • Added commands to simplify customizing the active theme or color scheme
  • Quick Switch Project will open up the selected projection 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 and show_syntax
  • Console now uses Python syntax highlighting past default
  • Added Cardinal European (Mac) encoding support
  • Key Bindings: Bring together Lines is now on Ctrl+Shift+J / Cmd+Shift+J
  • Key Bindings: Expand Selection to Indentation is no longer jump by default
  • Key Bindings: Ctrl+J / Cmd+J is now used every bit a prefix for sequential key bindings, like to Ctrl+K / Cmd+K
  • Code Folding: fixed some edge-case incorrect behaviors
  • Linux: Added support for alternate font weight names
  • Linux: Choice is no longer cleared when another application makes a choice
  • Linux: Added Ctrl+Space to trigger Machine Complete
  • Linux, Windows: Added Alt+Shift+Left Mouse Button as an culling column selection binding
  • Linux, Windows: Added Shift+F10 cardinal bounden to open the context menu

Text Commands

  • Macros now record Find commands
  • Reworked Spring Back and Jump Forward commands
  • Improved behavior of Wrap Paragraph
  • Improved behavior of Swap Lines
  • Added Revert Unequal Hunk
  • Added Selection/Expand Selection as a general machinery to expand the selection
  • Selection/Split up into Lines volition now split a selection into words if the pick doesn't contain whatsoever newlines
  • Prove a sum in the status bar when in that location are multiple selections and all of them are numbers
  • set_file_type command at present accepts "telescopic:" prefixed syntax names
  • Stock-still sort_lines replacing unicode newlines with regular ones

Snippets

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

Indexing (GoTo Definition)

  • Files ignored past .gitignore are not indexed past 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 beliefs 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 and shut it, instead of prompting to salvage
  • 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 non
  • folder_exclude_patterns and folder_include_patterns at present back up project-relative paths, by starting the path with //
  • Folders in the sidebar can be recursively expanded via alt+arrow key
  • Added preview_on_click setting to support only previewing files on left click
  • Windows: Stock-still Open Containing Folder for UNC paths
  • Windows: Fixed Salve dialog not showing for new files with command characters on the outset line
  • Windows: Fixed Ctrl+Backspace inserting a DEL grapheme when a dialog is open in the background
  • Linux: Fix recreated directories not working correctly with file change monitoring
  • Linux: Recursively expanding and collapsing sidebar folders at present 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 tin now be run without the find panel having input focus
  • Fix keypad enter not working in notice panel
  • Improved find history beliefs
  • Notice: Diverse operation improvements with large files using svelte deposition
  • Find: Fixed side by side matches being skipped when find in selection is in utilize
  • Find: Stock-still observe in selection option not being cleared when changing tabs
  • Find: Choice will no longer be reset later on Find All is used when finding in option
  • Notice: Results are at present properly highlighted on Find All when close_find_after_find_all is turned off
  • Find in Files: Improved operation with big numbers of matches
  • Find in Files: Can at present filter by .gitignore
  • Find in Files: Added Preserve Case option for replacements
  • Find in Files: Fix not recursing into directories on networked file systems
  • Notice in Files: Hibernate rulers by default in notice results
  • Find in Files: Added Find/Cancel Find in Files menu item
  • Observe in Files: Binary file patterns are applied when an explicit folder is given
  • Find in Files: Using "Find in Folder…" from the sidebar context card will apply projection file filters
  • Detect in Files: Added close_find_after_find_all preference
  • Find in Files: Added close_find_after_replace_all preference

UI

  • Changed default color scheme to Mariana
  • Added Default Dark theme
  • Added themed_title_bar setting
  • Changed file tab mode, adding file_tab_style setting
  • Goto Symbol shows more information about symbols
  • Definitions hover popup shows more information about symbols
  • Sheets without input 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 and highlight_line_number settings
  • Added the ability to auto hide the bill of fare, tabs, and status bar when typing. See auto_hide_menu and related settings
  • Window title bar tin exist controlled by show_rel_path and show_project_first settings
  • Tab context menu at present includes Close Unmodified Files and Close Deleted Files entries
  • Side bar row highlights now properly reflect the selected tabs
  • Color Schemes: Added glow font option
  • Color Schemes: Added support for the underline font style
  • Color Schemes: Added new property, inactive_selection_border
  • Colour Schemes: Slightly darkened the background of Mariana
  • Colour Schemes: Added support for stippled_underline and squiggly_underline
  • Colour Schemes: .hidden-tmTheme files are now supported past the .sublime-color-scheme convertor
  • Themes: Included themes use variables extensively, making customization simpler
  • Themes: Added manner property for title_bar element, for ameliorate integration with Os "night modes"
  • Themes: The tree_row for the file with input focus at present gets the attribute highlighted
  • Themes: The settings cardinal now supports objects, with keys being settings and values being a boolean, string or array of strings
  • Themes: Added sheet_contents class to text, epitome and HTML sheets
  • Themes: Added the background_modifier property for sheet_contents
  • Themes: Added a number of new attributes to tab_control for richer tab theming
  • Themes: The highlighted attribute is but applied to the most recently active canvass, rather that the nigh recently active sheet in each group
  • Themes: tab_control and sheet_contents classes now synchronize their highlighted and hover attributes
  • Themes: tooltip controls now back up animations to their opacity
  • Linux: Show sequential key bindings in the menu
  • Linux: Fixed context card position being slightly starting time

Spell Checking

  • Updated dictionaries
  • Added support for non-utf8 dictionaries
  • Updated Hunspell for improved suggestions
  • System dictionaries are at present available on Linux
  • Dictionaries in ~/Library/Spelling are now available on Mac

Rendering

  • Properly query glyph extents in club to avert cutting off large glyphs
  • Windows, Linux: Added support for per-display subpixel ordering
  • Mac: Improved window resize performance
  • Windows: Stock-still rendering issues 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 tin be created via window.new_html_sheet()
  • repr now works equally expected
  • Updated OpenSSL to 1.1.1j
  • .sublime-commands files now support filtering commands via the "platform" key
  • Minihtml at present handles listing-style-blazon CSS property - circle, foursquare and disc
  • Minihtml now processes subl: links, running them as commands
  • Minihtml now supports white-space: nowrap
  • Improved minihtml rendering performance
    • EventListener has many new features and problems fixeson_query_completions() can now
    • Return suggestions asynchronously
    • Render command completions
    • Include symbol kind information
  • New: on_init() is called once with listing of views opened before plugin was loaded
  • New: on_exit() is chosen immediately before plugin_host exits, after API is shut downwardly
  • 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()
    • on_associate_buffer()
  • Stock-still on_selection_modified() to non be called twice when left clicking
  • Stock-still on_selection_modified() begin called on not-selection country changes
  • New TextChangeListener for getting callbacks when a text buffer is inverse
  • Can be dynamically jump to a Buffer using TextChangeListener.adhere and TextChangeListener.detach
  • Methods:
  • on_text_changed()
  • on_text_changed_async()
  • on_revert()
  • on_revert_async()
  • on_reload()
  • on_reload_async()
  • Canvass has some new methods:
    • file_name()
    • group()
    • close()
    • is_semi_transient()
    • Canvas.is_transient
  • View has a number of changes and improvements
    • Fixed newly created views not having a valid viewport earlier being returned to the API
    • add_regions() now has an annotations parameter, to allow calculation a per-region annotation to the buffer. The exec command uses this API for build errors
    • add_regions() calls that add an underline now take that underline practical to whitespace characters
    • show() now takes keep_to_left and animate parameters
    • text_point() and 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() and View.text_point_utf16()
    • Added sublime.KEEP_ON_SELECTION_MODIFIED, which can exist passed to show_popup()
    • New: element() returns a string describing widget views (find input, quick panel input, etc)
    • New: assign_syntax() sets the syntax used in a view, supports Syntax objects, paths and scope selectors
    • New: syntax() returns the currently set Syntax
    • New: clones()
    • New: sheet() and sheet_id()
    • New: export_to_html()
  • Window has some changes and improvements:
    • show_quick_panel now accepts placeholder text, via the placeholder argument
    • Added sublime.CLEAR_TO_RIGHT and 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 file to replace the near recently used sail with the file being opened
    • Added the flag sublime.WANT_EVENT for use with show_quick_panel(). This will pass an event dict to the on_select callback. The dict will contain the key modifier_keys, which will be a dict that may contain nix or more than of the keys: primary, ctrl, super, alt, altgr
    • open_file now accepts sublime.ADD_TO_SELECTION every bit a flag
    • New: selected_sheets(), selected_sheets_in_group() and select_sheets()
    • New: workspace_file_name()
    • New: bring_to_front()
  • sublime.ok_cancel_dialog() and 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 extend io.TextIOBase
  • sublime.executable_path(), sublime.packages_path(), sublime.installed_packages_path() and sublime.cache_path() may at present exist called at import fourth dimension
  • Added sublime.SymbolRegion and sublime.SymbolLocation with respective methods on View and Window
  • Set up a problems with popup being stuck open when a popup is shown in the hide event handler of some other popup
  • Added open_project_or_workspace command
  • append control has new, optional disable_tab_translation argument
  • Added modifier_keys to event dicts when commands are invoked via a menu
  • Added sublime.DYNAMIC_COMPLETIONS. on_query_completions() can return this flag to signal that completion results should be re-queried as the user types
  • Added sublime.INHIBIT_REORDER. Returned by on_query_competions()
  • CompletionItem at present accepts a details parameter, which can include basic HTML
  • CommandInputHandler at present has an initial_selection() method
  • Added Region.to_tuple and Phantom.to_tuple
  • Fixed ViewEventListener.on_load_async() sometimes non being called
  • Added sublime.QuickPanelItem() with back up for kind info, annotations and basic minihtml
  • Plugins may at present add together selections to the Jump Back history list via the add_jump_record command
  • Plugins may suppress selections from the Spring Back history list via the jump_ignore_selection region
  • Plugins may now disable the default HTML and CSS completions
  • Added Buffer.id() and Buffer.file_name()
  • The TextInputHandler and ListInputHandler classes may define a method want_event() that returns Truthful to receive an extra parameter, an event dict, when the validate() and confirm() methods are called. The dict will contain the key modifier_keys, which will exist a dict that may comprise naught or more of the keys: primary, ctrl, super, alt, altgr
  • Add together sublime.ui_info() for loftier-level information about the UI
  • Popups will be properly positioned when displayed near the right-hand side of the editor
  • Popups almost the right-mitt side of the editor with wrapped lines will at present be properly sized
  • Added ListInputItem so that ListInputHandler objects can provide kind info, annotations and details
  • 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() at present returns bytes instead of bytearray
    • Added Selection.__iter__()
    • Added Region.__iter__()
    • Added Region.__contains__()
    • Added Settings.to_dict()
    • Settings can now be treated like a dict
    • Plugins starting with _ volition be ignored, __all__ global volition be respected
    • Events won't be reported until plugin_loaded() has been chosen
    • .pyc files tin can now be imported when contained within .sublime-packet files, although they volition not be scanned for plugins
  • The certifi Python package is preinstalled
  • Significant operation improvements when speedily printing to 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 at present 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 event parameter passed to commands when a minihtml link is clicked inverse from a two-element listing to a dict with the keys 10 and y