Releases: Thom1729/Sublime-JS-Custom
v3.0.0
v3.0.0
Designed for Sublime Text 4
Version 3 takes advantage of Sublime Text 4's new features to provide significantly improved highlighting. The most visible change is that arrow function argument lists should always be correctly detected, but there are many more fixes and improvements.
This release still uses the 3.3 plugin runtime. Most likely, a future minor version will switch to the 3.8 runtime.
Greatly improved TypeScript support
Version 3 provides the same high-quality TypeScript support as Sublime 4, which is a great improvement over the beta-quality support from version 2.4. The only currently missing feature should be arrow function type parameter detection, which is not yet implemented in core.
Restructured documentation
The docs have been rearranged to make the readme less monolithic:
- A new “recipes” page provides example configurations for common use cases.
- Complete documentation for syntax configuration options has been moved to a separate page.
- Settings other than syntax configuration options are now documented in the default settings themselves.
Other internal changes
- JS Custom is now “downstream” of the core JSX and TypeScript syntax extensions, just like the base JavaScript syntax itself. Improvements to JSX and TypeScript should be made to the core packages.
- Change the structure of syntax extensions to be similar to ST4's syntax extensions.
- Add a new internal
js_custom_rebase
command to make it more convenient to rebase from new versions of the core JavaScript package. - Add comprehensive type checking with MyPy.
v3.0.2
v2.4.1: Merge pull request #99 from Thom1729/jsx-close-tag-selector
Bug fixes
The following now work for files with the scopes source.ts
and source.tsx
:
- The core
toggle_comment
command. - The
jsx_close_tag
command.
v3.0.3
Fix JSX regression.
v3.0.5
v2.4.0
JS Custom now supports TypeScript!
TypeScript support is currently beta-quality, meaning that it should work well for most people but that I expect there to be bugs. If you find a bug, please help out JS Custom by reporting it on the issue tracker at https://github.com/Thom1729/Sublime-JS-Custom/issues.
Known issues at present:
- Type arguments in method calls and template strings are not implemented.
- Arrow function type parameters are not implemented.
- Arrow function detection is iffy.
- TypeScript 4.0 features are not yet implemented.
- Some features like the built-in
toggle_comment
command do not work if you specify a custom scope, includingsource.ts
.
The next major release will require Sublime 4 (TODO: fix wording)
Sublime Text 4 offers major improvements to the syntax highlighting engine that will allow JS Custom to provide more accurate highlighting with fewer corner cases. JS Custom version 3.0 will require Sublime Text 4 and will not run on older versions. The 2.4 release will still be available for Sublime 3, but it will not receive new feature updates.
The known TypeScript issues listed above will definitely be fixed for 3.0, but they may not be completely fixed in 2.4.
Other changes.
- When the
rebuild_syntaxes
command deletes a compiled syntax because the configuration doesn't exist anymore, it will find any views using that syntax and reassign them to a default to avoid error messages. This is configurable via thereassign_when_deleting
setting. - When
rebuild_syntaxes
is run with an explicitversions
argument, it will never delete syntaxes that are not specified inversions
.
v2.4.0-beta.4
- Add default configurations for TypeScript, with and without JSX.
- Fix a bug where JS Custom would try to rebuild a deleted configuration, causing an error.
- When
rebuild_js_custom_syntaxes
is called with aversions
argument, don't delete syntaxes that don't matchversions
. - Add separate tests for TypeScript with and without JSX.
v2.4.0-beta.3
- Implement old-style type assertions via the
old_style_assertions
sub-option. - Support generic parameters in
extends
andimplements
clauses.
v2.4.0-beta.2
A few TypeScript fixes:
- String literal members in enum declarations.
- Export syntax for interfaces and namespaces.
- Different scoping for
namespace
keyword. - Optional properties in class declarations.
v2.4.0-beta.1
Same as v2.4.0-alpha.10, but merged onto the master branch.