AvalonEdit - 搜索完成数据

时间:2012-07-22 20:00:29

标签: avalonedit

我已经将CompletionData连接起来没有问题,将其插入到Avalon Edit控件中。

挑战在于搜索算法。

在下面的示例中,我希望 new-obj 在列表中“匹配” * New-Object ****而不是部分找到*** New-DataObject *

我可以设置一个标志吗?或者我是否需要覆盖搜索并实现自己的搜索?

谢谢

道格

http://dougfinke.com/Stackoverflow/avalonedit.png

1 个答案:

答案 0 :(得分:3)

不幸的是,此行为目前无法自定义。它在私有方法CompletionList.GetMatchQuality中进行了硬编码。

那说,我无法重现你的问题。 AvalonEdit匹配逻辑不像您的屏幕截图似乎建议的那样。 AvalonEdit支持8种匹配(较高的匹配优先于其他匹配):

        //      8 = full match case sensitive
        //      7 = full match
        //      6 = match start case sensitive
        //      5 = match start
        //      4 = match CamelCase when length of query is 1 or 2 characters
        //      3 = match substring case sensitive
        //      2 = match substring
        //      1 = match CamelCase

“new-obj”是“New-Object”的类型5匹配,“New-DataObject”根本不匹配。

完成窗口可疑地显示在单词start的右侧。我认为只有“obj”在你的完成部分。您必须检查找到单词start并设置CompletionWindow.StartOffset的代码,我怀疑它正在考虑将短划线视为单词边框。