zoukankan      html  css  js  c++  java
  • Eclipse plugin开发 —实现语法高亮

    1. 在public class XMLConfiguration中添加扫描函数:

    protected ValueScanner getValueScanner() {
    if (valuescanner == null) {
    valuescanner = new ValueScanner(colorManager);
    valuescanner.setDefaultReturnToken(
    new Token(
    new TextAttribute(
    colorManager.getColor(IXMLColorConstants.DEFAULT))));
    }
    return valuescanner;
    }

    2. 在getPresentationReconciler函数中添加:

    dr = new DefaultDamagerRepairer(getValueScanner());
    reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
    reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);

    3. 最后添加两个类:ValueScanner和WordDetector:

    public class ValueScanner extends RuleBasedScanner{

    String[]keywords = {"continent","country","hi","int"};

    String[] funwords = {"short","long","double","long long",
    "char","float","boolean","octet","string",
    "unsigned short","unsigned long","unsigned long long"};

    public ValueScanner(ColorManager manager)
    {
    IToken keywordToken =
    new Token(
    new TextAttribute(manager.getColor(IXMLColorConstants.STRING)));//IXMLColorConstants.STRING指定颜色

    IToken funwordToken =
    new Token(
    new TextAttribute(manager.getColor(IXMLColorConstants.TAG)));

    WordRule keywordRule = new WordRule(new WordDetector());
    for(int i=0;i<keywords.length;i++)
    {
    keywordRule.addWord(keywords[i], keywordToken);
    }
    for(int i=0;i<funwords.length;i++)
    {
    keywordRule.addWord(funwords[i], funwordToken);
    }
    setRules(new IRule[]{keywordRule});
    }
    }

    //******************************************************************

    public class WordDetector implements IWordDetector{

    public boolean isWordStart(char c){
    return Character.isLetter(c);
    }

    public boolean isWordPart(char c){
    return Character.isLetterOrDigit(c);
    }
    }

    4. 打完手工。

  • 相关阅读:
    poj1417(带权并查集+背包DP+路径回溯)
    poj1182(带权并查集)
    hdoj3038(带权并查集)
    poj1611(并查集简单应用)
    poj2236(并查集)
    莫队板子,例题
    离散化二维坐标
    P2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
    树链剖分板子
    P2486 [SDOI2011]染色 区间合并+树链剖分(加深对线段树的理解)
  • 原文地址:https://www.cnblogs.com/wangjiyuan/p/texteditor3.html
Copyright © 2011-2022 走看看