现代文本编辑器architecutre的示例
时间:2020-03-05 18:52:07 来源:igfitidea点击:
我正在寻找现代文本编辑器的设计\体系结构指南。
现代文本编辑器意味着:
- 它支持语法突出显示
- 它具有自动补全功能(类似于IntelliSense)
- 它具有高级导航功能(增量搜索等)
以下属性将是一个加分:
- 以托管语言(Java,任何.NET语言)实现
- 模块化建筑
- 加载项支持
我对与文本编辑器相关的设计\架构文档\文章,以及到开源项目的链接非常感兴趣。
我对一般性建议,OOP /设计模式书籍广告不感兴趣。
目前,我正在分析SharpDevelop代码编辑器源代码。链接到类似项目将不胜感激。
解决方案
回答
SharpDevelop的编辑器很好,它也是开源的。
回答
我们也可以查看Scintilla的源代码。
回答
它可能不是我们想要的,它基于Mozilla,但出于完整性考虑:
Open Komodo是ActiveState的一项举措,旨在创建一个用于构建开发人员环境的开源平台。
回答
你看过vim吗?它支持自动完成,语法突出显示,增量搜索,集成的构建等。它是模块化的,其许多更高级的功能都作为随其附带或者可以单独找到的插件实现(例如svn集成, cscope / ctags,通过ssh透明读取/写入)。
它具有用于以多种语言(例如python,ruby,perl)编写插件以及自己的扩展语言('vimscript')的API。
我不知道他们在高级体系结构文档方面有什么内容,但是如果我们开始深入研究源代码,那么有一个活跃的社区和开发人员邮件列表应该能够回答有关其工作方式的特定问题。
回答
基于Java的编辑器" jEdit"是文本编辑器体系结构的一个很好的例子,它具有插件支持,强大的用户社区和良好的抽象性。
回答
最终的文本编辑器当然是emacs。我发现《文本编辑的技巧》或者《现代世界的Emacs》是编写编写编辑器基础知识的出色自学指南。这些示例全部使用普通的C语言编写,并且文本可能看起来有些过时(它是1991年的版本),但是基本思想仍然有效,并且我们完全了解了编辑器为何按其方式工作。
回答
我们可以签出xacc.ide