2012-03-31 58 views
2

我想创建一种语言的IDE,我想知道如何实现一些功能。特别是语法突出显示和内容帮助是令人烦恼的,因为即使编辑器内容无效(当用户键入语法时,hightlight不应该因为解析器失败而不会消失),它们仍然必须工作。如何实现内容辅助/语法突出显示?

我想知道如何解决这个问题(以及其他问题)。我发现这个:How does code completion work?与解决这个问题的描述,但它是相当简短的。

我可以想出一种方法来实现我想要的所有功能,但我不是第一个,有人已经完成了它;)(阅读Eclipse的源代码并不那么容易)

所以,我真正的问题是有一本书讨论与创建IDE相关的问题?讨论如何解析无效代码的详细文章?我应该看到的任何信息来源?

啊,通过IDE我不是指新的应用程序,只是一组用于eclipse的插件。

+0

语法突出显示可以通过正则表达式解析(emacs始终)。然而,适当的“intellisense”式支持需要一个适当的解析/增量编译阶段,其中至少确定表达式的类型。至少可以说,这不是一项简单的任务。 – 2012-03-31 01:45:40

+0

我知道我需要解析代码。无论如何,我会需要它来显示调用层次结构/类型层次结构/在类型之间导航/支持重构。但我很想阅读在这方面有经验的人的见解(最好是广泛的,例如一本书)。 – mabn 2012-03-31 02:08:08

回答