如何按照描述的行为进行搜索工作

时间:2015-09-23 21:56:08

标签: ace-editor

我正在使用Ace编辑器并且我正在使用搜索功能,因为我使用它时,它会在每次按键更改时搜索文档。

所以我的意思是当我在搜索框中输入时,我会在每次文字更改时调用此方法:

editor.find(searchInput.text);

如果我有一个包含10个名为" list"我打字" L"它找到第一个实例并突出显示" L"。然后我输入"我"它找到第二个实例并突出显示" Li"。然后我输入" s"它找到了第三个实例和#34; Lis"突出显示。

我想要做的就是留在第一个实例并突出显示" Lis"。我想我需要设置光标位置。但是如何获得突出显示单词开头的光标位置?或者更好的是,是否可以继续从当前搜索位置开始后续调用find()?我希望这是有道理的。

2 个答案:

答案 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});