vscode-embedded-string-high.../syntaxes/javascript.injection.json.mts
2025-03-10 00:02:54 -04:00

41 lines
1 KiB
TypeScript

import embeddedLanguages from '../embeddedLanguages.mjs';
import {merge} from '../util.mjs';
const elements = merge(embeddedLanguages.map(embeddedLanguage => ({
[`tagged-template-literal-block-${embeddedLanguage.id}`]: {
begin: `(${embeddedLanguage.id})(\`)`,
end: '`',
beginCaptures: {
1: {
name:
'entity.name.function.tagged-template.js entity.name.embedded-language',
},
2: {
name:
'string.template.js punctuation.definition.string.template.begin.js punctuation.definition.embedded-source.begin',
},
},
endCaptures: {
0: {
name:
'string.template.js punctuation.definition.string.template.end.js punctuation.definition.embedded-source.end',
},
},
contentName: embeddedLanguage.embedScopeBlock,
patterns: [
{
include: embeddedLanguage.sourceScope,
},
],
},
})));
export default {
scopeName: 'embedded-string-highlighting.injection',
injectionSelector: 'L:source.js -string -comment',
repository: elements,
patterns: Object.keys(elements).map(ruleKey => ({
include: `#${ruleKey}`,
})),
};