10

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

现代文本编辑器意味着:

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

以下属性将是一个加号:

  • 以托管语言(Java、任何 .NET 语言)实现
  • 模块化架构
  • 插件支持

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

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

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

4

7 回答 7

9

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

于 2008-09-15T15:09:39.000 回答
4

SharpDevelop的编辑器不错,也是开源的。

于 2008-09-12T10:57:52.983 回答
3

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

于 2008-09-15T14:58:33.647 回答
2

您可以查看xacc.ide

于 2008-10-01T19:36:04.930 回答
2

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

于 2008-09-12T10:58:41.937 回答
1

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

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

于 2008-09-12T11:35:17.823 回答
0

你看过vim吗?它支持自动补全、语法高亮、增量搜索、集成构建等。它是模块化的,并且它的许多更高级的功能都是作为插件实现的,这些插件可以随它一起提供,也可以单独找到(例如,svn 集成、代码索引) cscope/ctags,通过 ssh 进行透明读/写)。

它有用于用多种语言(例如,python、ruby、perl)编写插件的 api,以及它自己的扩展语言('vimscript')。

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

于 2008-09-15T14:30:06.583 回答