Resharper structural search and replace Part I - Searching
There isn't much documentation on Resharper's Structural Search and Replace (SSR)
Consider the case where you want to find all the usages of the Text
property on a Windows Form
:
If you use Find Usages (Shift F12) you get all usages of any inheritor of System.Windows.Forms.Control
which isn't what we want in this case.
Enter Resharpers 'Search with pattern' (Alt-R,F,R)
which returns the following usages only:
I can hear the guys up the back:
you can already do that with Resharper's Advanced Find Usages (Ctrl+Shift+Alt+F12)
but this only works in this instance because Text
is overridden by System.Windows.Form
. Consider a property of Form
that isn't overridden (eg form.Font
) - your only option here is to use SSR.
Other applications
You are searching for places where an Address
is added to a List<Address>
namespace ExampleApp
{
public class Address
{
}
public class Program
{
private static void SomeMethod()
{
var strings = new List<string>();
strings.Add("test1");
strings.Add("test2");
strings.Add("test3");//not these usages
var addresses = new List<Address>();
addresses.Add(new Address());//this usage only
}
}
}
Find Usages will return all usages of List<T>.Add
(which likely is very high in a real application)
Search with pattern to the rescue again!
This returns only the one usage above instead of 4 usages using F12.
important Make sure when specifying the type of $list$ that you specify the fully qualified class name eg List<ExampleApp.Person>
- on that note it appears Resharper is showing the < and > characters as their escaped versions in the UI which is a display-only thing.
Last revised: 13 Apr, 2013 01:58 AM History
No new comments are allowed on this post.
Comments
No comments yet. Be the first!