使用 ReSharper,输入即遵循 StyleCop 的代码格式化规范

StyleCop 可以帮助强制执行代码格式化规范,ReSharper 可以帮助你更高效地编写代码。把两者结合起来,你便能高效地编写符合团队强制格式化规范的代码来。

本文就介绍如何使用 ReSharper 来高效地遵循 StyleCop 的代码格式化规范。


 

本文内容

      • 安装插件 StyleCop by JetBrains
      • 修改 StyleCop by JetBrains 的规则
      • 不通用的 StyleCop by JetBrains 规则
        • 参考资料

 

安装插件 StyleCop by JetBrains

StyleCop by JetBrains 插件的开发名称是 StyleCop.ReSharper,所以你也可以通过搜索 StyleCop.ReSharper 得到同样的插件。

StyleCop by JetBrains
▲ StyleCop by JetBrains 的图标

先安装 StyleCop by JetBrains 插件。注意这是 ReSharper 的插件,而不是 Visual Studio 的插件。你需要到 ReSharper 的 Extension Manager 中去下载。

 

 

前往 ReSharper 的 Extension Manager
▲ 前往 ReSharper 的 Extension Manager

在 ReSharper 自己的插件管理页面,搜索并安装 StyleCop by JetBrains 插件:

 

 

搜索并安装 StyleCop by JetBrains
▲ 搜索并安装 StyleCop by JetBrains

当你点击了窗口下面的那个“Install”按钮后,ReSharper 会弹出一个等待窗口一次性安装完毕。你需要等待,等待的时间取决于网速。

安装完之后,重启 Visual Studio 就会生效。如果你稍后见到了本节上面的图标,那么那实际上就是 StyleCop by JetBrains 插件的一部分。

修改 StyleCop by JetBrains 的规则

现在打开一个以前写的项目,你可能会发现大量的代码都已被波浪线入侵 ? 。

 

 

代码已被波浪线入侵
▲ 代码已被波浪线入侵,代码源自我的另一篇博客:如何实现一个可以用 await 异步等待的 Awaiter。

如果你现在编写新的代码,你会发现新的代码已经开始使用 StyleCop 建议的规则了。不过,可能这个规则并不是你希望的规则,正如这张图所描述的那样:

The documentation text within the param tag does not contain any whitespace between words, indicating that it most likely does not follow a proper grammatical structure required for documentation text. [StyleCp Rule: SA1630]

翻译过来:param 标记中的文档文本不包含任何单词之间的空格,表示它很可能不遵循文档文本所需的正确语法结构。[StyleCp规则:SA1630]。很明显,这一条 StyleCop 规则连中文都没有考虑过,中文文本怎么可能包含单词之间的空格呢 ? 。

所以,很明显我们需要定制我们自己的 StyleCop 规则。

在 ReSharper 的设置中找到 Code Inspection -> Inspection Serverity -> C# -> StyleCop。展开之后你就能看到 StyleCop by JetBrains 的规则定制了。

 

 

定制规则
▲ 定制规则

在这里,按照你的团队约定,将一项项的值设置为:

  • 不遵守
  • 提示
  • 建议
  • 警告
  • 错误

 

 

设置团队约定

不通用的 StyleCop by JetBrains 规则

实际上使用此插件生成的 StyleCop 规则并不是 StyleCop 的通用配置,而是生成了一个 DotSettings 的 ReSharper 配置。

如果需要使用到通用配置,请阅读 在 Visual Studio 中使用 StyleCop 来约束团队代码规范。


参考资料

  • StyleCop code style settings and inspections - .NET Tools Blog.NET Tools Blog
  • ReSharper Gallery - StyleCop by JetBrains

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://blog.csdn.net/wpwalter),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

转载于:https://www.cnblogs.com/walterlv/p/10236381.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle数据库备份恢复,巡检须要关注的对象设置以及相关恢复概述

数据库备份恢复。巡检须要关注的对象设置: 1.数据库名称,以及DBID; --dbid在v$database中 SYSORCL>select dbid,name from v$database; DBID NAME ---------- --------- 1385095721 ORCL 2.控制文件的位置; s…

Python迭代器

一、文件迭代器 readline()每次读取文件的一行,每次调用readline方法会自动到下一行,到文件末尾时,会返回空字符串。 _next_()方法同readline()一样,只是到最后一行会引发stopiterat…

成千上万的在线课程时,如何保持理智和学习编码

by Travis Chan通过特拉维斯陈 成千上万的在线课程时,如何保持理智和学习编码 (How to stay sane and learn to code when there are thousands of online courses) We live in the information age. Information about anything we can think of is accessible to…

oracle中noguarantee,聊聊UNDO_RETENTION作用(修改guarantee)

oracle10g中,针对dba_tablespace,加了其中一个额外列是retention.回忆一下Oracle 10g之前,在自动Undo管理的模式下,我们都知道undo_retention参数的作用是用来控制当transaction被commit之后,undo信息的保留时间。这些undo信息可以…

【Hankson 的趣味题】

可能我只适合这道题的50分 但还是要争取一下的 我们知道对于\(gcd\)和\(lcm\)有这样的定义 \(a\prod _{i1}^{\pi(a)}p_i^{d_{i}}\) \(b\prod _{i1}^{\pi(b)}p_i^{g_{i}}\) 那么则有 \(gcd(a,b)\prod_{i1}^{\pi(max(a,b))} p_i^{min(g_i,d_i)}\) \(lcm(a,b)\prod_{i1}^{\pi(max(…

C# 控件双缓冲控制 ControlStyles 枚举详解

ControlStyles 枚举.NET Framework 4指定控件的样式和行为。 此枚举有一个 FlagsAttribute 特性,通过该特性可使其成员值按位组合。 命名空间: System.Windows.Forms程序集: System.Windows.Forms(在 System.Windows.Forms.dll …

协作机器人 ai算法_如果我们希望人工智能为我们服务而不是不利于我们,我们需要协作设计...

协作机器人 ai算法by Mariya Yao姚iya(Mariya Yao) 如果我们希望人工智能为我们服务而不是不利于我们,我们需要协作设计 (If we want AI to work for us — not against us — we need collaborative design) The trope “there’s an app for that” is becoming …

Shadow Brokers 公布 2.1 万美元的 0day 订阅服务

神秘黑客组织 Shadow Brokers 宣布将向支付 2.1 万美元 0day 订阅服务的个人公布最新一批的 NSA 工具,这一声明给全世界的白帽子黑客或安全研究人员造成了一场伦理危机。 一方面,Shadow Brokers 此前释出过创造出勒索软件 WannaCry 的 NSA 工具&#xff…

linux awk 常见字符串处理

awk指定输出列: awk {print $0} file #打印所有列awk {print $1} file #打印第一列 awk {print $1, $3} file #打印第一和第三列 cat file | awk {print $3, $1} #打印第三列和第一列,注意先后顺序。 cat file | awk {print $3, $NF} #打印第三列…

oracle ldap 配置,ldap 安装

一、安装步骤1:配置yum源挂着盘镜像时用到: 这里不做解释;(yum clean all && yum makecache)2:安装OpenLDAP组件1)安装OpenLDAP组件命令如下:[rootgitea ~]# yum install openldap openldap-servers openldap-clients openldap-devel compat-openldap -ycom…

scp跨主机拷贝工具

参考:http://www.cnblogs.com/hitwtx/archive/2011/11/16/2251254.html SSH上A机,要将10.1.17.95机/tpdata/shell_script/下面的crontab.tar.gz文件拷贝到A机的当前文件夹下面: scp weblogic10.1.17.95:/tpdata/shell_script/crontab.tar.gz …

Google Chrome浏览器可能在您不知情的情况下破坏了您的测试

by Robert Axelsen罗伯特阿克森(Robert Axelsen) Google Chrome浏览器可能在您不知情的情况下破坏了您的测试 (Google Chrome might have broken your tests without you even knowing about it) My colleague just discovered that Chrome 58 (released April 19th) has sile…

Java 9 将采用新的版本字符串格式

在现有的版本编码格式使用了两年之后,从Java 9开始,Java版本方案将根据业内软件版本编码的最佳实践进行修改。使用或解析Java版本字符串的应用程序开发人员要注意了,因为这种变化可以会影响他们的应用程序。 正如JEP 223所阐述的那样&#xf…

oracle 表更新表,Oracle 更新表(另一张表)

JUC学习笔记--Thread多线程基础实现多线程的两种方法 java 实现多线程通过两种方式1.继承Thread类 ,2.实现Runnable接口 class Newthead extends Thread{ public void ru ...SharePoint中新创建的Web Application在浏览器中报404错误问题描述:在安装完成SharePoint 2010后,进入…

jQuery(爱前端)

一 jQuery 简介 官网:www.jquery.com 口号:写更少的代码,做更多的事情 jQuery 是一个快速、小型的、特性很多的JS库,它把很多事儿都变得简单。jQuery是免费的、开源的。 jQuery 是 DOM 编程领域的霸主,极大的简化了原生…

跳过 centos部署 webpy的各种坑

用centos部署webpy发现的各种坑: 1、python 版本: 2、中文编码: 3、web模块路径: 在命令行里输入python,能import web,但是网站错误报告一直报告没有找到web模块,说明web模块路径有问题。python…

撰写本文的所有基本React.js概念

Update: This article is now part of my book “React.js Beyond The Basics”.更新:本文现在是我的书《超越基础的React.js》的一部分。 Read the updated version of this content and more about React at jscomplete.com/react-beyond-basics.在jscomplete.com…

CentOS 7 firewalld使用简介

2019独角兽企业重金招聘Python工程师标准>>> Centos升级到7之后,发现无法使用iptables控制Linuxs的端口,google之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口: 1.快速使用说明 开启…

简述java语言的特点

简述java语言的特点: ① 简单的特性 ② 面向对象的特性 ③ 分布式处理的特性 ④ 健壮的特性 ⑤ 结构中立的特性 ⑥ 安全特性 ⑦ 可移植的特性 ⑧ 解释的特性 ⑨ 高性能的特性 ⑩ 多线程的特性 转载于:https://www.cnblogs.com/qq1335…

php函数嵌套 作用域,javascript 嵌套的函数(作用域链)_javascript技巧

嵌套的函数(作用域链)当你进行函数的嵌套时,要注意实际上作用域链是发生变化的,这点可能看起来不太直观。你可把下面的代码置入firebug监视值的变化。var testvar window属性;var o1 {testvar:1, fun:function(){alert(o1: this.testvaro1.fun();1o2.f…