C# 自动显示不会触发动态添加的单词?

C# 自动显示不会触发动态添加的单词?,c#,scintilla,C#,Scintilla,我目前正在尝试编写一个小型的“C#as脚本”IDE。 (编辑器,带内存代码编译器和执行) 我对任何其他的实现都不不满,我只是真的希望自己能够做到这一点。现在一切都很顺利。我可以使用winform文本控制器编写代码,编译并运行它 今天我想加些糖,所以我得到了闪烁仪。(.Net Scraper for Scanitlla)并简单地使用了这个控制器而不是我的文本控制器。这有很多帮助,关键字突出显示,是当场 现在来看问题: 我想拥有一些类似智能感知的功能。 我想,Scite带有自动完成功能,所以它的一个

我目前正在尝试编写一个小型的“C#as脚本”IDE。 (编辑器,带内存代码编译器和执行)

我对任何其他的实现都不不满,我只是真的希望自己能够做到这一点。现在一切都很顺利。我可以使用winform文本控制器编写代码,编译并运行它

今天我想加些糖,所以我得到了闪烁仪。(.Net Scraper for Scanitlla)并简单地使用了这个控制器而不是我的文本控制器。这有很多帮助,关键字突出显示,是当场

现在来看问题: 我想拥有一些类似智能感知的功能。 我想,Scite带有自动完成功能,所以它的一个功能一定在闪烁体的某个地方。我找到了AutoShow,并让它与突出显示的关键字一起工作。 我现在唯一需要的就是使用反射来获取类列表,每次代码成功编译时,然后将其转换为字符串列表,并将其添加到自动完成单词列表中

我让反射部分运行,并成功地从运行时代码中获取类列表,并将其转储到字符串列表
knownClasses

最后我做了这个来触发自动完成:

//do automatic keyword completion:
editor.CharAdded += AutoCompleter;
我在别的地方做了这件事: (我知道它可以优化,但这不是问题所在)

但即使我在调用AutoShow之前这样做,这也没有帮助:

editor.SetKeywords(1, String.Join(" ", knownClasses));    
(如果有人想知道的话)

你再也不需要做什么了

在我的例子中,问题是添加的单词以大写字母开头。 斯金特拉默认设置为搜索确切病例

设置:

editor.AutoCIgnoreCase = true;
在初始化时,修复了该问题

editor.SetKeywords(1, String.Join(" ", knownClasses));    
editor.AutoCIgnoreCase = true;