TL; DR
我试图通过函数调用手动触发ace编辑器片段,而不是传统的方法(键盘键).
说明
我需要一个将编辑器和一个片段字符串作为参数的函数,并将该片段添加到编辑器中.函数addSnippet(编辑器,片段).
Ace编辑器支持TextMate-ish片段.
if (${1:condition_name}) { ${2:body} }
所以当我们调用这个函数时,它应该添加代码片段,突出显示代码段标记并选择第一个.填写第一个并点击选项卡后,编辑器应该移动到下一个代码段标记.就像Kitchen Sink的例子(但是我想通过一个函数调用来添加/触发片段).
我尝试闯入我的方式,做了this function.但它是凌乱和不完整(不支持标记和标签按).有什么本土的方法吗?我看过一些使用snippetManager的例子,但是它们使用键盘触发器,而不是手动功能.
任何关于这个问题的帮助将不胜感激.
谢谢.
解决方法
经过几个小时的攻击和研究,我终于在ext-language_tools.js中遇到了snippetManager的insertSnippet功能,它的工作原理如下:
var snippetManager = ace.require("ace/snippets").snippetManager; snippetManager.insertSnippet(editor,snippet);
实际上很简单,由于缺乏文档,早些时候找不到它.