vscode-embedded-string-high.../embeddedLanguages.mts

36 lines
1.4 KiB
TypeScript

import packageJSON from './base.package.json';
const languages: {
id: string;
sourceScope: string;
aliases?: string[];
}[] = [
// TODO: sort this
{id: 'javascript', sourceScope: 'source.js', aliases: ['js']},
{id: 'typescript', sourceScope: 'source.ts', aliases: ['ts']},
{id: 'javascriptreact', sourceScope: 'source.js.jsx', aliases: ['jsx']},
{id: 'typescriptreact', sourceScope: 'source.tsx', aliases: ['tsx']},
{id: 'json', sourceScope: 'source.json'},
{id: 'jsonc', sourceScope: 'source.json.comments'},
{id: 'jsonl', sourceScope: 'source.json.lines'},
{id: 'shellscript', sourceScope: 'source.shell', aliases: ['sh']},
{id: 'rust', sourceScope: 'source.rust', aliases: ['rs']},
{id: 'css', sourceScope: 'source.css'},
{id: 'scss', sourceScope: 'source.css.scss'},
{id: 'less', sourceScope: 'source.css.less'},
{id: 'html', sourceScope: 'text.html.derivative'},
{id: 'sql', sourceScope: 'source.sql'},
{id: 'markdown', sourceScope: 'text.html.markdown', aliases: ['md']},
{id: 'xml', sourceScope: 'text.xml'},
{id: 'yaml', sourceScope: 'source.yaml'},
];
export default languages.map(language => ({
id: language.id,
tags: [language.id, ...(language.aliases ?? [])],
sourceScope: language.sourceScope,
embedScopeInline: `meta.embedded.inline.${language.id}`,
embedScopeBlock: `meta.embedded.block.${language.id}`,
injectionScope: `${packageJSON.name}.injection.${language.id}`,
}));