我一直在使用Ace Editor的Snippet Manager来动态插入代码一段时间,并选择该插入中的某些文本。它已经工作得很好,但现在我尝试以相同的方式选择多行,但它只选择第一行中的文本。
工作原理:" ${1:
"和结束" }
"应该被选中。
这是有效的代码。它有多行,但在大括号中只选择了一行:
var singleStr = "\n<div>\n\t${1:Everything that should be selected is selected}\n</div>\n\n";
insertSingle.addEventListener( 'click', function (evnt) {
ace.config.loadModule('ace/ext/language_tools', function () {
editor.insertSnippet( singleStr );
});
});
我无法在此处发布选择的图片,因为我没有足够的声誉。
这里的代码不起作用。同样,要插入多行,但这次选择(花括号内的文本)包含多行:
var insertMulti = document.querySelector('#insert_multi_line');
var multiStr = "<div>\n\t${1:Not everything that should be selected\n\tis selected}\n</div>";
insertMulti.addEventListener( 'click', function (evnt) {
ace.config.loadModule('ace/ext/language_tools', function () {
editor.insertSnippet( multiStr );
});
});
multi-line selection not working
此处是(非)工作示例(点击按钮查看不同的插入内容):https://jsfiddle.net/ka7byd8z/3/
我需要能够使用许多不同类型的文本动态执行此操作,这就是我使用Snippet Manager的原因。如何插入选中多行的片段?理想情况下使用Snippet Manager或类似的东西。