0

我已经连接了 CompletionData 没问题,将等插入 Avalon Edit 控件。

挑战在于搜索算法。

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

有我可以设置的标志吗?还是我需要覆盖搜索并实现我自己的?

谢谢

道格

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

4

1 回答 1

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 和 sets 的代码CompletionWindow.StartOffset,我怀疑它正在考虑将破折号作为单词边框。

于 2012-07-22T22:02:02.483 回答