使用ts 编写函数根据文件扩展名生产monaco 编辑器对应 language
以下是使用TypeScript编写的函数,根据文件扩展名生成Monaco编辑器对应的语言:
import * as monaco from 'monaco-editor';
function getLanguageFromExtension(extension: string): string {
switch (extension) {
case '.js':
return 'javascript';
case '.ts':
return 'typescript';
case '.html':
return 'html';
case '.css':
return 'css';
default:
return '';
}
}
function createLanguage(extension: string): void {
const language = getLanguageFromExtension(extension);
if (language) {
monaco.languages.register({ id: language });
monaco.languages.setMonarchTokensProvider(language, {
tokenizer: {
root: []
}
});
monaco.languages.setLanguageConfiguration(language, {
brackets: [
['{', '}'],
['[', ']'],
['(', ')'],
],
autoClosingPairs: [
{ open: '{', close: '}' },
{ open: '[', close: ']' },
{ open: '(', close: ')' },
{ open: '\'', close: '\'', notIn: ['string', 'comment'] },
{ open: '"', close: '"', notIn: ['string'] }
]
});
}
}
该函数将根据输入的文件扩展名创建Monaco编辑器所需的语言。如果扩展名匹配任何已知语言,将创建一个新的语言,并使用Monaco API进行配置。在上面的示例中,我们使用MonarchTokenizer提供程序和语言配置对象为新语言提供配置。
原文地址: https://www.cveoy.top/t/topic/bmwj 著作权归作者所有。请勿转载和采集!