ReSharper extensions

Answered

Is there a way to use include ReSharper extensions with Rider?

I want to include Unity Support for Unity development. I managed to install Wave and the Unity Support extension (by downloading the nupkg file, and installing it via a local packageSource in Rider), but it doesn't seem to be doing anything.

Is this even supported / will it ever be?

3
11 comments

Hi Miha,

ReSharper extensions are not supported yet, but this is in the roadmap. As for Unity support please see https://github.com/JetBrains/Unity3dRider

1


1. This plugin to Unity, which helps Unity to open files in Rider
2. Rider support for Unity:

  • Debugging of Unity instances.
    • Use the Run → "Attach to local process" menu item to list available Unity instances.
    • Run → "Edit Configurations" → Add new "Mono remote" configuration to set everything manually.

3. [From EAP13 - 163.7608] Addition Rider support for Unity via ReSharper plugin (File→Settings→Plugins→Type Unity→Press "search in repositories"→ReSharper Unity plugin will be found→Install.→Restart Rider.).

1

Very good to hear! After a quick test everything seems to be working, debugging works well, the ReSharper Unity plugin also reports methods as it should.

One issue I noticed is that this namespace fix in the plugin doesn't seem to work:

  • Disables the Assets and Assets\Scripts from being considered as "namespace providers". This means ReSharper will no longer suggest to include Assets or Scripts in the namespace of your code.

I'll be testing it more over the coming week, but so far, good job, it looks like we'll finally have a more-than-decent cross-platform Unity IDE that works as it should.

1

Thanks for letting us know about the issue. Something's gone wrong here. I'll take a look.

0

Hi, 
Are there any updates on this one? 
How can I have ReSharper extensions in Rider IDE? 
E.g. from here - https://resharper-plugins.jetbrains.com/ ?

Thanks.

0

Rider can't consume ReSharper extensions directly. We're still working on getting the SDK up and running, as well as guidance for ReSharper extension authors to get their extensions working in Rider.

It is possible right now to recompile and repackage a ReSharper extension so it runs with Rider. You can replace the JetBrains.ReSharper.SDK package reference with JetBrains.Rider.SDK and your extension will be able to target Rider. There are a couple of API changes, but the code should mostly just recompile easily. The resulting ReSharper extension .nupkg file must be placed in the root of an IntelliJ based plugin zip file. Rider will be able to consume this plugin and extra functionality will be added to the ReSharper engine.

As for the Unity support mentioned in the thread above, this is a bundled plugin in Rider, and is installed by default.

3

Hi Matt,


So I tried recompiling a simple ReSharper extension to reference the Rider.SDK. I managed to build the package, but where I failed was installing it in Rider (I tried the "install from local file" pointing to the zip file). Is there a sample repo, which could be used as a starting point for developing rider extensions with detailed instructions?

Cheers!

0

Yeah, this isn't documented right now, sorry. You need an IntelliJ plugin in order to install. This is actually pretty easy, although it does add an extra step. You need to create a zip file with the following structure:

myplugin.zip
→ myplugin/
  → META-INF/
    → plugin.xml
  → myplugin.1.0.0.nupkg

The .nupkg should be packaged up to have a dependency on Wave [10]. (To be honest, I don't think this is strictly necessary for Rider, but it's a good idea, anyway). Other than that, it's a normal ReSharper extension package.

The plugin.xml file needs to provide basic metadata for an IntelliJ plugin. You can see an example here, in the Heap Allocations Viewer plugin. You can download this plugin directly, extract it and see how it should look.

0

Hi Matt,

 

I managed to port a R# extension to Rider, but there is one issue.

The extension has an options page, and I can't see the options page in Rider. The API is not implemented yet in Rider or I do something wrong?

 

Thank you!

0

Ah, yes, options pages need a little extra work. There must be a front end (IntelliJ) plugin that registers an options page. Here's an example of the registration from the Unity plugin. That registration refers to a class that can be very simple. If it derives from `SimpleOptionsPage`, it just needs to pass in the name and the ID of the ReSharper options page, and that's it - the Rider SDK will do the rest.

0

BOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoooooooooooooooooooooooOOOOOOOO
OOOOOOOOOOOOOoooooooooooooooooooooooooOOOOOOOOOOOOOOoooooooooooooo
oooooooooOOOOOOOOOOOOOOOOOOOOOOOoooooooooooooooooooo!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

:P :p :P

 

Rider 2018.2.1 seems pretty awesome otherwise, though. :P

0

Please sign in to leave a comment.