GhostDoc的使用

news/2023/6/8 19:51:57

一、简介

  GhostDoc是Visual Studio的一个免费插件,可以为开发人员自动生成XML格式的注释文档。

  

  二、下载

  需要的朋友可以去这里下载,填个Email地址就可以下了:GhostDoc下载地址

  

  三、安装

  下载安装完成后,可以在Visual Studio的工具菜单下找到GhostDoc的身影。

  

  

  在第一次使用时,会要求设置快捷键,默认的是Ctrl+Shift+S,如果这和你设置的快捷键有所冲突的话,可以在选择的下拉列表里另外选择一个。

 

  GhostDoc使用的优点自然是可以快速生成注释,提高开发效率,但是缺点也不少,首先她生成的注释都是英文,难免有时看的会不顺眼,而且有时会无法生成准确的注释,原因在于 GhostDoc生成注释的质量很大程度上取决于标识符命名的质量,比如方法用Pascal命名法,变量用Camel命名法等,所以使用GhostDoc也可以变向的检查一下你的命名是否合理,是否足够见名之意。

 

  如果你的类成员是用于实现接口或重写基类的成员,GhostDoc会使用既存的文档,不论这些接口或基类来自何处,如果没有既存的文档可用,GhostDoc会试着”猜测”如何为你生成注释,当然准确性可能就要看RP了。。。

 

  四、使用

  1、如果无法识别出变量的名字,GhostDoc就只会生成summary的标签,此时光标会移到空白的注释内容上:

  

 

  2、有时生成的注释会不准确,或者不符合个人的习惯:

  

 

  3、如果命名合理,当然还是能够准确的生成注释的:

  

  

  五、自定义配置

    除了简单的使用之外,还可以去GhostDoc中去进行自定义配置:

  

  

  配置的方法在安装目录下有一个GhostDoc的帮助文档,可以按照文档进行详细设置,这里就简单举个例子好了:

  

  1、先说最后一个Options选项卡,因为感觉比较实用有些,这里可以自动生成附加注释,这里有一个CustomText的文本框,这里既可以输出自己想要的注释,也可以点击旁边的按钮使用系统已定义的宏变量,如下所示:

  

    这样生成的注释如下:

  

    呵呵,感觉不错。。  

 

  2、下面说说第一个“规则”选项卡,也是最重要的一个,这里随便点开一个有代表性的:

  

  

  在描述可以看到这个规则会检测返回的一个以can开头的布尔值,下面是返回的模板和生成的summary注释模板,这里有着最高优先级的会出现在第一个,如果没有匹配第一个的就依次向下查找。

 

  这里可能是配置最复杂但也需求最多的地方,就以添加一个简单的个性方法为例吧:

  在Methods上点击Add,然后随便填入一个你喜欢的名字,随后进入Method配置:

  

  配置完成后,可以在下面进行个简单的测试。

 

  随后进入type配置:

  

  需要的还可以进行参数配置,方法都是大同小异的。

 

  随后配置summary标签的模板,比如:

  

  或者可以点击后面的按钮选择系统自定义的宏。

 

  配置好了,下面来看看结果:

  

  得到了我们想要的结果。。^_^

 

  3、第二个选项卡是缩写词的设置,这里指的是GhostDoc会尝试检测的首字母缩写,比如BuildHtmlText()方法中的Html会被解释成HTML,但其只自动处理辅音字幕,而其他的词则必须在这个对话框选项卡的配置表进行。

  比如:

  

    随后在规则中添加UML,重新生成注释如下:

  

  4、"Of the"规则:比如这里定义了size,那么类似"FileBufferSize"的词就会注释成"Size of the file buffer",貌似俺没有啥需要自定义的了。。。

  5、"No the" Word:在GhostDoc创建注释时会在标识名前创建一个the,而这个选项卡的列表中显示的内容则不会创建,效果如下:

    没有添加规则时:

  

    添加myx进入此规则,重新生成注释:

  

    这个貌似有些无关痛痒,估计也就老外也会对这个the有些在意,所以才整了这么一个规则。。。

 

  六、其他技巧示例

  GhostDoc会自动检测到继承和重写的方法注释,这也大大简化了操作。

  例一:继承

   这里定义一个简单的属性,看看注释的效果:

  

  再看看重写时注释的效果:

  

  哈哈,已经可以得到我们之前注释的内容了。。。

  这里需要注意的是:必须使用summary注释标签,简单的 // 注释GhostDoc是不会理睬的。。。

  

  例二:重写

   如果你要硬说GhostDoc不能生成中文的注释,那也是不对的,其实如果你装的是中文版的VS,那么完全是可以生成中文的注释的,比如这里我们

 继承了System.Web.UI下面的ControlBuilder类,并准备重写HtmlDecodeLiterals()方法,先看一下VS现在的智能提示: 

 

  现在生成注释,看看效果:

   

 

 

  不错不错,注释非常标准,就和手写的一模一样的。。

转载于:https://www.cnblogs.com/Bonker/p/3272283.html


https://dhexx.cn/news/show-18269.html

相关文章

Linux服务器编辑jar包并重新运行与直接修改jar包

Linux服务器编辑jar包并重新运行与直接修改jar包一、第一种效果展示1、修改前jar包2、修改中3、修改后二、第一种命令三、第二种编辑jar包一、第一种效果展示 1、修改前jar包 2、修改中 3、修改后 二、第一种命令 #解压jar包 jar xvf xxx.jar #进相关目录改非class文件 #改…

hdu 4686 Arc of Dream(矩阵快速幂)

链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid4686 题意&#xff1a; 其中a0 A0ai ai-1*AXAYb0 B0bi bi-1*BXBY 最后的结果mod 1,000,000,007 n<10^18. 分析&#xff1a;ai*bi(ai-1 *axay)*(bi-1 *bxby) (ai-1 * bi-1 *ax*bx)(ai-1 *ax*by)(bi-1 *bx*ay)…

kafka概述,架构说明,相关的名词解释

消息队列两种模式&#xff1a;点对点与发布订阅 生产者发送一条消息到queue&#xff0c;只有一个消费者能收到。 发布者发送到topic的消息&#xff0c;只要订阅了该topic的订阅者都会收到消息。kafka架构图 Kafka 是一个分布式(发布订阅的)消息队列。Kafka 对消息保存时根据 …

JAVA基础知识

JAVA基础知识一、什么是对象二、JVM性能调优1、栈2、程序计数器3、堆4、方法区&#xff08;1.8后称元空间&#xff09;5、本地方法栈6、STW7、总结三、Jdk和Jre和Jvm四、与equals五、final六、String、StringBuffer、StringBuilder七、重载和重写八、抽象类和接口的区别九、lis…

kafka四大核心api

使用 Producer API 发布消息到kafka集群中一个或多个topic。 (重点掌握) 使用 Consumer API 来订阅一个或多个topic&#xff0c;并处理产生的消息。 (重点掌握) 使用 Streams API 充当一个流处理器&#xff0c;从1个或多个topic消费输入流&#xff0c;并生产输出流到1个或多个…

java List的用法

List的用法List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口&#xff0c;所以List接口拥有Collection接口提供的所有常用方法&#xff0c;又因为List是列表类型&#xff0c;所以List接口还提供了一些适合于自身的常用方法&#xff0c;如表1所示。表…

抽象数据类型的表示与实现

各种字符的定义代码如下&#xff1a; // liyuechao // 2014.8.7 // c1.h//c1.h文件名字 #include<string.h> #include<ctype.h> #include<malloc.h> // malloc()等 #include<limits.h> // INT_MAX等 #include<stdio.h> // EOF(^Z或F6),…

kafka工作流程分析-生产过程

Kafka 生产过程分析 写入方式producer 采用推&#xff08;push&#xff09;模式将消息发布到 broker&#xff0c;每条消息都被追加&#xff08;append&#xff09;到分区&#xff08;patition&#xff09;中&#xff0c;属于顺序写磁盘&#xff08;顺序写磁盘效率比随机写内存要…

事务隔离级别和MVCC的关系

文章目录一、四种事务隔离级别二、隔离级别解决了哪些问题&#xff08;MVCC&#xff09;1、隔离级别2、MVCC3、测试命令四、小结五、MVCC总结一、四种事务隔离级别 名称效果读未提交&#xff08;READ UNCOMMITTED&#xff09;一个事务还没提交时&#xff0c;它做的变更就能被别…

kafka工作流程分析-Broker保存消息

存储方式 物理上把 topic 分成一个或多个 patition&#xff08;对应 server.properties 中的 num.partitions3 配置&#xff09;&#xff0c;每个 patition 物理上对应一个文件夹&#xff08;该文件夹存储该 patition 的所有消息和索引文件&#xff09;&#xff0c;如下&#x…