代码之家  ›  专栏  ›  技术社区  ›  Stan

如何从编辑器中的操作列表中隐藏“命令调色板”项

  •  1
  • Stan  · 技术社区  · 8 年前

    我到处都在找,Monaco docs,github,但是似乎没有关于如何从上下文菜单中隐藏和禁用“command palette”命令的示例:

    command palette

    有什么建议吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   KyleMit Steven Vachon    5 年前

    哦,好吧,我别无选择,只好侵入DOM以删除“命令调色板”。

    它离理想状态还很遥远,而且它也不能真正禁用 F1 但这是我目前唯一的选择:

    private onContextMenu() {
        const menuItems = document.querySelector(".monaco-menu .actions-container");
        if (menuItems && menuItems.childNodes && menuItems.childNodes.length > 0) {
            for (let i = 0; i < menuItems.childNodes.length; i++) {
                const menuItem = menuItems.childNodes[i];
                if (menuItem.innerText.indexOf("Command Palette") !== -1) {
                    // remove "Command Pallete" item and it's separator from the menu
                    menuItems.removeChild(menuItem); // the "Command Palette" item
                    menuItems.removeChild(menuItems.childNodes[i - 1]); // the separator item before "Command Palette"
                }
            }
        }
    }
    
    推荐文章