2012-11-06 43 views
2

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

+2

我想问你为什么要重新发明轮子? –

+0

程序员的可能候选人.stackexchange.com – Adil

+0

只是为了我自己的兴趣 –

回答

0

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

即使在一般的想法是不是火箭科学。你需要定义一个单词字典,对应于某个键。当你输入“。”时(在C#)你必须从字典中选择所有对应于该键的单词,该单词相当于在上找到的单词,从左侧的侧面出现“。”。

要做到这一点真正的工作应用并不那么容易。顺便说一句,我可以推荐看看他们的编辑MonoDevlop

我几年前就和它合作为DSL公司做了一个简单的编辑器,花费了很少的时间来正确理解内部信息,很好地整合了“我的新语言”,“分离”Mono的控制并注入到我们的应用程序,就像一个可停靠的窗口。

+0

现在我的问题是我必须创建一个动态列表框,按下'。'后有词典中的关键字。怎样才能做到这一点?我想知道如何在给定'。'的正下方在丰富的文本框中动态地创建一个列表框。 –

+0

** **编辑器为你处理这个问题,你只需要提供一个你想在里面显示的单词的“词典”,以及查找键。至少在那个时候它以那种方式工作,但不要认为它有太大的改变。 – Tigran

0

如果我在这里你我真的尽力避免车轮...代码完成是大多数IDE的,现在配备了等你以后有什么是已经上市...

话虽这么说,我什么将尝试将通过PHP API并构造一个Suffix tree。这种类型的树通常允许快速查找给定单词。一旦您为API编制索引,您还可以添加用户在执行实际编程时添加的任何其他变量。

在用户输入第三个字母后,您可以在后缀树中自动启动搜索,或者为用户提供手动激活它的方法,如大多数IDE的键盘(Visual Studio,Netbeans,Eclipse等) )有。

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