• (二)如何利用C# Roslyn编译器写一个简单的代码提示/错误检查?


    上一篇我们讲了如何建立一个简单的Roslyn分析项目如分析检查我们的代码。

    今天我们主要介绍各个项目中具体的作用以及可视化分析工具。

     还是这种截图,可以看到解决方案下一共有三个项目。

    Analyzer1 : 这是比较核心的模块,主要包括两块内容,代码问题的诊断(diagnostics )和代码问题的修复(fix),该项目编译后会生成一个analyzer DLL文件。当然,同时也会生成一个NuGet package。

    Analyzer1.Vsix: 这是一个扩展插件,会把第一个项目生成的analyzer Dll文件嵌入进去。我们启动/调试项目的时候会运行Analyzer.Vsix这个项目,会生成一个VS窗口实例。(对于VS扩展插件知识,其实了解的同学如果觉得VS有些按钮或功能不足,完全可以通过自定义VS扩展插件实现自己想要的IDE功能)

    Analyzer1.Test: 单侧项目不用多说,主要测试analyzer 项目代码work情况。

    大家主要看看Analyzer1里的核心代码即可,当然如果要写出好的检查分析代码,则必须要借助一个工具 Syntax Visualizer :

    这是左侧的Syntax Visualizer 语法可视化工具,当你点击任意节点时,右侧则会自动选中相关的代码或空格符号等内容。

     

     简单理解,蓝色为代码结构,绿色表示一些独立的单词、数字、符号等。红色的则表示空格、注释等。

    这里我找了一个Syntax Visualizer 结构树的图:

     其代码内容为: 

    Regex.Match("my text", @"pXXX"); 大家可以比对上面的图看看。

    今天基本上就是这样,大家可以看一下代码,自己操作一遍。后面将会开始我们第一个诊断程序的编写。
  • 相关阅读:
    JVM内存分析 规格严格
    比MyBatis快了100倍 规格严格
    jstatd运行,远端监控 规格严格
    浅谈Linux下查看某一进程占用的内存 规格严格
    如何查看jvm堆外内存使用情况? 规格严格
    nginx location中uri的截取的实现方法 规格严格
    date获取毫秒和秒 规格严格
    DAX 第四篇:行上下文
    钓鱼邮件
    Htmx 使html 也可以发送请求
  • 原文地址:https://www.cnblogs.com/0110x/p/11795096.html
Copyright © 2020-2023  润新知