<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    子非魚

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      21 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

    參考:http://dev.eclipse.org/newslists/news.eclipse.platform.rcp/msg01745.html
    在非Editor中實現(xiàn)syntax coloring


    Rainer wrote:
    I hope this is the right place to ask this question:

    It's fine; eclipse.platform would have been right as well.

    I am working on a simple XML editing rich client. One of the main components is a JFace TextViewer, embedded in an Eclipse view (I can't use an Eclipse editor in my special case, unfortunately). I want to add syntax coloring, but can't seem to get the presentation reconciler to work.

    Here's the sample code:

    [...]

    reconciler= new PresentationReconciler();
    DefaultDamagerRepairer dr = new DefaultDamagerRepairer(new CodeRuleScanner());
    dr.setDocument(viewer.getDocument());
    reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
    reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
    reconciler.install(viewer);


    [..]

    The CodeRuleScanner (extends RuleBasedScanner) is configured with a set of rules and a default token. However, the PresentationReconciler seems to be totally inactive. Is there any further configuration necessary?

    No. If you look at the implementation of PresentationReconciler.install, you will see that it waits until the viewer's document is set (via an ITextInputListener). So, in order for the above to work, you have to set the document *after* installing the reconciler.


    You should also look at SourceViewer that adds more features and configures itself in the right order using a SourceViewerConfiguration.

    HTH, tom
     
    正確的做法:
     
    PresentationReconciler reconciler= new PresentationReconciler();
            DefaultDamagerRepairer dr 
    = new DefaultDamagerRepairer(new PolicyCodeScanner(new ColorProvider()));
            
            reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
            reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
            reconciler.install(sourceViewer);
    //PresentationReconciler.install必須在setDoucument之前,切記
            
            
    //設(shè)置字體
            sourceViewer.getTextWidget().setFont(new Font(sourceViewer.getControl().getDisplay(), 
                    
    new FontData("Courier"10, SWT.NORMAL)));
            
    //設(shè)置當(dāng)前編輯行的背景色
            CursorLinePainter painter= new CursorLinePainter(sourceViewer);
            painter.setHighlightColor(yellow);
            sourceViewer.addPainter(painter);
            
            
    //設(shè)置文檔幫助
            final ContentAssistant assistant = new ContentAssistant();
            assistant.setContentAssistProcessor(
    new PolicyContentAssistProcessor(), IDocument.DEFAULT_CONTENT_TYPE);
            assistant.install(sourceViewer);
            
            
    //設(shè)置文本內(nèi)容
            sourceViewer.setDocument(new Document(this.content));
            
            dr.setDocument(sourceViewer.getDocument());
            
     
      
    另外:
    注入config:

    sourceViewer.configure(SourceViewerConfiguration configuration)


     

    posted on 2007-07-24 16:34 子非魚 閱讀(417) 評論(0)  編輯  收藏 所屬分類: eclipse
    主站蜘蛛池模板: 亚洲午夜精品久久久久久app| caoporm碰最新免费公开视频| 久久午夜夜伦鲁鲁片免费无码| 又大又粗又爽a级毛片免费看| www.亚洲一区| 亚洲精品国产美女久久久| 亚洲精品一区二区三区四区乱码 | 亚洲欧洲日韩不卡| 国产麻豆成人传媒免费观看| 亚洲无砖砖区免费| 亚洲国产成人精品青青草原| 无码人妻精品中文字幕免费东京热| 国产在线观看麻豆91精品免费| 亚洲视频在线观看地址| 麻豆91免费视频| 亚洲三级在线免费观看| 亚洲国产精品嫩草影院久久| 一级毛片人与动免费观看| 综合亚洲伊人午夜网| 久久免费视频99| 亚洲一区动漫卡通在线播放| a级毛片免费在线观看| 久久久久亚洲AV成人无码网站| 香蕉视频免费在线播放| 久久久久亚洲AV综合波多野结衣| www在线观看免费视频| 亚洲av成人无码久久精品| 国产在线观看麻豆91精品免费| 亚洲精品蜜夜内射| 1000部拍拍拍18免费网站| 在线亚洲高清揄拍自拍一品区| 爽爽日本在线视频免费| 亚洲成在人线电影天堂色| 日韩中文字幕免费| 中文在线日本免费永久18近| 亚洲成人在线免费观看| 免费人成视频在线观看不卡| 国产一区二区免费视频| 亚洲色丰满少妇高潮18p| 国产亚洲精品成人AA片新蒲金 | 中文字幕无码免费久久|