我正在使用Ace编辑器并且我正在使用搜索功能,因为我使用它时,它会在每次按键更改时搜索文档。
所以我的意思是当我在搜索框中输入时,我会在每次文字更改时调用此方法:
editor.find(searchInput.text);
如果我有一个包含10个名为" list"我打字" L"它找到第一个实例并突出显示" L"。然后我输入"我"它找到第二个实例并突出显示" Li"。然后我输入" s"它找到了第三个实例和#34; Lis"突出显示。
我想要做的就是留在第一个实例并突出显示" Lis"。我想我需要设置光标位置。但是如何获得突出显示单词开头的光标位置?或者更好的是,是否可以继续从当前搜索位置开始后续调用find()?我希望这是有道理的。
答案 0 :(得分:1)
有一个skipCrrent选项可供搜索查看https://github.com/ajaxorg/ace/blob/v1.2.0/lib/ace/ext/searchbox.js#L220,它来自内置的ace搜索,已经按照您的描述工作
答案 1 :(得分:0)
看起来我可以通过使用以下代码确保从当前锚位置继续搜索:
var position = editor.getSelectionAnchor();
editor.find("needle", {row:position.row, column:position.column});
FYI它似乎不适用于整数,但我可能是错的(尝试转换为字符串)。
正如@auser所建议的那样,将skipCurrent设置为false也可以。
editor.find("needle", {skipCurrent:false});