添加命令的正确语法

时间:2017-02-03 08:28:34

标签: ace-editor

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

editor.addCommand({
    name: "find",
    bindKey: {win: "Ctrl-F", mac: "Cmd-F"},
    exec: findKeyboardHandler});
  • 我应该写出“Command-F”而不是“cmd-f”吗?

  • 区分大小写?
  • 如果添加已定义的键绑定怎么办?
  • 命令名称是唯一的吗?
  • 是否在捕捉阶段或泡沫阶段添加了听众?
  • 命令名称是否重要?是否有保留名称,“保存”,“渲染”?
  • 参数计数是否会发生变化?是否总是传回一个参数?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

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

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

editor.execCommand('quit');