• st4143-4.3.1 99f76ff8bd

    st4143-4.3.1 Stable

    corneliusio released this 2026-09-13 05:45:24 +00:00 | 0 commits to master since this release

    Patch release for Sublime Text 4, build 4143 and newer.

    • Recognize .svelte.js and .svelte.ts modules with the existing rune-aware grammars, available as JavaScript (Svelte) and TypeScript (Svelte) in the syntax picker.
    • Fix each blocks 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
  • st4143-4.3.0 a6e5113c5a

    st4143-4.3.0 Stable

    corneliusio released this 2026-08-24 19:40:20 +00:00 | 2 commits to master since this release

    Modern 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={...}, including on={x} and on-click={x}) is scoped as a Svelte event, styled like the on: directive and wrapped in meta.attribute-with-value.event.html. String values remain plain attributes, mirroring the compiler's is_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 as detection now matches the compiler: the last top-level as is the block's own, fixing {#each items as item (item.id as string)} and nested type assertions. (#51)
    Downloads
  • st4143-4.2.0 603fba77b2

    st4143-4.2.0 Stable

    corneliusio released this 2026-08-21 16:15:00 +00:00 | 4 commits to master since this release

    Modern Svelte 5 template syntax

    • Template expressions are parsed as TypeScript: typed arrow parameters (e: Event) => ..., as casts, and generic calls fn<Result>(value) highlight correctly. Plain JavaScript expressions scope exactly as before. (#48)
    • Each blocks understand TypeScript sources: only the block's own as is 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 generics script attribute is highlighted as a TypeScript type parameter list, including const modifiers, constraints, and defaults. (#47)
    • Legacy special variables ($$props etc.) are no longer highlighted inside string literals. (#46)

    Tested on Sublime Text builds 4143 through the latest dev build.

    Downloads