Architecture 现代文本编辑器架构示例

Architecture 现代文本编辑器架构示例,architecture,text-editor,Architecture,Text Editor,我正在寻找现代文本编辑器的设计\架构指南 现代文本编辑器意味着: 它支持语法突出显示 它具有自动完成功能(类似IntelliSense) 它具有高级导航功能(增量搜索等) 以下属性将是一个加号: 用托管语言(Java,任何.NET语言)实现 模块化建筑 插件支持 我对与文本编辑器相关的设计\架构文档\文章、开源项目链接非常感兴趣 我对一般推荐、OOP/设计模式书籍广告不感兴趣 目前我正在分析源代码。类似项目的链接将不胜感激。的编辑器很好,也是开源的。您也可以查看源代码。这可能不是您想要的

我正在寻找现代文本编辑器的设计\架构指南

现代文本编辑器意味着:

  • 它支持语法突出显示
  • 它具有自动完成功能(类似IntelliSense)
  • 它具有高级导航功能(增量搜索等)
以下属性将是一个加号:

  • 用托管语言(Java,任何.NET语言)实现
  • 模块化建筑
  • 插件支持
我对与文本编辑器相关的设计\架构文档\文章、开源项目链接非常感兴趣

我对一般推荐、OOP/设计模式书籍广告不感兴趣


目前我正在分析源代码。类似项目的链接将不胜感激。

的编辑器很好,也是开源的。

您也可以查看源代码。

这可能不是您想要的,它基于Mozilla,但为了完整性:


是ActiveState的一项倡议,旨在创建一个用于构建开发人员环境的开源平台。

您看过vim吗?它支持自动补全、语法突出显示、增量搜索、集成构建等。它是模块化的,其许多更高级的功能是作为插件实现的,可以随附,也可以单独找到(例如,svn集成、使用cscope/ctags的代码索引、通过ssh的透明读/写)

它有用于用几种语言(例如python、ruby、perl)编写插件的API,以及自己的扩展语言(“vimscript”)


我不知道他们在高级体系结构文档方面有什么,但是有一个活跃的社区和一个开发人员邮件列表,如果你开始挖掘源代码,应该能够回答关于它如何工作的具体问题。

基于Java的编辑器“jEdit”,是文本编辑器体系结构的一个很好的例子,具有插件支持、强大的用户社区和良好的抽象。

最终的文本编辑器当然是emacs。我发现这是一本优秀的自学指南,可以帮助我掌握编辑的基本知识。这些例子都是用普通的旧C语言编写的,文本可能看起来有点过时(它来自1991年),但基本思想仍然有效,并且您完全理解编辑器的工作方式。

您可以查看

事实上,我在看SharpDevelop,出于某种原因,我通常称之为iTextSharp:-)无论如何,谢谢您的评论。