始终显示 "显示更多" 部分在 Monaco Editor 中

15

我正在使用monaco编辑器游乐场中的配置javascript默认值示例。

https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-configure-javascript-defaults

当我开始输入预定义类时,会出现自动完成,但我需要按一次ctl + space才能查看建议的实际文档。

是否有一种方法可以将此选项设置为默认值,以便自动完成将默认打开文档?

这是我在代码中改变的唯一事项:

monaco.languages.typescript.typescriptDefaults.addExtraLib([
  '/**',
  ' * Know your facts!',
  ' */',
  'declare class Facts {',
  '    /**',
  '     * Returns the next fact',
  '     */',
  '    static next():string',
  '}',
].join('\n'), 'filename/facts.d.ts');

现在它是这样打开的:

输入图像描述

我想要默认情况下打开的方式是

输入图像描述

2个回答

7

如果有人仍在疑惑:作为一种解决方法,您可以实现自己的存储服务,该服务(除其他事项外)还将用于查询建议扩展的当前首选项。

monaco.editor.create(document.getElementById("container"), {
    value: jsCode,
    language: "javascript"
}, {
    storageService: {
        get() {},
        getBoolean(key) {
            if (key === "expandSuggestionDocs")
                return true;

            return false;
        },
        remove() {},
        store() {},
        onWillSaveState() {},
        onDidChangeStorage() {}
    }
});

存储服务还用于记忆最近使用的建议(以个性化 IntelliSense)等功能,因此如果您需要该功能,您可能需要实现其他函数。每种方法应该执行什么操作的完整接口在IStorageService中提供了描述。


1
太好了!那个解决方法很有效。这应该是我们可以在某种真正的编辑器选项中完全控制的内容 :-)我希望这不会破坏其他任何东西 :-) - Thatkookooguy
3
在建议的示例中,所有其他方法都未实现。通过指定自己的存储服务,我是否禁用了默认行为? - PAX

3
monaco-editor-core@0.34.0 中,需要将这个评论中提到的解决方法扩展到包括onDidChangeValue函数。最终的结构如下所示:
    storageService: {
      get() {},
      getBoolean(key) {
        return key === 'expandSuggestionDocs';
      },
      getNumber() {
        return 0;
      },
      remove() {},
      store() {},
      onWillSaveState() {},
      onDidChangeStorage() {},
      onDidChangeValue() {},
    },

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接