TextEditor原理分析笔记
关键字: TextEditor SourceViewerConfigurationEditor的语法着色原理: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关联:
- PresentationReconciler reconciler = new PresentationReconciler();
- DefaultDamagerRepairer dr = new DefaultDamagerRepairer (getTagScanner());
- reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
- reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
RuleScanner定义了各种用于区分各种Token的规则以及相关的TextAttribute(颜色属性就定义在里面)
内容辅助功能的实现:需要改写SourceViewerConfiguration.getContentAssistance()方法,而自动完成行为的设置通过定义不同的CompletionProcessor来实现, CompletionProcessor需要复写getCompletionProposalAutoActivationCharacters()来告诉编辑器在输入何种内容时给出自动提示的内容,同时还需要实现computeCompletionProposals()方法来告诉要显示的提示内容(completion proposal)
发表评论
我的相册
共 146 张
最近加入圈子
链接
最新评论
-
电话面试收集
不错,博主应该已经面试过很多人了吧!
-- by sunrise353 -
28岁转行做IT(zt)
25岁以前我还在见证钢铁是怎样炼成的,25岁的时候我想知道网站是怎么回事,于是我 ...
-- by wangyifeng -
28岁转行做IT(zt)
26岁 办证刻章
-- by hellowei -
28岁转行做IT(zt)
我26岁半,以前做通信,见到此文,很高兴.另外,我在ext论坛上好像看到一个 e ...
-- by llp20_2000 -
jms学习笔记
你好,我正在研究JMS,其中有很多问题不明白,希望你能够教我一下,谢谢了,我的q ...
-- by 6308907







评论排行榜