我正在尝试使用 ScintillaNet 为我的代码编辑器实现自动完成系统。一切似乎都工作正常,但我意识到,如果填充的列表包含带有字符“_”的字符串,即格式 X_XYZ,则焦点会松开并且不会选择任何字符串(适用于 X、X_ 和 X_X,但会失去焦点以下字母)。
我想做的是在文本“this”之后显示列表。
存在此问题的字符串例如:
p_M_Restart -> OK
p_MDWTest -> Fails at D and following letters
我在 CharAdded 事件中的代码如下所示:
if (editor.GetWordFromPosition(editor.CurrentPos - 1) == TXT_THIS
&& e.Ch == '.')
{
editor.AutoComplete.List = Parameters.ToList();
editor.AutoComplete.SingleLineAccept = false;
editor.AutoComplete.FillUpCharacters = "([";
editor.AutoComplete.Show();
}
“_”是特殊情况吗?或者这个角色需要考虑什么吗?
谢谢,
今天刚遇到这个。 我认为这与 C# 和 Scintilla 在涉及“_”等特殊字符时以不同方式对自动完成项目列表进行排序有关。
我通过在表单加载时将
Scintilla.AutoCOrder
设置为 Order.PerformSort
解决了这个问题。