热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

现代文本编辑器architecutre的示例-Exampleofmoderntexteditorarchitecutre

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

I'm looking for design\architectual guidance for modern text editors.

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

Modern text editor means that:

现代文本编辑器意味着:

  • It has support for syntax highlighting
  • 它支持语法突出显示

  • It has auto-completion (something like IntelliSense)
  • 它有自动完成(类似于IntelliSense)

  • It has advanced navigation capabilities (incremental search, etc.)
  • 它具有高级导航功能(增量搜索等)

Following properties will be a plus:

以下属性将是一个加号:

  • Implemented in managed language (Java, any .NET language)
  • 以托管语言实现(Java,任何.NET语言)

  • Modular architecutre
  • Add-in support

I'm very interested in text editor related design\architecure documents\articles, links to open source projects.

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

I'm not interested in general recommendations, OOP/design patterns books advertisement.

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

Currently I'm analyzing SharpDevelop code editor source code. Links to similar projects will be appreciated.

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

7 个解决方案

#1


8  

The ultimate text editor is, of course, emacs. I found The Craft of Text Editing, or, Emacs for the Modern World to be an excellent self-study guide for the basics of writing an editor. The examples are all in plain old C, and the text might look a bit dated (it is from 1991), but the basic ideas are still valid, and you thoroughly understand why the editor works the way it does.

最终的文本编辑器当然是emacs。我发现文本编辑工艺,或者现代世界的Emacs是编写编辑器基础知识的优秀自学指南。这些例子都是普通的旧C,文本可能看起来有点过时(它是从1991年开始),但基本的想法仍然有效,你完全理解编辑器的工作方式。

#2


4  

The editor of SharpDevelop is good and it's open source too.

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

#3


3  

The Java-based editor "jEdit", is a good example of text editor architecture, complete with plugin support, a strong user community, and good abstractions.

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

#4


2  

You could also look at the source code for Scintilla.

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

#5


2  

You can check out xacc.ide

你可以看看xacc.ide

#6


1  

It's probably not what you're looking for, it's based on Mozilla, but for completeness sake:

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

Open Komodo is an initiative by ActiveState to create an open source platform for building developer environments.

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

#7


0  

Have you looked at vim? It supports autocompletion, syntax highlighting, incremental search, integrated building, etc, etc. It is modular and many of its more advanced features are implemented as plugins that either ship with it or can be found separately (e.g., svn integration, code indexing with cscope/ctags, transparent reading/writing over ssh).

你看过vim了吗?它支持自动完成,语法高亮,渐进式搜索,综合楼等,等,这是模块化的,它的许多更先进的功能被实现为插件,要么用它,也可以单独找到(例如,SVN集成,代码索引与船cscope / ctags,通过ssh透明读/写)。

It has apis for writing plugins in several langauges (e.g., python, ruby, perl) as well as its own extension language ('vimscript').

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

I don't know what they have in terms of high-level architecture documentation, but there is an active community and a developer mailing list that should be able to answer specific questions about how it works if you start digging through the source.

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


推荐阅读
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
author-avatar
牧高风_457
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有