mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
1d9e445d1a
The TextMate grammars for inline templates and inline styles ended the string at the first occurrence of the delimiter, so an escaped delimiter (e.g. \`) terminated the highlighting prematurely and the rest of the template was no longer highlighted as HTML. Escape sequences are now consumed before delegating to the HTML/CSS grammars, so escaped delimiters no longer end the string. Also removes the stray pipes from the string delimiter character class, which unintentionally matched a literal '|'. Fixes #65493
185 lines
8.6 KiB
Plaintext
185 lines
8.6 KiB
Plaintext
>/* clang-format off */
|
|
#^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
>
|
|
>/* Inline template recognition tests */
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
>@Component({
|
|
#^^^^^^^^^^^^^ inline-template.ng
|
|
> //// Property key/value test
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
> template: '<div></div>',
|
|
#^^ inline-template.ng
|
|
# ^^^^^^^^ inline-template.ng meta.object-literal.key.ts
|
|
# ^ inline-template.ng meta.object-literal.key.ts punctuation.separator.key-value.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng string
|
|
# ^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^ inline-template.ng string
|
|
# ^^ inline-template.ng
|
|
>
|
|
> //// String delimiter tests
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
> template: `<div></div>`,
|
|
#^^ inline-template.ng
|
|
# ^^^^^^^^ inline-template.ng meta.object-literal.key.ts
|
|
# ^ inline-template.ng meta.object-literal.key.ts punctuation.separator.key-value.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng string
|
|
# ^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^ inline-template.ng string
|
|
# ^^ inline-template.ng
|
|
> template: "<div></div>",
|
|
#^^ inline-template.ng
|
|
# ^^^^^^^^ inline-template.ng meta.object-literal.key.ts
|
|
# ^ inline-template.ng meta.object-literal.key.ts punctuation.separator.key-value.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng string
|
|
# ^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^ inline-template.ng string
|
|
# ^^ inline-template.ng
|
|
> template: '<div></div>',
|
|
#^^ inline-template.ng
|
|
# ^^^^^^^^ inline-template.ng meta.object-literal.key.ts
|
|
# ^ inline-template.ng meta.object-literal.key.ts punctuation.separator.key-value.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng string
|
|
# ^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^ inline-template.ng string
|
|
# ^^ inline-template.ng
|
|
>
|
|
> //// Parenthesization tests
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
> template: ( (( '<div></div>' )) ),
|
|
#^^ inline-template.ng
|
|
# ^^^^^^^^ inline-template.ng meta.object-literal.key.ts
|
|
# ^ inline-template.ng meta.object-literal.key.ts punctuation.separator.key-value.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng meta.brace.round.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng meta.brace.round.ts
|
|
# ^ inline-template.ng meta.brace.round.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng string
|
|
# ^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^ inline-template.ng string
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng meta.brace.round.ts
|
|
# ^ inline-template.ng meta.brace.round.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng meta.brace.round.ts
|
|
# ^^ inline-template.ng
|
|
>
|
|
> //// Comments tests
|
|
#^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
> // template: '<div></div>'
|
|
#^^^^^ inline-template.ng
|
|
# ^^^^^^^^ inline-template.ng meta.object-literal.key.ts
|
|
# ^ inline-template.ng meta.object-literal.key.ts punctuation.separator.key-value.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng string
|
|
# ^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^ inline-template.ng string
|
|
> /*
|
|
#^^^^^ inline-template.ng
|
|
> * template: '<div></div>'
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
> */
|
|
#^^^^^^ inline-template.ng
|
|
> /**
|
|
#^^^^^^ inline-template.ng
|
|
> * template: '<div></div>'
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
> */
|
|
#^^^^^^ inline-template.ng
|
|
>})
|
|
#^^^ inline-template.ng
|
|
>export class TMComponent{}
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
>
|
|
>/* Template syntax tests */
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
>@Component({
|
|
#^^^^^^^^^^^^^ inline-template.ng
|
|
> // Interpolation test
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
> template: '{{property}}',
|
|
#^^ inline-template.ng
|
|
# ^^^^^^^^ inline-template.ng meta.object-literal.key.ts
|
|
# ^ inline-template.ng meta.object-literal.key.ts punctuation.separator.key-value.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng string
|
|
# ^^ inline-template.ng text.html.derivative punctuation.definition.block.ts
|
|
# ^^^^^^^^ inline-template.ng text.html.derivative expression.ng variable.other.readwrite.ts
|
|
# ^^ inline-template.ng text.html.derivative punctuation.definition.block.ts
|
|
# ^ inline-template.ng string
|
|
# ^^ inline-template.ng
|
|
>})
|
|
#^^^ inline-template.ng
|
|
>export class TMComponent{}
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
>
|
|
>/* Escaped delimiter tests */
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
>@Component({
|
|
#^^^^^^^^^^^^^ inline-template.ng
|
|
> //// Escaped backtick test
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
> template: `<button title="\`code\`">Hello</button>`,
|
|
#^^ inline-template.ng
|
|
# ^^^^^^^^ inline-template.ng meta.object-literal.key.ts
|
|
# ^ inline-template.ng meta.object-literal.key.ts punctuation.separator.key-value.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng string
|
|
# ^^^^^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^^ inline-template.ng text.html.derivative constant.character.escape.ts
|
|
# ^^^^ inline-template.ng text.html.derivative
|
|
# ^^ inline-template.ng text.html.derivative constant.character.escape.ts
|
|
# ^^^^^^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^ inline-template.ng string
|
|
# ^^ inline-template.ng
|
|
>
|
|
> //// Escaped quote tests
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
> template: '<div title="it\'s">Hello</div>',
|
|
#^^ inline-template.ng
|
|
# ^^^^^^^^ inline-template.ng meta.object-literal.key.ts
|
|
# ^ inline-template.ng meta.object-literal.key.ts punctuation.separator.key-value.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng string
|
|
# ^^^^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^^ inline-template.ng text.html.derivative constant.character.escape.ts
|
|
# ^^^^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^ inline-template.ng string
|
|
# ^^ inline-template.ng
|
|
> template: "<div title=\"quoted\">Hello</div>",
|
|
#^^ inline-template.ng
|
|
# ^^^^^^^^ inline-template.ng meta.object-literal.key.ts
|
|
# ^ inline-template.ng meta.object-literal.key.ts punctuation.separator.key-value.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng string
|
|
# ^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^^ inline-template.ng text.html.derivative constant.character.escape.ts
|
|
# ^^^^^^ inline-template.ng text.html.derivative
|
|
# ^^ inline-template.ng text.html.derivative constant.character.escape.ts
|
|
# ^^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^ inline-template.ng string
|
|
# ^^ inline-template.ng
|
|
>
|
|
> //// Escaped backslash before the closing delimiter
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
> template: `<div>backslash \\</div>`,
|
|
#^^ inline-template.ng
|
|
# ^^^^^^^^ inline-template.ng meta.object-literal.key.ts
|
|
# ^ inline-template.ng meta.object-literal.key.ts punctuation.separator.key-value.ts
|
|
# ^ inline-template.ng
|
|
# ^ inline-template.ng string
|
|
# ^^^^^^^^^^^^^^^ inline-template.ng text.html.derivative
|
|
# ^^ inline-template.ng text.html.derivative constant.character.escape.ts
|
|
# ^^^^^^ inline-template.ng text.html.derivative
|
|
# ^ inline-template.ng string
|
|
# ^^ inline-template.ng
|
|
>})
|
|
#^^^ inline-template.ng
|
|
>export class TMComponent{}
|
|
#^^^^^^^^^^^^^^^^^^^^^^^^^^^ inline-template.ng
|
|
> |