Skip to content

DeltaScript 1.0.3

Choose a tag to compare

@ZtaMDev ZtaMDev released this 01 Nov 18:07

DeltaScript v1.0.3 – Release Notes

  • Date: 2025-11-01
  • Scope: CLI, Transpiler Core, VS Code Extension (Language Server), Config UX

Highlights

  • Robust multi-error reporting across CLI and VS Code, no more “stop at first error.”
  • Accurate scope handling for class methods and control blocks, eliminating false “Redeclaration” errors.
  • Config quality-of-life: dsk.config.ds supports both plain objects and export default {}.
  • VS Code stability & hot-reload for the transpiler with ESM cache-busting.

Transpiler Core (src/transpiler.ts)

  • Multi-error diagnostics:
    • transpileSpark now returns { code, diagnostics } with all collected errors.
    • Syntax errors are mapped back to original lines even when interfaces are stripped.
  • Scope system correctness:
    • Detects methods with async/static/get/set/constructor.
    • Supports multi-line headers (brace { on the next line).
    • Conservative scope closing: only count } that start a line (ignores object/array closures like }, or }:).
    • Parameters are registered in the correct function/method scope.
  • Typed arrays and interfaces:
    • Precise inference for array literals, including interface-compatible arr<obj>.
    • Shallow interface validation on object literals at declaration/assignment.
  • Object-only files auto-wrap:
    • A file that is a single top-level object literal is auto-wrapped as export default { … }.
  • Emitted JS validation:
    • Final pass parse with comment-stripping fallback; records any emitted JS syntax errors as diagnostics.

CLI (src/cli.ts)

  • New transpiler contract supported:
    • Properly consumes { code, diagnostics } from transpileSpark.
    • Prints code-frames for all errors per file.
  • Build/dev experience:
    • dsc init creates dsk.config.ds using export default { … }.
    • dsk.config.ds is excluded from compilation/watch to avoid false syntax errors.
  • Spec helpers:
    • Optional injection of SpectralLogs and console→spec rewrite preserved, now applied safely with the new output flow.

Config Loader (src/config.ts)

  • Flexible formats:
    • Accepts both plain object and export default { … }.
    • Strips comments, quotes keys, and parses as JSON internally.
    • Defaults builtins: true when unspecified.

VS Code Extension (extension/server)

  • Language Server stability:
    • ESM cache-busting (?t=timestamp) ensures the latest transpiler loads.
    • Added a request handler to hot-reload the transpiler and revalidate open docs.
  • Multi-error surfaced in editor:
    • The server now consumes and forwards all diagnostics from the transpiler.
  • Fewer false positives:
    • Scope fixes and conservative closing rules ported to the bundled transpiler.
    • Temporary filter suppresses noisy “Redeclaration … in the same scope” messages.
  • Config auto-wrap in editor:
    • A file that is just { … } is treated as export default { … } to avoid syntax errors in the editor.

Bug Fixes

  • Fixed false “Redeclaration of variable 'scope' in the same scope” in methods and blocks.
  • Fixed incorrect scope closure on lines that contained object/array trailing braces.
  • Fixed extension loading stale transpiler due to ESM caching.
  • Fixed CLI crashes when transpiler returns structured diagnostics.
  • Fixed config parsing errors for plain object dsk.config.ds.

Developer Notes

  • Scope handling now includes:
    • Class method detection with async/static/get/set/constructor.
    • Multi-line header handling with pending-open tracking.
    • Per-line transactional error handling with conservative scope rollback (extension).