摩纳哥:从自动完成/智能感知中删除Web API?

时间:2018-10-17 23:54:34

标签: monaco-editor

我在嵌入式应用程序中使用Monaco,用户可以在其中编写JavaScript以在我们自己的引擎中运行。该引擎距离网络浏览器很远,因此我们拥有自己的API,并且绝对不支持任何Web API。但是,由于我们在浏览器本身中运行Monaco,所以我猜想它会选择这些API并通过其(相当出色的)Intellisense小部件进行显示。那么有没有一种方法可以禁用此功能,而只显示我们的API(我将使用addExtraLibs来提供它)?

非常感谢。

1 个答案:

答案 0 :(得分:1)

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

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

在CompilerOptions部分的Typescript文档中:

  

注意:

     

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

您想要做的就是省略DOM库。

我读过某个地方,尽管我还没有亲自测试过,但您也可以使用["!DOM"]来包含所有默认值除了 DOM

请确保您将typescriptDefaults语言用于typescript,并将typescript.javascriptDefaults语言用于javascript。我认为它们基本上等同于摩纳哥。这使我绊了一会儿。