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