我正在构建一个包含多个摩纳哥编辑器的页面。目前,我通过以下方法控制想要使用的库:
monaco.languages.typescript.javascriptDefaults.addExtraLib(`
interface Product {
foo: String;
}
declare const product: Product;
`, 'global.d.ts')通过使用它,所有编辑器都必须拥有完全相同的可用库。
可以通过编辑器实例而不是全局控制这种行为吗?
发布于 2019-01-03 13:38:37
长话短说:不。
问题是,您通过调用IStandaloneCodeEditor创建的monaco.editor.create ()不知道当前可用和注册的任何monaco.languages。
解析是由monaco.worker完成的,后者通过monaco.languages.typescript配置- for和TypeScript,并且是静态的,而不是特定于实例的,因此一个工作人员可以为许多实例服务。
我相信这个设计决策是为了提高效率和性能--在许多情况下,使用(可能)许多不同库的情况下,可能WebWorker不是很有效。
还要注意的是,这并不是唯一不能按实例配置的东西:通过任何monaco.languages语言定义可配置的所有东西都是全局的。
我不知道这是如何实现的,但是如果您愿意了解正在发生的事情,类型和JavaScript实现在GitHub上。 (以及摩纳哥基地)。
虽然它(可能)在一定程度上会影响性能,但这可能适合在GitHub问题中讨论。最后,如果这一做法被拒绝,你可能会对捐助方实施摩纳哥的情况有一个印象。
https://stackoverflow.com/questions/53881473
复制相似问题