Ace 编辑器 API 用于将所选内容括在括号中

Ace editor API for wrapping selection in brackets

我正在使用 ace 编辑器编写 livescript。开箱即用,没有在按键时在括号中自动换行选择的功能,例如

启用自动完成没有任何区别,所以我编写了自定义命令:

    {
      name: "brackets []",
      bindKey: '[',
      exec: function(editor){
        var selection;
        if ((selection = editor.session.getTextRange(editor.getSelectionRange())).length) {
          editor.insert("[" + selection + "]");
        } else {
          editor.insert("[");
        }
      }
    }

它工作正常,但这里有一个问题:

是否有其他api buildin ace 可以更简单地实现相同的效果?

看起来这是 livescript mode other modes are supporting this by defining $behavior property 中的错误,但 livescript 模式缺少行为和折叠规则。