使用 TypeScript 为 Monaco 编辑器创建语言,根据文件扩展名
以下是使用 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/mOY0 著作权归作者所有。请勿转载和采集!