Releases: bathos/Ecmascript-Sublime
Support arbitrary export names, add missing / new built-ins, and fix some misc bugs
End of ES2021
Added:
- Logical assignment operators
&&=
,??=
(||=
was already present) - Ergonomic private field brand checks (
#foo in bar
) - Class static blocks
- Import assertions
The first two belong to ES2021 and ES2022 respectively. The latter two are stage 3 proposals. Logical assignment was the final ES2021 syntactic feature that wasn’t yet supported.
Removed:
- The old bind operator proposal (
::
) has been dead for too many years to
justify keeping around. Goodbye old friend — you were actually pretty cool. - The scope
keyword.operator.assignment.conditional.mallet
was changed to
align with the pattern established for other augmented assignment operators.
Fixed:
- Private generator methods no longer cause the class body context to stick
around past the end of the actual class body.
Simple (Bare) Syntax Directive Names
Per #69, syntax directives now allow for bare names, meaning that the syntax:
part is optional.
i.e., /* syntax: {SYNTAX} */ `...`
can now be written as /* {SYNTAX} */ `...`
.
Improved Interps in Embedded ES
I write a lot of code generators and frequently embed javascript inside template literals. This update significantly improves highlighting for the embedded syntax after being interrupted by an interpolated value.
Here is a quick demo of just a few places where you can now safely use interpolation as if you are substituting an identifier and still have beautiful highlighting:
Symbols in Embedded Syntax
Added js scopes to preferences so that symbols are indexed in embedded syntax.
Embedded JavaScript
Ecmascript Safe Mode will now load for embedded JavaScript (taking precedence over ST3's default JavaScript syntax) for example in HTML, Svelte, Pug, etc.
Quick Patch for IDs and Nested Syntaxes
A few patches for the latest minor release 2.2.0.
Grawlix symphony
ES2020 Features
??
Nullish coalescing operator for when you just need to coalesce some nullishness?.
Optional chaining operator like in coffeescript but in a vaporwave nostalgia way
Hött Proposals
|>
Chained application incantation from the F𝄰 pipeline and Smart pipeline proposals#
Topic reference rune from the F𝄰 pipeline proposal?
Phantom argument sigil from the Partial application proposal
Fixes
- Bare numeric literal property keys in object literals:
- Are matched correctly in some situations where they previously weren’t
- Are scoped more consistently when they’re appearing as method names, etc
- Accessors in object literals no longer go weird when used with computed properties
- The ident "static" is now treated as if a reserved word because other cases which are actually conditional, like "let," also are, and this seems pretty reasonable since we generally presume module over script and strict over sloppy.
- Bunch of interrelated fixes and simplifications concerning IdentifierName, e.g.
null\u0041
is now recognized as one identifier, not the literalnull
followed by the identifier\u0041
.
Interpolation in HTML strings
Closes #70 .
Patches to nested syntaxes
Includes patches for HTML nested syntax, plugins, and the core language.