• 使用MPLex实现语法高亮显示的功能


    没有研究过其它论坛之类的程序是如何实现语法高亮显示这个功能的,可能有的人是使用正则表达式。正则表达式当然很容易理解,关键字、注释和字符串等内容应该是需要不同的正则表达式,在做语法高亮显示的时候,每一个单词都进行使用关键字正则表达式进行匹配,最后全文进行注释和字符串模式匹配。

    这里我介绍另外一种方式来实现语法高亮显示,在Visual Studio SDK里面,提供了一个工具叫做MPLexMPPG。是Visual Studio为集成新的编程语言,新集成进来的编程语言可以使用这两个工具实现语法高亮显示,和智能下拉框等功能。如果你有过LexYacc的使用经验的话,实际上MPLex就是LexC#版本,而MPPG就是Yacc对应的C#版本。前者是词法处理的工具,后者是语法处理的工具。

    我们只用MPLex,因为语法高亮显示只涉及到词法处理,不需要考虑语法的问题当然啦,如果你要达到类似Visual Studio那样,类名都可以高亮的显示的效果,可以考虑实现语法处理和语义处理。

    原理今天来不及写了,有兴趣请下载下面的代码编译执行就好了,可以直接在里面敲C#代码。由于我在处理即时输入的算法是每次只处理一行文本(大部分情况),所以在处理即时多行注释的时候有Bug

    /Files/killmyday/Coder.zip

    下一篇介绍原理。

  • 相关阅读:
    JS常用数值验证
    JS遍历对象的属性和值
    SpringBoot解决特殊符号 []报400问题
    postman工具的用法
    SpringBoot使用谷歌方式生成图片验证码
    hibernate配置多对多ORM映射关系
    hibernate配置一对多ORM映射关系
    Class文件结构
    垃圾收集器与内存分配策略
    hibernate持久化类和一级缓存
  • 原文地址:https://www.cnblogs.com/killmyday/p/1654554.html
Copyright © 2020-2023  润新知