首页 > 解决方案 > 摩纳哥:从自动完成/智能感知中删除 Web API?

问题描述

我在嵌入式应用程序中使用 Monaco,用户可以在其中编写 JavaScript 以在我们自己的引擎中运行。该引擎远非网络浏览器,因此我们有自己的 API,而且绝对不支持任何网络 API。但是,因为我们在浏览器本身内部运行 Monaco,我猜它会拾取这些 API 并通过其(相当棒的)智能感知小部件显示它们。那么有没有办法禁用它并只显示我们的 API(我将使用 addExtraLibs 提供它)?

非常感谢。

标签: monaco-editor

解决方案


是的。libs您可以使用该属性指定要包含的默认库。例子:

monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
  target: monaco.languages.typescript.ScriptTarget.ES2015,
  lib: ["es6"]
});

来自 CompilerOptions 部分的 Typescript 文档:

笔记:

如果未指定 --lib ,则注入默认的库列表。注入的默认库是: For --target ES5: DOM,ES5,ScriptHost For --target ES6: DOM,ES6,DOM.Iterable,ScriptHost

您想要做的是省略 DOM 库。

我在某处读到,您也可以使用它来包含除 之外["!DOM"]的所有默认值,尽管我还没有亲自测试过。 DOM

确保您使用typescriptDefaultsfor the typescriptlanguage 和typescript.javascriptDefaultsfor the javascriptlanguage。我认为它们基本上与摩纳哥相当。这让我绊倒了一段时间。


推荐阅读