Changelog
This issue is to be used to announce potentially breaking changes or new feature additions.
Package developers using sublime_lib in their code may subscribe to this issue in order to be notified of changes.
The plan is to announce new features once they are released and to announce breaking changes at least a week ahead of time before release.
Update: Since this issue was created, GitHub has been updated and you may instead want to follow the project's releases. We will always post the changelog there as well. Deprecation notices will still be posted only here!

Version 1.2
Enhancements
- Added
ResourcePath, a pathlib-inspired representation of a Sublime Text resource path. - Added
new_windowandclose_windowfunctions. - Added
show_selection_panel, a convenient wrapper forsublime.show_quick_panel. ViewStream.seeknow accepts any integer offset for any value ofwhence.- Added
ViewStream.show_cursorand theViewStream(follow_cursor)argument. - Added
new_view(line_endings)argument andLineEndingenum. - All enums in
sublime_libcan be constructed from a member name. Flag enums can be constructed using multiple arguments.
Bug Fixes
- Significantly improved
list_syntaxesandfind_syntax_by_scope:- Correctly observe resource loading order.
- Ignore
tmLanguageandhidden-tmLanguagefiles that are “shadowed” bysublime-syntaxfiles. (#73) - Support
hidden-tmLanguagefiles. (#76)
Documentation Changes
- New single-page design for API reference.
- Many improvements to individual docstrings.
Internal Changes
- 100% test coverage.
- Simplified documentation build process.
- Moved non-exported utility functionality to
_utilsubmodule. - Vendored
pathlib.
Version 1.2.1
Bug Fixes
ResourcePath.from_file_pathnow handles paths within installed packages and default packages.
Version 1.2.2
Bug Fixes
- All
IntFlagdescendants insublime_lib.flagsproperly handle multiple arguments. (#94)
Version 1.3
Enhancements
- New
Panelclass for use with panels other than output panels, such as the console. - Several new methods of
ResourcePath:copyandcopytree.relative_to.add_suffixandremove_suffix.
- The
flagsargument ofshow_selection_panelaccepts more values.
Bug Fixes
sublime_lib.encodings.to_sublimeandfrom_sublimeexplicitly handle lookup errors.
Documentation Changes
- Minor improvements to docs layout. (#102)
Internal Changes
- Use MyPy type checking.
Version 1.4
Enhancements
- Add
ActivityIndicator. (#119) - Add
HoverLocation,QueryContextOperator, andCompletionOptionsenums. (#111)
Bug Fixes
- Fix bug in glob matching. (#117)
- Add missing default value of
-1for thesizeargument ofViewStream.read().
Internal changes
- Add comprehensive type declarations. (#116 )
- If a
pathlibis available, use that instead of the vendored version. (#113) - Improved performance of
ResourcePath.from_file_path(). (#112)
Version 1.5
Enhancements
- ActivityIndicator no longer uses a thread. (#140)
- Two SettingsDicts are equal if and only if they are the same type and refer to the same underling Settings object. (#129)
- Add the Central European (Mac) encoding. (#138)
Bug Fixes
- When an ActivityIndicator is garbage collected, it should stop running. (#153)
- When modifying settings in a
SettingsDict.subscribe()callback, don't call the subscription again if the subscribed settings haven't changed. (#152) - When force-closing views with
close_view()orclose_window(), revert the scratch state of any clones of those views. (#147) - A glob pattern like
foo/**/*shouldn't matchfoo/. (#134)
Documentation Changes
- Improved
SettingsDict.subcribedocumentation to clarify how it detects changes in the selected value.
Internal Changes
- Update documentation for Sphinx 4. (#146)
- Use
sphinxcontrib.prettyspecialmethodsinstead of our original implementation. (#145) - Fix some typing issues for the latest MyPy. (#155)