`

TextEditor原理分析笔记

阅读更多

Editor的语法着色原理:Eclipse使用damage ,repair和reconcile模型来实现语法着色功能,当用户每次修改了document,Reconciler就会去计算文档中哪些可视区域是无效的以及如何去repair之:这里的damage表示需要重新加以显示的文本,repair则表示重新进行显示的方式,而reconcile则是这个重新显示的过程.为了定制damage和repair,需要给TextEditor配置自定义的SourceViewerConfigration,TextEditor中的主要组成部分叫SourceViewer,默认情况下SourceViewer不支持语法着色功能,而通过扩展SourceViewerConfiguration就可以对SourceViewer进行定制,通过复写SourceViewerConfiguration的getPresentationReconciler()方法就可以定制我们自己的Reconciler,定制Reconciler主要是给其配置相关的Damager和Repairer,而这两个东东又会跟RuleScanner关联:

java 代码
  1. PresentationReconciler reconciler = new PresentationReconciler();   
  2. DefaultDamagerRepairer dr = new DefaultDamagerRepairer (getTagScanner());   
  3. reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);   
  4. reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);  


RuleScanner定义了各种用于区分各种Token的规则以及相关的TextAttribute(颜色属性就定义在里面)

内容辅助功能的实现:需要改写SourceViewerConfiguration.getContentAssistance()方法,而自动完成行为的设置通过定义不同的CompletionProcessor来实现, CompletionProcessor需要复写getCompletionProposalAutoActivationCharacters()来告诉编辑器在输入何种内容时给出自动提示的内容,同时还需要实现computeCompletionProposals()方法来告诉要显示的提示内容(completion proposal)

分享到:
评论

相关推荐

    SAP SCR LEGACY TEXT EDITOR GUI8.00

    SAP SCR LEGACY TEXT EDITOR GUI8.00是一款专为SAP ABAP开发者设计的文本编辑工具,它提供了一种高效且用户友好的界面,用于处理遗留的文本编辑任务。此工具支持32位和64位操作系统,确保了在不同硬件环境下的兼容性...

    SAPscript text editor 740&800安装包

    在描述中提到的“SAPscript text editor 740&800安装包”是为两个不同版本的SAP系统设计的文本编辑器:740和800。这两个版本的编辑器可能包含针对各自系统优化的功能和改进,确保在不同版本的SAP环境中能够顺利地...

    SAPscript Legacy Text Editor patch 报错补丁程序

    SAPscript Legacy Text Editor patch 报错补丁程序。 SAP GUI 740/750 Smartforms Editor 报错补丁,SAPscript Legacy Text Editor patch, sap smartforms ,scriptforms SAPscript Legacy Text Editor patch

    Patch SAPscript Legacy Text Editor

    1. Patch Description: Patch SAPscript Legacy Text Editor 2. Patch Name: SAPSLTESP00_0-70001053 Since SAPGUI for Windows Release 7.40 Compilation 2 (Patch 05) and higher, the controls for SAPscript ...

    ICSharpCode.TextEditor_2.2实现语法加亮的编辑器(含源代码)

    ICSharpCode.TextEditor_2.2是一个开源的文本编辑器组件,主要由C#语言编写,专为.NET Framework设计。这个编辑器具有多种高级功能,是开发者在构建自定义应用程序时,尤其是涉及到代码编辑和查看时的一个理想选择。...

    ICSharpCode.TextEditor如何自定义代码折叠和高亮

    ICSharpCode.TextEditor是一款在.NET平台上广泛使用的开源代码编辑控件,它提供了丰富的文本编辑功能,包括代码高亮和折叠,使得开发人员可以方便地在应用程序中集成代码编辑功能。这款控件支持多种编程语言的语法...

    TextEditor

    3. **笔记整理**:用户可以利用TextEditor的多文档管理功能,整理和保存各种笔记,便于日后查阅。 4. **配置文件编辑**:在系统管理和网络配置中,TextEditor可用于编辑配置文件,如hosts文件、ini文件等。 四、...

    eclipse中texteditor的插件

    实现自定义TextEditor插件,一般需要继承`AbstractTextEditor`类或`TextEditor`类,并重写其中的方法,如`createPartControl`、`doSetInput`等,以实现特定语言的解析、语法分析等功能。 5. **内容提供者(Content...

    SAPscript Legacy Text Editor

    安装sap gui 750后,打开smartforms或scriptforms提示:CSapEditorCtrl::GetObject: Object 13 does not exist的解决方法: 下载SAPscript Legacy Text Editor patch,安装到本机就OK了。

    e-texteditor 2.01

    **E-TextEditor 2.01:新一代的文本编辑利器** E-TextEditor是一款备受赞誉的文本编辑软件,其2.01版本在原有基础上进行了优化和升级,旨在为用户提供更为高效、全面的文本处理体验。这款软件以其强大的功能和多...

    支持TSQL的语法高亮显示编辑控件ICSharpCode.TextEditor

    **ICSharpCode.TextEditor** 是一个强大的文本编辑控件,源于知名的开源项目 **SharpDevelop**。这个编辑器组件被设计用于提供多语言的代码编辑功能,尤其值得一提的是它对 **TSQL** 语法的高亮显示支持。TSQL,全称...

    textEditor 网页文本编辑器

    本文将深入探讨textEditor的核心功能、工作原理以及如何在项目中集成和自定义。 一、textEditor概述 textEditor是为简化网页表单中的文本输入而设计的,它将传统的HTML文本框升级为一个富文本编辑环境,支持文字...

    JAVA文本编辑器TextEditor

    【JAVA文本编辑器TextEditor】是一款基于JAVA编程语言开发的简单文本编辑工具,它具备基本的文本处理功能,如打开、保存文档,并且允许用户进行颜色和字体的个性化设置,以提升文字编辑体验。在这款编辑器中,用户...

    ICSharpCode.TextEditor更新

    ICSharpCode.TextEditor是一款开源的、基于.NET Framework的文本编辑组件,主要应用于开发需要内置代码编辑功能的应用程序。它的更新通常会带来性能提升、新功能的添加或已有功能的优化,以满足开发者对代码编辑器日...

    TextEditor文本整理器V5.0

    大家都会遇到,在网上复制的文字,有的前面没有空两格,有的段落间空行混乱,有的是繁体的,有的前后空格很多,不好去除,有的有乱七八糟的...遇到上面的这些问题,可以试试这个程序,文本整理器,英文名是TextEditor。

    SAPscript Legacy Text Editor patch

    标题中的"SAPscript Legacy Text Editor patch"涉及到的是SAP系统中的一个老版本文本编辑器的更新补丁。SAPscript是一种用于创建打印形式的编程语言,它允许用户自定义打印输出,如发票、报告等。在SAP系统中,这个...

    ICSharpCode.TextEditor V2.2源码

    支持TSQL语法,并增加了显示隐藏滚动条功能,调用如下: 显示:txtContent.ActiveTextAreaControl.ShowScrollBar(); 隐藏: txtContent.ActiveTextAreaControl.HideScrollBar();

    E-TextEditor v1.0.20 绿色特别版

    《E-TextEditor v1.0.20 绿色特别版:新一代窗口文本编辑工具解析》 在当今数字化时代,高效便捷的文本编辑器已经成为程序员、写作爱好者和日常用户不可或缺的工具。E-TextEditor v1.0.20 绿色特别版就是这样一个...

    text editor

    这里提到的“text editor”是一款基于Java语言编写的文本编辑器,主要用于实验目的,同时也作为个人备份使用。Java作为一种跨平台的编程语言,使得这款文本编辑器具备了在不同操作系统上运行的能力,如Windows、...

Global site tag (gtag.js) - Google Analytics