使用代码完成功能构建文本编辑器

时间:2012-11-06 07:47:49

标签: c# php editor code-completion

目前我正在尝试为PHP语言构建一个文本编辑器,它应该具有代码完成的功能,即如果我开始输入一个单词,动态创建的下拉列表将显示所有可用的关键字以我的类型开头字母。任何人都能告诉我如何做到这一点。想法对我来说已经足够了。如果可能的话,请提供一个链接到C#中构建这样简单的应用程序。

2 个答案:

答案 0 :(得分:0)

如果我在哪里,我会尽力避免使用轮盘...代码完成是大多数IDE现在都带来的东西所以你所拥有的东西已经可用了......

话虽这么说,我会尝试的是重新审视PHP API并构建Suffix tree。这种类型的树通常允许快速查找给定单词。索引API后,您还可以添加用户在执行实际编程时添加的任何其他变量。

用户输入第3个字母后,您可以在后缀树中自动启动搜索,或者可以为用户手动激活它,例如Ctrl-Space键盘大多数IDE(Visual Studio,Netbeans, Eclipse等等。

请注意,这可能会变得棘手,因为您可能想要选择适当的变量类型。

答案 1 :(得分:0)

考虑到一般来说这不是一件容易的事,因此没有一些“简单”的应用程序。

即使一般的想法不是火箭科学。您需要定义与某些键对应的单词词典。当您键入“。”时(在C#中)您必须从字典中选择与“左侧”中找到的单词相对应的所有单词。“

要做到真正的工作应用并不是那么容易。顺便提一下,我可以建议看看他们的编辑器MonoDevlop

我多年前与它合作,为DSL公司制作一个简单的编辑器,花费不少时间正确理解意图,整合“我的新语言”,从Mono“分离”控制并注入我们的应用程序,就像一个可停靠的窗户。