Architecture 现代文本编辑器架构示例
我正在寻找现代文本编辑器的设计\架构指南 现代文本编辑器意味着:Architecture 现代文本编辑器架构示例,architecture,text-editor,Architecture,Text Editor,我正在寻找现代文本编辑器的设计\架构指南 现代文本编辑器意味着: 它支持语法突出显示 它具有自动完成功能(类似IntelliSense) 它具有高级导航功能(增量搜索等) 以下属性将是一个加号: 用托管语言(Java,任何.NET语言)实现 模块化建筑 插件支持 我对与文本编辑器相关的设计\架构文档\文章、开源项目链接非常感兴趣 我对一般推荐、OOP/设计模式书籍广告不感兴趣 目前我正在分析源代码。类似项目的链接将不胜感激。的编辑器很好,也是开源的。您也可以查看源代码。这可能不是您想要的
- 它支持语法突出显示
- 它具有自动完成功能(类似IntelliSense)
- 它具有高级导航功能(增量搜索等)
- 用托管语言(Java,任何.NET语言)实现
- 模块化建筑
- 插件支持
目前我正在分析源代码。类似项目的链接将不胜感激。的编辑器很好,也是开源的。您也可以查看源代码。这可能不是您想要的,它基于Mozilla,但为了完整性:
是ActiveState的一项倡议,旨在创建一个用于构建开发人员环境的开源平台。您看过vim吗?它支持自动补全、语法突出显示、增量搜索、集成构建等。它是模块化的,其许多更高级的功能是作为插件实现的,可以随附,也可以单独找到(例如,svn集成、使用cscope/ctags的代码索引、通过ssh的透明读/写) 它有用于用几种语言(例如python、ruby、perl)编写插件的API,以及自己的扩展语言(“vimscript”)
我不知道他们在高级体系结构文档方面有什么,但是有一个活跃的社区和一个开发人员邮件列表,如果你开始挖掘源代码,应该能够回答关于它如何工作的具体问题。基于Java的编辑器“jEdit”,是文本编辑器体系结构的一个很好的例子,具有插件支持、强大的用户社区和良好的抽象。最终的文本编辑器当然是emacs。我发现这是一本优秀的自学指南,可以帮助我掌握编辑的基本知识。这些例子都是用普通的旧C语言编写的,文本可能看起来有点过时(它来自1991年),但基本思想仍然有效,并且您完全理解编辑器的工作方式。您可以查看事实上,我在看SharpDevelop,出于某种原因,我通常称之为iTextSharp:-)无论如何,谢谢您的评论。