-
st4143-4.3.1 Stable
released this
2026-09-13 05:45:24 +00:00 | 0 commits to master since this releasePatch release for Sublime Text 4, build 4143 and newer.
- Recognize
.svelte.jsand.svelte.tsmodules with the existing rune-aware grammars, available as JavaScript (Svelte) and TypeScript (Svelte) in the syntax picker. - Fix
eachblocks with TypeScript assertions containing three levels of nested parentheses, tuples, or object types. Multiline assertion limitations remain documented. - Add regression coverage for module runes and Svelte syntax inside MDSVEX headings, lists, blockquotes, and script blocks.
- Update supported-file, dependency, and testing documentation; correct the unsupported
type="text/ts"example. - Run CI weekly and pin Less/Sass dependencies for historical Sublime versions, while retaining upstream tracking for the latest build.
All four syntax-test files pass with the official Sublime Text 4211 parser, and the complete CI matrix passes on builds 4143, 4152, 4169, 4180, and latest.
Changes: #52
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Recognize
-
st4143-4.3.0 Stable
released this
2026-08-24 19:40:20 +00:00 | 2 commits to master since this releaseModern Svelte 5 syntax
- JavaScript-style comments between attributes:
//and/* */highlight as comments inside element and component tags, without touching unquoted values or/>. (#51) - Component member tags of any depth:
<Foo.Bar.Baz>,<foo.bar.baz>, and$in component names, with each accessor scoped as punctuation. (#51) - Svelte 5 event attributes: any
on*attribute with a single-expression value (onclick={...}, includingon={x}andon-click={x}) is scoped as a Svelte event, styled like theon:directive and wrapped inmeta.attribute-with-value.event.html. String values remain plain attributes, mirroring the compiler'sis_event_attribute. (#51) - Runes get a dedicated scope (
support.function.rune.svelte) in template expressions and in<script>/<script lang="ts">:$state(.raw|.snapshot|.eager),$derived(.by),$effect(.pre|.tracking|.root|.pending),$props(.id),$bindable,$inspect(.trace),$host. (#51) - Itemless each blocks:
{#each expression}and{#each expression, index}. (#51) - Typed block bindings:
{#each rows as row: Row},as { id }: Row,{:then value: Value},{:catch { message }: Err}. (#51) - Each-block
asdetection now matches the compiler: the last top-levelasis the block's own, fixing{#each items as item (item.id as string)}and nested type assertions. (#51)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- JavaScript-style comments between attributes:
-
st4143-4.2.0 Stable
released this
2026-08-21 16:15:00 +00:00 | 4 commits to master since this releaseModern Svelte 5 template syntax
- Template expressions are parsed as TypeScript: typed arrow parameters
(e: Event) => ...,ascasts, and generic callsfn<Result>(value)highlight correctly. Plain JavaScript expressions scope exactly as before. (#48) - Each blocks understand TypeScript sources: only the block's own
asis treated as the Svelte keyword, so{#each items as Item[] as item}and{#each (items as Item[]) as item}both highlight correctly. (#48) {@render ...}tags are recognized, including optional chaining. (#49){@attach ...}attachments highlight in attribute position on elements and components. (#49){let ...}/{const ...}declaration tags (Svelte 5.56) parse as real declarations with destructuring and TypeScript annotations;{@const ...}gains the same binding handling. (#49){#snippet name(params)}scopes the name as a function definition (symbol-list navigable) and parses parameters as function parameters, including generics:{#snippet pair<T>(a: T, b: T)}. (#49)- The
genericsscript attribute is highlighted as a TypeScript type parameter list, includingconstmodifiers, constraints, and defaults. (#47) - Legacy special variables (
$$propsetc.) are no longer highlighted inside string literals. (#46)
Tested on Sublime Text builds 4143 through the latest dev build.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Template expressions are parsed as TypeScript: typed arrow parameters