Correct Folder Layout for ReSharper Extensions

Hey guys,

I'm currently in the process of updating a R#8.2 extension to R#9.1 and I feel desperately lost right now. There are already -code wise- so many new concepts to understand (Zones, revised Actions, etc.), but then also -infrastructure-wise- many fundamentals changed (e.g., the packaging format; the way how to debug extensions; etc.). I realized that migrating my extension right away might be too much to swallow at once, so I decided to implement a new basic extension as a toy example first to make myself familiar with the new concepts.

I read the new ReSharper DevGuide already (which is a major(!) improvement to the previous documentation), and my idea is to implement the very basic "Code Completion Provider" example from the Dev Guide [1]. My goal is to debug it and to write a test for it. Unfortunately, I get stuck in the process quite early...

So just assume for now that I created two projects "RS9.Example" and "RS9.Example.Test". Both have a dependency on the R#9.1 SDK and the latter also on the R#99.1 Test SDK. I copied the code from the dev guide example and my sources compile successfully. According to the dev guide, the next step would be to package my projects and deploy them locally in an experimental instance, so that I can run them (and debug them by attaching to the VS instance)

My current problem at hand is that the packaging changed and that I do not understand the new package layout. I read [2] and found three requirements:

  1. "the _name_ has to contain a _._" -- I assume that "name" refers to the "id" and I use "RS9.Example" as the id.
  2. "ReSharper extensions should add all binaries to the DotFiles root folder" -- I put my "RS9Example.dll" into this folder.
  3. "add a dependency to the package called Wave" -- while the documentation still mentions 1.0, I found another thread mentioning that the correct version is 2.0 for R#9.1, but I tried both.

Of course, I also added the other basic infos to the .nuspec file (e.g., version, title, authors, etc.). I can compile my code, package it, and I deploy it to a local folder. This folder is configured as a local Feed -the only feed- in my experimental instance of VS13 that has R#9.1 installed. However, when I open the Extension manager, it doesn't list the extension. :/

I cannot find a log of the extension manager that tells me what went wrong and I feel quite lost here. Does anybody have a suggestion what to do next? Is there more documentation available somewhere or could somebody provide me with an example .nuspec file or some other pointers that may help me?

Thanks in advance!



Comment actions Permalink

I solved this on my own... it took me several hours to figure out that it was not an issue with the folder layout inside my package, but that I had a simple typo in the definition of the local feed. :_|

To answer my own question: yes, if you follow all requirements that I stated above, your extension will be listed.

I pose a feature request: the option page should add markers to feeds that are not existing (in case of local folders) or not reachable (for URL feeds). Would have saved me lots of time... :)

Comment actions Permalink

I'm glad you got things working. For future reference, when installing an extension, the logs are available at %LOCALAPPDATA%\JetBrains\Shared\v02 for 9.1 and ...\v01 for 9.0.


Please sign in to leave a comment.