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}`, })), };