Creating ReSharper C++ Plugins
Is it possible to make plugins for ReSharper C++? In particular, I'm interested in created a plugin that supports Unreal Engine 4 projects and understands the various Unreal-isms. I'm hoping that I'll be able to add custom code generation, code completions, refactorings, additional code analysis, and pretty much the works. Unreal Engine 4 is a large code base and there's lots of potential for a plugin that understands it.
Thank you.
Please sign in to leave a comment.
Hi Lee Berger,
While this is possible theoretically, taking into account that our c++ code model (CM) is much more complicated than other languages CMs and there is no documentation (yet) for it, I think it's almost impossible. Anyway you can try to do it and ask questions here
I think I'll give a shot at it regardless and see how far I can make it. I assume I would use the "ReSharper SDK for ReSharper 9" that's linked on the ReSharper download page? There's not a separate SDK for ReSharper C++? Even if I don't get very far with this project, I'm pretty excited to try it.
Thanks!
More than two years have passed. Did anything change? Is it possible to write a plugin for Resharper C++ with general Resharper SDK? Is there any documentation specific to RC++ in https://www.jetbrains.com/help/resharper/sdk/README.html ?
Not really. You could always take a look at JetBrains.ReSharper.Psi.Cpp.dll (PSI, symbols, resolve and highlightings) and JetBrains.ReSharper.Feature.Services.Cpp.dll (most of the features), but that would be confusing. Do you have any specific requests we could help you with? We also plan to provide integration with clang-tidy soon, so it would be possible to write new highlightings and fixes via clang-tidy.
No, I don't have any specific requests. Just wondering is it possible (and how hard) to write a custom analysis rule (that would be shown during Code Inspect).
If it's something useful for many users we might add it ourselves, just let us know. Otherwise I believe it should be relatively easy to add a new inspection to clang-tidy, and when R++ starts using this tool the inspection will just show up.