From 219b2ad82b9dcd5c3b7a79653316d1c2451e873f Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 1 Oct 2026 20:15:01 +0000 Subject: [PATCH 1/2] Add an experimental gjs|codegen format: templates compiled straight to DOM ops Adds a `codegen` flavor to the gjs compiler. Instead of compiling , }, + 'gjs|codegen': { + name: 'Glimmer JS (codegen, experimental)', + ext: 'gjs', + icon: , + }, // an alias get hbs() { return languages['hbs|ember']; diff --git a/apps/repl/app/snippets.ts b/apps/repl/app/snippets.ts index 0f500da75..01812f543 100644 --- a/apps/repl/app/snippets.ts +++ b/apps/repl/app/snippets.ts @@ -130,6 +130,11 @@ export const ALL = [ path: '/samples/nested-ember-routing-demo.gjs', }, { format: 'gts', label: 'Ember GTS', path: '/samples/gts-demo.gts' }, + { + format: 'gjs|codegen', + label: 'Ember GJS (codegen, experimental)', + path: '/samples/gjs-codegen-demo.gjs', + }, { format: 'svelte', label: 'Svelte', path: '/samples/svelte-demo.svelte' }, { format: 'js', label: 'Vanilla JS', path: '/samples/js-demo.js' }, // Yaml @@ -195,7 +200,7 @@ export async function getFromLabel(label: string): Promise { } export function defaultSnippetForFormat(format: string) { - if (format === 'gjs') { + if (format === 'gjs' || format === 'gjs|codegen') { return DEFAULT_GJS; } diff --git a/apps/repl/app/templates/edit/format-menu.gts b/apps/repl/app/templates/edit/format-menu.gts index eb30df2c4..0a5d9bb39 100644 --- a/apps/repl/app/templates/edit/format-menu.gts +++ b/apps/repl/app/templates/edit/format-menu.gts @@ -106,6 +106,7 @@ export class FormatMenu extends Component<{ Element: HTMLButtonElement }> {