Skip to content

feat(editor): add TypeScript script tooling - #367

Merged
DavidBabinec merged 2 commits into
mainfrom
feat/typescript-script-tooling
Aug 12, 2026
Merged

feat(editor): add TypeScript script tooling#367
DavidBabinec merged 2 commits into
mainfrom
feat/typescript-script-tooling

Conversation

@DavidBabinec

Copy link
Copy Markdown
Contributor

Summary

  • add lazy, worker-isolated TypeScript language tooling to Site Editor scripts
  • provide strict semantic diagnostics, DOM-aware completions and hover information, plus relative cross-file typing
  • merge semantic diagnostics into a compact, scrollable and minimizable Problems panel
  • preserve explicit TypeScript script extensions and keep autocomplete/hover popups inside the editor boundary
  • render TypeScript hover documentation as safe Markdown

Why

Site script authors currently get syntax highlighting and publish-time compilation, but not the semantic editing feedback expected from TypeScript tooling. This addresses the workflow requested in Discussion #351 while keeping esbuild as the authoritative canvas and publish compiler.

User impact

Authors receive type errors, DOM API suggestions, signatures, and cross-file type information directly in the Code tab. The language service loads only when a TypeScript script is opened and runs off the UI thread. Large diagnostic sets remain bounded and can collapse to their error count.

Verification

  • bun test ./src/__tests__/admin/siteItemNames.test.ts ./src/__tests__/architecture/typescript-language-worker-isolation.test.ts ./src/__tests__/architecture/bundle-size-budgets.test.ts ./src/__tests__/code-editor/codeMirrorEditor.test.tsx ./src/__tests__/code-editor/scriptSettingsPane.test.tsx ./src/__tests__/code-editor/typescriptLanguageService.test.ts
  • bun run lint
  • bun run build
  • git diff --check
  • live disposable browser pass covering diagnostics, completion, hover, autosave/reload, publish/runtime execution, Problems minimization, and right-edge autocomplete containment

@DavidBabinec
DavidBabinec marked this pull request as ready for review August 12, 2026 11:14
@DavidBabinec
DavidBabinec merged commit 9d787b2 into main Aug 12, 2026
11 of 12 checks passed
@DavidBabinec
DavidBabinec deleted the feat/typescript-script-tooling branch August 12, 2026 11:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant