添加命令的正确语法

Correct syntax for adding a command

命令对象的语法有变化吗?我一直在使用以下内容:

editor.addCommand({
    name: "find",
    bindKey: {win: "Ctrl-F", mac: "Cmd-F"},
    exec: findKeyboardHandler});

Ace命令语法很久没变了

  • 所有 CommandcmdCmd 都一样,请参阅 ace/lib/keys.js#L51-L52
  • 键绑定不区分大小写
  • 如果已经定义了键绑定,新的将添加到命令堆栈,最后添加的将首先调用,如果不可用,将添加下一个。
  • 命令名称是唯一的,如果存在同名命令,旧的将被删除。
  • 监听器被添加到冒泡阶段ace/lib/event.js#L348
  • 没有保留名称,但使用名为 __proto__ 的命令会中断 keyboard/hash_handler.js#L40
  • 命令总是有两个参数,editorargs 对象 ace/commands/command_manager.js#L24

要调用 addCommand,您必须调用命令:

editor.commands.addCommand({
    name: 'quit',
    exec: function(){
        yourQuitFunctionHere();
    }
});

那么你可以使用命令进行键绑定或直接执行:

editor.execCommand('quit');