【发布时间】:2012-04-14 16:27:02
【问题描述】:
我想为一种语言创建一个 IDE,我想知道如何实现一些功能。尤其是语法高亮和内容辅助令人不安,因为即使编辑器内容无效(当用户键入语法高亮不应该仅仅因为解析器失败而消失),它们也必须工作。
我想知道如何解决这个问题(以及其他问题)。我找到了这个:How does code completion work?,其中描述了这个问题的解决方案,但它相当简短。
我可以想出一种方法来在某个时候实现我想要的所有功能,但我不是第一个,而且有人已经做到了;)(并且阅读 Eclipse 的源代码并不那么容易)
那么,我真正的问题是有没有一本书讨论与创建 IDE 相关的问题?详细的文章讨论如何解析无效代码?我应该查看任何信息来源吗?
啊,我所说的 IDE 并不是指一个新的应用程序,只是一组用于 eclipse 的插件。
【问题讨论】:
-
语法高亮可以用正则表达式和解析来伪造(emacs一直都这样做)。然而,适当的“智能感知”式支持需要适当的解析/增量编译阶段,其中至少要确定表达式的类型。至少可以说,这不是一项简单的任务。
-
我知道我需要解析代码。无论如何,我都需要它来显示调用层次结构/类型层次结构/在类型之间导航/支持重构。但我很想阅读在该领域有经验的人的见解(最好是广泛的东西,例如一本书)。
标签: ide syntax-highlighting content-assist