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)
实际上非常简单,由于缺乏文档而无法提前找到它.
如果您不使用RequireJS,则以下语法也适用:
ace.config.loadModule('ace/ext/language_tools', function () {
editor.insertSnippet(snippetText);
});
Run Code Online (Sandbox Code Playgroud)