2

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

4

2 回答 2

0

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

即使总的来说想法不是火箭科学。您需要定义一个单词字典,对应于某个键。当你输入“。” (在C#)你必须从字典中挑选所有对应于键的单词,该键等于从“。”左侧找到的单词。

要做到这一点,真正的工作应用程序并不容易。顺便说一句,我可以建议在他们的编辑器上查看 MonoDevlop

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

于 2012-11-06T07:58:37.450 回答
0

如果我在你的地方我真的会尽量避免轮子......代码完成是大多数IDE现在附带的东西,所以你所追求的已经可用......

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

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

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

于 2012-11-06T07:56:49.390 回答