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

时间:2008-09-12 10:54:46

标签: architecture text-editor

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

现代文本编辑器意味着:

  • 支持语法突出显示
  • 它具有自动完成功能(类似于IntelliSense)
  • 它具有高级导航功能(增量搜索等)

以下属性将是一个加号:

  • 以托管语言(Java,任何.NET语言)实现
  • 模块化建筑
  • 加载项支持

我对文本编辑器相关的设计\ architecure文档\文章,开源项目的链接非常感兴趣。

对一般建议,OOP /设计模式书籍广告感兴趣。

目前我正在分析SharpDevelop code editor源代码。将赞赏与类似项目的链接。

7 个答案:

答案 0 :(得分:9)

最终的文本编辑器当然是emacs。我发现The Craft of Text Editing, or, Emacs for the Modern World 是编写编辑器基础知识的优秀自学指南。这些示例都是普通的旧C,文本可能看起来有点过时(它是从1991年开始),但基本的想法仍然有效,并且您完全理解为什么编辑器的工作方式确实

答案 1 :(得分:4)

SharpDevelop的编辑很好,它也是开源的。

答案 2 :(得分:3)

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

答案 3 :(得分:2)

您还可以查看Scintilla的源代码。

答案 4 :(得分:2)

您可以查看xacc.ide

答案 5 :(得分:1)

这可能不是你想要的,它基于Mozilla,但为了完整起见:

Open Komodo是ActiveState的一项举措,旨在为构建开发人员环境创建一个开源平台。

答案 6 :(得分:0)

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

它具有在几个语言(例如,python,ruby,perl)中编写插件的api以及它自己的扩展语言('vimscript')。

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