像代码应用程序一样编写Visual Studio的最佳方法

The*_*nja 1 syntax-highlighting visual-studio

我需要制作一个可以进行语法高亮显示的程序和类似于visual studio的下拉式自动完成功能.Id也希望能够在可能的情况下折叠和扩展代码段.

在使用富文本编辑器和使用reg表达式应用着色之前,我尝试对此进行编码.这是非常耗费处理器的,并且会导致较大文件的延迟.然后我想也许我真的错了.

所以我的问题是

如果你必须在VB.net或C#中编写类似程序的视觉工作室.你会怎么做呢?

Dón*_*nal 7

差不多上的源代码(例如,一个IDE的编辑器,编译器)运行的所有工具,不要把该代码为通过regexs解析文本,因为这种方法只是在现实世界规模不起作用.这些工具在称为抽象语法树(AST)的源代码模型上运行,该代码将代码建模为树结构.在用C语言编写的程序中,该树的根节点是执行开始的主要方法,该根的子节点是传递给main方法的参数,等等.

当对代码执行操作时(例如,突出显示语法,重构),它们使用诸如访问者模式之类的东西在树上执行,并且源文件与AST保持同步.

当代码更新时,使用词法分析器将其解析为令牌,然后使用解析器进行分析,如果遵循语言的语法规则,则更新AST.要了解有关解析器,词法分析器,语法和AST的更多信息,我建议您查看ANTLR.


Rob*_*ino 5

如果您真的想从头开始,可以将源代码下载到这个免费的开源IDE中,该IDE提供了与Visual Studio等IDE相同的功能:

#develop(SharpDevelop的简称).

它应该包含您需要的代码设计.

alt text http://static.icsharpcode.net/OpenSource/SD/TeaserSharpDevelop2OnVista.png

请享用,