Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ace编辑器API,用于将所选内容包装在括号中_Javascript_Ace Editor - Fatal编程技术网

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

Javascript Ace编辑器API,用于将所选内容包装在括号中,javascript,ace-editor,Javascript,Ace Editor,我正在使用ace编辑器编写livescript。开箱即用,按键上括号内没有自动包装选择功能,例如 启用自动完成不会产生任何差异,因此我编写了自定义命令: { name: "brackets []", bindKey: '[', exec: function(editor){ var selection; if ((selection = editor.session.getTextRange(editor.getSel

我正在使用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可以更简单地实现相同的效果?

看起来这是一个bug,其他模式通过定义来支持这一点,但是livescript模式忽略了行为和折叠规则。

您是对的,在模式文件中定义了一个
$behavior
,现在它可以在没有自定义命令的情况下工作