Help required in getting started with plugin development

Hi there,

Long story short I'm working on a project currently where we have to analyze source code dependencies. After writing a bunch of simple scripts using regex and stuff I started to wonder what if I could write a ReSharper plugin instead to find usages more efficiently and reliable.

Unfortunately I got stuck immediately, most of the plugin development guides seem pretty outdated, every single page I could find tells me that if I'm downloading the SDK I'll get some nice VS templates and sample projects. But the download link immediately redirects me to the NuGet gallery where I can download binaries only.

So could you please help me how to start? I would like to the following:

1. Open a solution in VS with R# and my plugin loaded
2. Execute my plugin on a given folder (like how the "Adjust namespaces" feature works)
3. My plugin should be able to collect every class under that folder (recursively, optionally with search pattern matching), identity the interfaces they are implementing and find their usages recursively. This is where I intend the most to rely on the Open API's functionality
4. In the end I would like to see a list of entry points where the calls start (for example: I've got a service which uses a repository which uses another repository which is in that folder I specified. And I need that service to be identified.)
5. Save the findings in a DB or in worst case in a file

+1 Nice to have feature: execute from command line and setup a TeamCity job to run after each successful build.

So what do you think? Is it possible to do with the ReSharper 8.2 SDK? (This is the version I've got license for)
If I'm right the Open API provides all the functionality I require, I just need a little guidance to be able to start because right now I've got absolutely no clue.
I'd really appreciate if you could help me.

Thank you in advance!

Cheers,
Zsolt

1 comment
Comment actions Permalink

did you ever get your questions answered?

0

Please sign in to leave a comment.