Ace Editor手动添加片段

Ali*_*raf 16 javascript code-snippets ace-editor

TL; DR

我试图通过函数调用手动触发ace编辑器片段,而不是传统的方法(键盘键).

说明

我需要一个函数,它将编辑器和片段字符串作为参数,并将该片段添加到编辑器中.function addSnippet(editor, snippet).

Ace编辑器支持TextMate-ish片段.

if (${1:condition_name}) {
     ${2:body}
}
Run Code Online (Sandbox Code Playgroud)

因此,当我们调用此函数时,它应该添加代码段,突出显示代码段标记并选择第一个.填充第一个并点击标签后,编辑器应移至下一个片段标记.就像在Kitchen Sink示例中一样(但我想通过函数调用来添加/触发片段).

我试图破解我的方式并完成这个功能.但它是凌乱和不完整的(不支持标记和标签按下).这有什么原生方法吗?我已经看过一些使用的例子snippetManager,但他们使用的是键盘触发器,而不是手动功能.

有关此问题的任何帮助将不胜感激.谢谢.

Ali*_*raf 28

经过几个小时的攻击和研究,我终于遇到了in 的insertSnippet功能,它的工作原理如下:snippetManagerext-language_tools.js

var snippetManager = ace.require("ace/snippets").snippetManager;
snippetManager.insertSnippet(editor, snippet);
Run Code Online (Sandbox Code Playgroud)

实际上非常简单,由于缺乏文档而无法提前找到它.

  • 要插入的代码段的格式是什么? (3认同)
  • 您能否提供您使用过的代码段的示例 (2认同)

use*_*149 5

如果您不使用RequireJS,则以下语法也适用:

ace.config.loadModule('ace/ext/language_tools', function () {
    editor.insertSnippet(snippetText);
});
Run Code Online (Sandbox Code Playgroud)