我尝试在一页上使用多个编辑器,并且我需要自定义语言。
项目代码:https://github.com/Microsoft/monaco-editor/files/2815668/monaco.zip
我使用官方示例来定制语言,并将其与yaml混合在一起,然后放在一页上。但是,标记生成器将只能在一个编辑器上运行。如果我为Yaml编辑器设置了主题,例如“ vs”,则自定义语言将无法正常工作(tokenizer无法正常工作);如果我为Yaml编辑器跳过了主题,则自定义lang将可以正常工作,但yaml tokenizer会停止工作。
有办法使它工作吗?
class JsonEditor extends Component<Props, State> {
componentDidMount() {
const model = monaco.editor.createModel(this.getCode(), 'mySpecialLanguage');
monaco.editor.create(document.getElementById('json-editor')!, {
// theme: 'myCoolTheme',
model
});
}
...
class SchemaEditor extends Component<Props, State> {
editor: monaco.editor.IStandaloneCodeEditor | null = null;
componentDidMount() {
const model = monaco.editor.createModel('asdf: sadga', 'yaml');
this.editor = monaco.editor.create(
document.getElementById('schema-editor')!,
{
model,
// theme: 'vs-dark'
}
);
}
...