zoukankan      html  css  js  c++  java
  • Eclipse plugin开发 —实现单行与多行注释

    在public class XMLPartitionScanner中可以添加一些规则以保证对“//”和“/*....*/”做出相应。做起来很简单,只是应该明白其中的运行原理。本人经过实验可以达到最终的结果,但是对于原理不是很清楚。这次主要说明做法,原理下次待我研究研究再说。

    1. 在public class XMLPartitionScanner中添加两个字符串常量,作为单行注释与多行注释的标识:

    public class XMLPartitionScanner extends RuleBasedPartitionScanner {
    public final static String XML_SINGLELINE_COMMENT = "__xml_singleline_comment";
    public final static String XML_MULTILINE_COMMENT = "__xml_multiline_comment";

    然后添加IToken:

    IToken xmlSingleLineComment = new Token(XML_SINGLELINE_COMMENT);
    IToken xmlMultiLineComment = new Token(XML_MULTILINE_COMMENT);

    最后为他们添加规则:

    rules[0] = new MultiLineRule("//", "\n", xmlSingleLineComment);
    rules[1] = new MultiLineRule("/*", "*/", xmlMultiLineComment);

    2. 在public class XMLDocumentProvider中添加testeditor.editors.XMLPartitionScanner:

    new String[] {
    XMLPartitionScanner.XML_TAG,
    XMLPartitionScanner.XML_SINGLELINE_COMMENT,
    XMLPartitionScanner.XML_MULTILINE_COMMENT

    3. 在public class XMLConfiguration的getConfiguredContentTypes(ISourceViewer sourceViewer)中添加返回字符串:

    XMLPartitionScanner.XML_SINGLELINE_COMMENT,
    XMLPartitionScanner.XML_MULTILINE_COMMENT,

    在getPresentationReconciler(ISourceViewer sourceViewer)中添加响应:

    reconciler.setDamager(ndr, XMLPartitionScanner.XML_MULTILINE_COMMENT);
    reconciler.setRepairer(ndr, XMLPartitionScanner.XML_MULTILINE_COMMENT);

    reconciler.setDamager(ndr, XMLPartitionScanner.XML_SINGLELINE_COMMENT);
    reconciler.setRepairer(ndr, XMLPartitionScanner.XML_SINGLELINE_COMMENT);

    4. 最后run as eclipse application,new一个file,后缀.xml,open with sample xml editor即可进行调试。

  • 相关阅读:
    【蜕变之路】第20天 UUID和时间戳的生成 (2019年3月10日)
    3.EntityFramework的多种记录日志方式,记录错误并分析执行时间过长原因(系列4)
    reactnative资源
    代码
    模板匹配模型、原型模型和区别性特征模型各自如何解释汉字的知觉
    mysqldatadir 转移
    mysql主从设置windows
    心灵鸡汤
    测试的发现遗漏BUG的做法
    汉字模式匹配的过程
  • 原文地址:https://www.cnblogs.com/wangjiyuan/p/TextEditor2.html
Copyright © 2011-2022 走看看