摩纳哥编辑 - “操作”和“命令”之间的区别?

Kyl*_*Mit 7 monaco-editor

在摩纳哥编辑器实例中,您可以调用addActionaddCommand

两者都提供了根据关键事件执行功能的能力

在线游乐场提供了如何添加命令或如何向编辑器实例添加操作的示例。

动作示例

editor.addAction({
    id: 'my-unique-id',
    label: 'My Label!!!',
    keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.Enter],
    run: function() { alert('action called') }
});
Run Code Online (Sandbox Code Playgroud)

命令示例

editor.addCommand(
  monaco.KeyMod.CtrlCmd | monaco.KeyCode.Enter,
  function() { alert('called command') }
)
Run Code Online (Sandbox Code Playgroud)

该文档描述了类型定义、属性和方法。

然而,它缺乏提供何时使用它们、它们在编辑器中出现的位置以及它们提供什么的上下文。

动作和命令有什么区别?

Mik*_*hke 7

我个人的印象是,行动是一种进化的命令。首先引入了命令,后来认识到需要更多功能(例如上下文菜单集成),因此Action创建了命令。由于兼容性原因,Command当时无法删除,因此两者至今仍然存在。

  • 又一个迹象表明行动是更好的命令:-) (3认同)
  • 我基本上同意,但我发现了一个奇怪的边缘情况。看来,如果页面上有多个编辑器,“addCommand”将无法正常工作 - 它会触发来自错误编辑器的事件。切换到“addAction”解决了我的问题。 (2认同)