使用Resharpers模式目录查找具有多于3个参数的构造函数
是否有可能在Resharper的模式目录中创建一个搜索模式,以查找具有多于3个参数的所有构造函数?
如果是这样,怎么样?
我的问题是我不知道如何告诉Resharper只有构造函数定义应该匹配。
据我所知,Resharper中的模式只能在一个方法中匹配。 所以你不能匹配构造函数声明。
我只是尝试了以下模式:
new $type$($args$)
其中type是一个类型的占位符(谁会猜到?),并且至少引用3个参数。 这确实找到了至少3个参数构造函数的所有用法,但是它找不到没有使用的构造函数,最重要的是,它会找到这个:
public class MyClass : MyAbstractClass
{
public MyClass(int foo1, int foo2) : base(foo1, foo2, 0)
{
// ...
}
}
所以也许如果你认为你会有这些情况,而不是使用Resharper模式,你应该尝试使用正则表达式查找。 它可能很难,因为来想象它C#语法是相当复杂的,但你可以得到的东西...
编辑:我调整了Visual Studio正则表达式搜索构造函数声明,识别新行和至少参数(可以有可选值):
^(:b|n)*((public|internal|private|protected|static|sealed)(:b|n)+)+:i(:b|n)*((:b|n)*:i(:b|n)+:i(:b|n)*(|=(:b|n)*:a*(:b|n)*)(,(:b|n)*:i(:b|n)+:i(:b|n)*(|=(:b|n)*:a*(:b|n)*))^2(,(:b|n)*:i(:b|n)+:i(:b|n)*(|=(:b|n)*:a*(:b|n)*))*)
这很丑陋,主要是因为VS自定义正则表达式对标准 w,{2,}和?没有任何翻译。
我知道这个问题是专门针对R#6.0的,但我想为R#2016.3提供一个答案,因为我最近有同样的问题。
Resharper 2016(.3.1)
用模式搜索允许这种类型的搜索。 以下是你需要做的事情:
选择Resharper> Find> Search With Pattern
添加三个占位符:
确保您将搜索模式设置为C#
将模式设置为以下内容:
public $type$($args$)
{
$code$
}
根据需要设置Look In
(例如解决方案)。 然后点击查找。
你最终应该会看到一个如下所示的搜索框:
这将找到所有(公共)构造函数,它们包含您感兴趣的参数的数量。我能够成功地在几个解决方案中使用它。 作为一个额外的好处,它似乎很高兴找到具有多行参数列表的构造函数,而不仅仅是一行。
链接地址: http://www.djcxy.com/p/53907.html上一篇: Find constructors with more than 3 parameters with Resharpers pattern catalogue