# Beta Channel Changelog

## Build 3126

Release Date: 23 September 2016

- Added Indexing Status to the Help menu to give more information about what the indexer is doing
- Fixed a compatibility issue with some third party syntax definitions that include `JavaScript.sublime-syntax`
- Reduced the default number of worker processes used for indexing. This can be manually controlled via the `index_workers` setting
- API: Updated OpenSSL to 1.0.2i

## Build 3124

Release Date: 22 September 2016
See also the Blog Post

- Settings now open in a new window, with the default and user settings side-by-side
- Hovering over a symbol will show a popup indicating where it's defined. This is controlled with the show_definitions setting.
- Build errors are now shown inline at the location where they occurred. This is controlled with the show_errors_inline setting.
- Added a menu item and command palette entry to install Package Control
- Various syntax highlighting improvements
- Significant improvements to the Scala syntax definition, with thanks to djspiewak and gwenzek
- Significant improvements to the LaTeX syntax definition, with thanks to randy3k
- Improved Goto Definition performance when a large number of files are open
- Minor improvements to file load times
- Linux and OSX: Improved memory usage
- Fixed Replace not working as expected in conjunction with regex look behinds
- Fixed build systems being unable to use "file_patterns" with the `exec` command
- Corrected tab overlap on HiDPI Windows and Linux configurations
- OSX: Fixed a graphical glitch when switching tabs
- OSX: Fixed crash when entering a surrogate pair via hex input
- Linux: Improved rendering performance for some systems
- File encoding of open files is now stored in the session
- Build Systems may define a cancel command using the "cancel" key
- Syntax: Added `clear_scopes` directive, to give more control over the generated scopes
- Color Schemes: Added `popupCss` key, for defining default popup style sheets
- Color Schemes: Added `phantomCss` key, for defining default phantom style sheets
- minihtml: HiDPI support was added for Windows and Linux
- minihtml: Windows style line endings and single quoted attributes are now supported
- minihtml: Child selectors may now be used in style sheets
- minihtml: The `inherit` CSS value has been implemented
- minihtml: `font-family` stacks may now be used
- minihtml: Support for the `line-height` CSS property was added
- minihtml: Elements may now be relatively positioned
- minihtml: Inline elements support `padding` and `background-color` set
- minihtml: CSS variables and the `var()` function are now supported
- minihtml: Added the CSS color functions `color()` (partial), `rgb()`, `rgba()`, `hsl()` and `hsla()`
- minihtml: Fixed a stack overflow on Windows with too many unclosed tags
- API: Added `Phantom` and `PhantomSet`
- API: Added `ViewEventListener`
- API: Added `View.is_primary()`
- API: Added `EventListener.on_hover(view, point, hover_zone)`
- API: Added functions to get and set visibility of the minimap, status bar, tabs and menu
- API: Modifications to a selection are now constrained to the valid range
- API: Updated Python 3.3 to commit 8e3b9bf917a7, and SQLite to 3.14.1
- Packages: Loading packages will no longer abort if a `.sublime-package` is corrupt
- Packages: Fixed an edge case when loading third party packages from unicode paths on Windows

## Build 3114

Release Date: 12 May 2016

- New C++, JavaScript and Rust syntax definitions with improved accuracy and performance
- Many other syntax highlighting improvements
- OSX: Improved rendering performance, especially on high resolution screens
- Improved word wrap behavior
- Improved spell check behavior
- Improved file indexing behavior with multiple windows open
- Themes may now be switched on the fly without artifacts
- HTML: Pressing enter when between a tag pair will increase indentation
- Some snippets have have been moved into a sub-directories, so custom overrides and key bindings that reference them will need to be updated
- `show_scope_name` command shows the scope in a popup
- Package Development: Added 'Syntax Tests - Regex Compatibility' build variant for evaluating syntax definition performance
- Package Development: Expanded the set of regexes the new regex engine is able to handle
- Syntax Definitions: Fixed some cases where pop matches with back references weren't working correctly
- Fixed some Unicode handling issues in Goto Anything
- Fixed a scenario where changes to `.tmPreferences` files weren't being picked up
- Fixed a 3096 rendering performance regression
- Fixed a 3096 regression in regular expressions when using `\x{nnnn}` escapes
- Fixed a crash that could occur with an invalid result_file_regex settings
- API: Added window.status_message
- API: Changes to how plugins are loaded. This should be transparent, but resolves a number of corner cases
- API: Updated to Python 3.3.6, and now includes the _ssl module on Linux, plus sqlite3 and bz2 on all platforms
- API: Updated OpenSSL to 1.0.2h

## Build 3103

Release Date: 9 February 2016
See also the Blog Post

- Added new Syntax Definition file format, .sublime-syntax
- Added a custom regex engine that matches multiple regexps in parallel, for faster file loading and indexing
- Improved Unicode support, including combining character rendering, character classification in regex searches, and case insensitivity in Goto Anything matching
- Packages are now on GitHub
- Incorporates many community provided improvements to the above packages, with significant improvements to HTML, CSS, JavaScript, Go, D and SQL
- Added Panel Switcher to status bar
- Better handling of troublesome files during indexing
- Improved file change detection
- Added "Profile Events" to the Command Palette, to help identify slow plugins
- Build Systems may now define a list of file name wildcard patterns to trigger on, via the `file_patterns` key
- `prompt_open_file` and related commands now accept an `initial_directory` argument
- Improved indenting behavior when `indent_to_bracket` is enabled
- Spell Checker now reads from manually edited user preferences on the fly
- Stability improvements for Find in Files when using regular expressions that result in significant backtracking
- Fixed file truncation when using hexadecimal encoding
- Fixed brackets in strings influencing auto indent
- Fixed inconsistencies in Goto Anything when selecting symbols
- Fixed tab completion regression in 3081, where h1..h6 HTML completions were not triggering
- Fixed Goto Definition command not working when placed in a submenu
- OSX: Fixed Emoji & Symbols popup failing to insert text in some cases
- Windows: Added support for inserting characters from outside of the BMP
- Windows: `ctrl+alt+p` is no longer bound by default, due to compatibility issues with some keyboard layouts
- Windows: Updated code signing certificate to no longer use SHA1
- Linux: Fixed a file permission issue when running without --wait
- Linux: crash_reporter is statically linked, improving system compatibility
- API: Added Window.is_sidebar_visible() and Window.set_sidebar_visible()
- API: Added View.is_auto_complete_visible()
- API: Added find_output_panel(), destroy_output_panel(), active_panel() and panels()
- API: Added create_output_panel() now accepts an optional parameter, `"unlisted"`

## Build 3083

Release Date: 26 March 2015

- Fixed high CPU usage caused by a corrupt index. This was occuring for some users upgrading from 3065
- Added setting `index_workers` to control the number of threads used for file indexing. By default the number of threads is based on the number of CPU cores. By setting `index_workers` to 1 or 2, indexing will be slower, but less intrusive
- Fixed a crash when showing the Command Palette with an empty .sublime-build file
- Tab completion no longer completes numbers. Edit/Show Completions can still be used for this

## Build 3080

Release Date: 24 March 2015
See also the Blog Post

- Fixed Redo sometimes restoring the selection to the incorrect location
- Reworked how Build Systems are selected (More Information)
- Build Systems may now declare "keyfiles" (e.g., 'Makefile' for the Make build system) to better auto detect which build system to use
- Improved handling of build systems that generate lots of output
- New windows always use the automatic build system, rather than the build system of the last used window
- Command Palette now remembers the last entered string
- Improved change detection for files that disappear and reappear, as happens with disconnected network drives
- `atomic_save` is disabled by default
- Right clicking on a URL will show an "Open URL" menu item
- Added Goto Definition to the context menu
- Improved behavior of Goto Definition when using multiple panes
- Misspelled words can now be added to the dictionary, in addition to being ignored
- Fixed Ignored Words not persisting after exiting
- Fixed a long standing issue with spell checking and non-ascii characters
- Added spelling_selector setting, to control what text is checked for misspellings
- Tweaked handling of syntax definitions and unused captures, resolving an issue with spell checking in Markdown links.
- Goto Anything supports :line:col syntax in addition to :line
- Added Edit Project to the Command palette
- Improved quote auto pairing logic
- Added <current file> option to Find in Files
- Improved Console Panel scrolling behavior
- .tmLanguage files may contain a hidden setting, to indicate they shouldn't be displayed to the user
- Improved some error messages when parsing .tmLanguage files
- `remember_open_files` setting is now defaults to false. Note that this change will have no effect if the `hot_exit` setting is left at its default value of true
- Added auto_complete_cycle setting
- Fixed Minimap refusing to draw on very large windows
- Fixed not being able to click on the selected row of the auto complete popup
- Fixed sidebar icons sometimes being invisible on startup
- Transient sheets (e.g., as created by Goto Anything when previewing files) are no longer added to the Recently Closed list
- Improved scrolling behavior when `line_padding_top` is > 0
- Fixed a bug with scrolling tabs, where a 1 pixel line would occasionally appear underneath them
- Fixed tabset background being set to the wrong color on startup if different colored tabs are used
- Updated to a never version of leveldb, fixing constant low level CPU usage if the index becomes corrupted
- Fixed a crash that could occur when directories are being rapidly deleted and recreated
- Fixed a crash that occurred when dragging rows scrolled out of view in the side bar
- Fixed a long standing plugin_host crash triggered via modal dialogs
- Fixed a typo in the "Save Workspace As" dialog
- Fixed incorrect menu mnemonics
- Linux: Added sudo save
- Windows: Popup windows are able to receive scroll wheel input
- Windows: subl.exe command line helper accepts wildcards
- Windows: Fixed access denied errors that could occur when saving with `atomic_save` disabled
- Windows: Added workaround for broken `std::condition_variable` in MSVC 2012, fixing a crash in `plugin_host`
- Windows: Added more descriptive errors when the Update Installer fails to rename a folder
- Windows: Fixed incorrect window sizing after making a maximised window full screen
- OSX: Added work around for performActionForItemAtIndex: taking an excessively long time in Yosemite. This affected any commands that had a corresponding menu item.
- OSX: Workaround for an OS issue with zero size windows and OpenGL views
- OSX: subl command line tool no longer uses Distributed Objects, resolving some intermittent failures
- Posix: Fixed new files not respecting the umask permission flags
- API: Added View.show_popup() and related functions
- API: Added sublime.yes_no_cancel_dialog()
- API: Added sublime.expand_variables()
- API: Added Window.extract_variables()
- API: Added Sheet.view()
- API: Window.show_quick_panel() now accepts the flag sublime.KEEP_OPEN_ON_FOCUS_LOST
- API: Window.show_quick_panel() will now scroll to the selected item when shown
- API: Fixed on_post_window_command() not getting called

## Build 3065

Release Date: 27 August 2014

- Added sidebar icons
- Added sidebar loading indicators
- Sidebar remembers which folders are expanded
- Tweaked window closing behavior when pressing ctrl+w / cmd+w
- Improved quote auto pairing logic
- Selected group is now stored in the session
- Added remember_full_screen setting
- Fixed a lockup when transitioning from a blinking to a solid caret
- Fixed a crash in plugin_host
- Fixed a crash triggered by Goto Anything cloning views
- Windows: Added command line helper, subl.exe
- OSX: Added 'New Window' entry to dock menu
- Posix: Using correct permissions for newly created files and folders
- API: Updated to Python 3.3.3

## Build 3059

Release Date: 17 December 2013

- Added tab scrolling, controlled by the enable_tab_scrolling setting
- Added image preview when opening images
- Encoding and line endings can be displayed in the status bar with the show_encoding and show_line_endings settings
- Added settings caret_extra_top, caret_extra_bottom and caret_extra_width to control the caret size
- Added index_exclude_patterns setting to control which files get indexed
- Automatically closing windows when the last tab is dragged out
- Changed tab close behavior: the neighboring tab is now always selected
- When the last file is closed, a new transient file is created automatically
- Ctrl+Tab ordering is stored in the session
- Added minimap_scroll_to_clicked_text setting
- Improved error messages when unable to save files
- Auto complete now works as expected in macros
- Minor improvements to Python syntax highlighting
- Vintage: A block caret is now used
- Vintage: Improved behavior of visual line mode with word wrapped lines
- Find in Files will no longer block when FIFOs are encountered
- Linux: Added menu hiding
- Linux: Fixed incorrect handling of double clicks in the Find panel
- Linux: Fixed incorrect underscore display in some menus
- Posix: Fixed new files being created with unexpected permissions
- Windows: SSE support is no longer required for 32 bit builds
- API: Window.open_file now accepts an optional group parameter
- API: Plugins may now call Settings.clear_on_change() within a callback from Settings.add_on_change()
- API: Calling Settings.add_on_change() from within a settings change callback won't cause the added callback to be run

## Build 3047

Release Date: 27 June 2013

- Beta is now open to non-registered users
- Windows and Linux: Added High DPI support
- Improved file change detection
- Improved rendering performance
- HTML tag auto completion is better behaved in script tags
- Fixed a crash on exit that could occur when hot_exit is disabled
- Linux and OSX: atomic_save is adaptively disabled when it's not possible to preserve file permissions
- OSX: Fixed context menus not working when the application is in the background
- Windows: Auto updater supports updating from unicode paths
- API: Plugins in zip files are able to be overridden via files on disk
- API: Added support for the termios module on Linux and OS X
- API: Fixed Selection.contains
- API: Fixed settings objects getting invalidated too early with cloned views

## Build 3033

Release Date: 7 May 2013

- New auto update system for Windows and OS X
- Previewing a file from the side bar will no longer add an entry to the OPEN FILES section of the side bar
- Added Paste from History
- Added setting 'auto_find_in_selection', for S2 style Find in Selection logic
- Find panel has a drop down arrow to select previous items
- Pressing right in the Goto Anything overlay will open the selected file without closing the overlay
- Fixed several crash bugs
- Further startup time improvements
- Improved HTML completions when typing outside of tags
- Fixed Close Tag not respecting self closing tags
- PHP: Improved auto indenting for the alternative control syntax
- Added setting always_prompt_for_file_reload
- Improved handling of deleted files when restoring sessions
- Deleting a file via the side bar will first close the corresponding view, if any
- "Remove all Folders from Project" now prompts to confirm
- Added telemetry. Telemetry is disabled by default, but can be turned on with the enable_telemetry setting
- Using Google Breakpad to automatically report crashes
- Updated syntax highlighting for PHP, Haskell and Pascal
- Symlinks are followed by default in folders added to the side bar
- Windows: Fixed erroneous entries in system menu
- Windows: New style Open Folder dialogs are used on Vista and later
- API: Significantly improved communication speed with plugin_host
- API: Added view.close()
- API: Added view.show_popup_menu()
- API: Added is_valid() method to view and window, to determine if the handle has been invalidated
- API: Added on_post_text_command and on_post_window_command
- API: on_text_command and on_window command are now called when the menu is used
- API: Added sublime.get_macro()
- API: view.substr(point) now has the same semantics as S2 for out of bounds addresses
- API: view.command_history(0, True) now returns the last modifying command, as expected

## Build 3021

Release Date: 14 March 2013

- Linux: Fixed atomic_save working incorrectly with symlinks
- Windows: Fixed a crash under Windows 7 x64
- Fixed a crash that could occur on file open

## Build 3019

Release Date: 12 March 2013

- Added Jump Back and Jump Forward commands, available from the Goto menu
- HTML: Improved completions and auto indent
- HTML: Tags are closed when </ is entered. This is controlled by the auto_close_tags setting
- Smarter word navigation
- File saves are atomic. This can be disabled with the atomic_save setting
- Find and Replace panels automatically resize when multi line strings are entered
- Faster loading of large, plain text files
- Improved console scrolling performance on high resolution displays
- Improved handling of files with extremely long lines
- Minimap view rectangle auto hides (controlled by the always_show_minimap_viewport setting)
- Indexing: Added detection of stuck workers
- Updated C# package
- Added invert_selection command
- CSS: Completions will not be offered when typing in selectors
- Fixed Reveal in Side Bar
- Fixed C++ syntax highlighting for nested class forward declarations
- Exec panel scrolls again
- OSX: Added support for line numbers sent via apple events
- Windows: ok_cancel_dialog uses new visual styles
- Linux: Using the correct version number for the deb files
- API: Added on_text_command() and on_window_command()
- API: Added load_resource(), load_binary_resource() and find_resources()
- API: Added encode_value() and decode_value()
- API: view.sel() supports negative indices
- API: Implemented settings.add_on_change() and settings.clear_on_change()
- API: view.add_regions() will accept package relative paths for the icon
- API: view.add_regions() can show underlines
- API: Added on_pre_close() callback
- API: view.window() will now work even if the view isn't frontmost

## Build 3012

Release Date: 10 February 2013

- Fixed a syntax highlighting regression in 3011

## Build 3011

Release Date: 9 February 2013

- Improved protection against degenerate syntax definitions
- Linux: Fixed version incompatibilities with `libffi`
- OSX: Fixed `exec` command on 10.7
- OSX: Fixed incompatibility between Dictionary lookup and `gpu_window_buffer`
- Objective-C: Improved symbol indexing
- API: Plugins may import modules from `plugin_loaded()`
- API: `sublime.version()`, `sublime.platform()`, `sublime.architecture()`, and `sublime.channel()` may now be used before `plugin_loaded()` is called
- API: Added `view.command_history()`

## Build 3010

Release Date: 3 February 2013

- OSX: Buttery smooth scrolling on Retina displays
- Symbol Indexing: fixed degenerate behavior that could cause an explosion in the number of worker processes
- Symbol Indexing: less worker processes are used, to be more unobtrusive
- Symbol Indexing: better handling of binary files
- OSX: Control+C will cancel the current build
- API: `view.insert()` returns the number of characters inserted

## Build 3009

Release Date: 1 February 2013

- Improved symbol indexing for Ruby
- OSX: Reduced CPU usage when `gpu_window_buffer` is enabled
- Symbol Indexing works on Windows XP
- Can monitor indexing behavior by entering `sublime.log_indexing(True)` in the console
- Tweaked brace matching logic
- Removed undesirable animation during startup
- API: Added _ssl module on OS X and Windows
- API: Fixed ctypes regression in 3008 on OS X
- API: Plugins can define `plugin_loaded()` and `plugin_unloaded()` module functions. `plugin_loaded()` will be called when the API is ready to use.
- API: Added view.find_by_class()
- API: Added view.expand_by_class()
- API: Fixed `on_new_async()`
- API: Tweaking handling of `show_quick_panel` when items is a mixed list of strings and sequences

## Build 3008

Release Date: 30 January 2013

- Fixed Open all with current extension as
- Fixed the Tools/Macros menu
- Linux: Restored compatibility with older glibc versions
- Linux: Added Installed-Size field to the `.deb`
- API: urllib.request can be imported on OS X
- API: Fixed missing _socket module on 32 bit Windows

## Build 3007

Release Date: 30 January 2013

- OSX: Fixed extraneous dock icons
- Added Symbol Indexing support for Scala
- Fixed crash that could occur when using Goto Anything
- Fixed the `ignored_packages` setting not working correctly with zipped packages
- Vintage: Fixed 'o' and 'O'
- API: Fixed `on_query_completions` not working correctly in some circumstance
- API: Re-added `view.score_selector`
- API: Selection.add() no longer ignores the xpos

## Build 3006

Release Date: 29 January 2013

- Added Goto Definition, and Goto Symbol in Project
- Significantly improved startup time
- Significantly improved Replace All performance
- Improved matching algorithm used for Goto Anything and Autocomplete, now accepts transposed characters
- UI: Enhanced pane management
- UI: Previewing files from the sidebar creates a preview tab
- UI: Improved animation in the side bar
- Projects: Multiple workspaces can be created for a single project
- Projects: When adding folders to the sidebar, symlinks are not followed by default. This can be changed by enabling follow_symlinks in the project.
- Build Systems: Added 'shell_cmd', which supersedes 'cmd', with more intuitive syntax
- Build Systems: Better PATH handling behavior on OS X when using shell_cmd.
- Build Systems: 'Make' build system has an improved error message regex
- Build Systems: Syntax file can be specified for the output
- Build Systems: Word wrap is enabled by default
- Find in Files: Improved handling of binary files
- Find in Files: Line numbers are hidden in the output
- Find: Find in Selection will no longer be automatically selected
- Find: Removed Reverse option
- OSX: Improved performance on Retina displays
- OSX: 10.7 or later is required
- OSX: 64 bit only
- OSX: System version of Python is no longer a dependency
- OSX: Italic fonts are synthesized when not available in the typeface
- Linux: .deb files are provided
- Linux: Starting from the command line will daemonize the process by default
- API: Upgraded from Python 2.6 to Python 3.3
- API: Plugins run out-of-process
- API: Plugin API is now threadsafe
- API: Some API events are now run asynchronously
- API: begin_edit() / end_edit() are no longer accessible
- API: Projects are exposed to the API
- API: Added window.settings() and window.template_settings()
- API: show_quick_panel accepts an on_highlighted callback