testHighlightingTemplatesRegexesKeywords

tcmts.cli.test.highlight.testHighlightingTemplatesRegexesKeywords · #tlnd6hi7 · term

Source highlighting: template literals resume after substitutions; regex vs division; control keywords.

import { classes } from "#codebase/tcmts/cli/test/highlight";
import assert from "node:assert/strict";

export const testHighlightingTemplatesRegexesKeywords = () => {
  assert.equal(classes("f(`a:${g().x}`, { n: 5 });"), "[f:f]([s:`a:${][f:g]().x[s:}`], { n: [n:5] });");
  assert.equal(classes("`${a}-${ {x: 1}.x }`"), "[s:`${]a[s:}-${] {x: [n:1]}.x [s:}`]");
  assert.equal(classes("const r = /a+b/g.test(q) ? 1 / 2 : 0;"), "[k:const] r = [s:/a+b/g].[f:test](q) ? [n:1] / [n:2] : [n:0];");
  assert.equal(classes("if (x) return y; // done"), "[x:if] (x) [x:return] y; [c:// done]");
}

uses