ReSharper Ultimate 2016.1: What’s new in recent EAP builds

Dmitry Matveev

The release of ReSharper Ultimate 2016.1 is just around the corner, and today we sum up what has changed in its recent pre-release builds (EAP 7 to EAP 10).

We have fixed hundreds of bugs and exceptions, and added some new features. Some of these features are described below.

The feature set as of EAP 10 is likely to be final for the upcoming release. If you’re curious, you’re welcome to download the current EAP build and check out what ReSharper Ultimate 2016.1 will look like.

VB.NET 14 support

Some parts of VB.NET 14 support were implemented in ReSharper 10.0.2:

  • NameOf Operator
  • Read-only Auto Properties
  • TypeOf [expression] IsNot [type] operator
  • Null-conditional operators (only parser)

And now, just in time for the release of 2016.1, we are happy to announce that the following previously missing parts are now supported as well:

  • String Interpolation
  • Multi-Line String
  • Null-conditional operators (semantics)
  • Partial Modules and Interfaces
  • Year-first Date literals
  • XML documentation comment improvements

Intermediate Language viewer in ReSharper

The IL Viewer, which first appeared in dotPeek 10, is now available for drilling down library code right in Visual Studio. To check how it works, navigate to any library symbol (which can be as easy as Ctrl-clicking it), and then choose ReSharper | Windows | IL Viewer in the menu.

Intermediate Language viewer in ReSharper

Find Code Issues goes async

Previously, when you used ReSharper’s Find Code Issues command in any given scope, you had to stop and wait until the code analysis was over.

Starting with 2016.1, Find Code Issues works in the background, in a manner similar to Find Usages. This lets you keep editing or navigating your code while ReSharper runs its analysis and populates the Inspection Results tool window in the background.

Find Code Issues runs in the background

Easier ways to apply your code style preferences

The growing set of configurable code styles can now be applied with a single command: ReSharper | Edit | Apply Code Style (Ctrl+Alt+S).

This command (which only works in C# for now) will enforce your preferences for explicit types vs ‘var’s, CLR type names vs type keywords, and other styles configurable under ReSharper | Options | Code Editing | C# | Code Style.

If you feel your code is messy, you can use commands in the ReSharper | Edit menu to clean it up to a level you’re comfortable with. Specifically:

  • Reformat Code will prettify your code by only adding or removing spaces, tabs, and new lines;
  • Apply Code Style will change identifiers according to your code style, without changing application logic;
  • Finally, Cleanup Code will do both, and additionally it will rearrange type members and remove redundant code.

All these commands are also available when you make a selection in the editor and press Alt+Enter:

Code style commands for a code selection

Further improvements in TypeScript support

Good news for those trying to keep pace with the evolving TypeScript spec. The latest 2016.1 EAP build of ReSharper can properly handle some bits of TypeScript 2.0: readonly properties, implicit indexers, private and protected constructors, abstract properties, and nullable types.

Download ReSharper Ultimate 2016.1 EAP

If you feel that the highlights above are enticing enough, please download the latest ReSharper Ultimate 2016.1 EAP build.

If you spot any problems with this build, please do report them to issue trackers of affected products: ReSharper, ReSharper C++, dotTrace, dotCover, dotMemory, dotPeek.

Comments below can no longer be edited.

24 Responses to ReSharper Ultimate 2016.1: What’s new in recent EAP builds

  1. rosdi says:

    April 11, 2016

    Recently I tried ReSharper on Ionic 2 TypeScript project. I spent more time-fighting R# instead of it helping me. It does not seem to respect `tsconfig.json` and keep complaining about duplicate types yadda yadda… Visual Studio 2015 properly read tsconfig.json and respects the `ignore` setting in there… but R# insists of compiling every .ts file it could find.

    I even tried adding certain folders into R# exclusion folder but it ignores that too… what a surprise. I ended up disabling R# altogether, that is the only way to work with Ionic 2 project on Visual Studio.

    • Anton Lobov says:

      April 11, 2016

      Hi, rosdi! Thanks for reporting the issue. Adding files and folders to R# exclusion should work, but you need to explicitly enable “Ignore skipped files from resolve” option in Resharper Options -> JavaScript -> Inspections, then clear caches and reload the solution.

      The main reason why R# currently doesn’t support “exclude” option from tsconfig is because it behaves a bit special with some items, namely, “node_modules”. That kind of special behaviour requires remake of several internal mechanisms, and was impossible to implement for R# 2016.1. Anyways, they are going to change that even more in TypeScript 2.0, and I’ll provide a full support for file paths settings from tsconfig in 2016.2.
      Current workaround is to add those paths to R# ignore paths and enable “Ignore skipped files from resolve”, that should solve your problem.

      • rosdi says:

        April 11, 2016

        “Ignore skipped files from resolve” and clearing cache helps somewhat… but didn’t entirely solve the issue. From the errors it seems to be related to the “node_modules” as you mentioned.. anyway this is Ionic 2 and Angular 2 project (which are still in beta) so I guess it is premature to expect R# to support these projects at this time.

        I will be using Visual Studio Code for these projects in the meantime.

  2. tobi says:

    April 11, 2016

    Great that there are less invasive reformattings now. A full reformat is *very* invasive and overrides all special concerns that the developer had. Full reformat should basically be a banned feature in teams. From time to time someone thinks he’s really smart and cleans up the entire solution.

    So far I found Visual Studio’s Ctrl-K-D reformatting exactly right. It’s guiding principle is: Never make it worse. R# should take that stance as well.

  3. ReSharper Ultimate 2016.1: What’s new in recent EAP builds  | OPC Diary says:

    April 11, 2016

    […] 情報源: ReSharper Ultimate 2016.1: What’s new in recent EAP builds | ReSharper Ultimate Blog […]

  4. Mark says:

    April 11, 2016

    I’m really looking forward to the next R# release. At the moment VS2015 Update 2 + ReSharper 10.0.2 are far too buggy and too slow for us. We are stick to VS2013 + ReSharper 9 because of this. I hope the coming update will improve our situation so that we can upgrade our dev environment.

  5. The Morning Brew - Chris Alcock » The Morning Brew #2070 says:

    April 12, 2016

    […] ReSharper Ultimate 2016.1: What’s new in recent EAP builds – Dmitry Matveev […]

  6. Dew Drop – April 12, 2016 (#2228) | Morning Dew says:

    April 12, 2016

    […] ReSharper Ultimate 2016.1: What’s new in recent EAP builds (Dmitry Matveev) […]

  7. Angular 2 Webinar, Ember-Updates & Blue Screen of Death says:

    April 12, 2016

    […] einmal Revue passieren zu lassen. Das dachte sich auch das ReSharper-Team und hat die Highlights im ReSharper-Ultimate-Blog zusammengestellt. Das Team hat nicht nur zahlreiche Fehler behoben, sondern auch eine Reihe neuer […]

  8. Szymon Kulec 'Scooletz' says:

    April 12, 2016

    Alt+Enter code formatting for a selected block of text is a killer 🙂

  9. Bart Koelman says:

    April 13, 2016

    https://www.nuget.org/packages/JetBrains.Annotations/10.1.4 contains these in release notes:

    • New [ImplicitCanBeNull] annotation to implicitly propagate [NotNull] annotations;
    • Allow [NotNull]/[CanBeNull] annotations over class/interface/generic type parameter types;

    As the author of https://github.com/bkoelman/ResharperCodeContractNullability, I’m curious how these are intended to be used, but could not find any info.

    • Dmitry Matveev says:

      April 14, 2016

      Thanks for your curiosity, Bart.
      These are experimental features and unfortunately, they didn’t make it to this release. But you can surely expect them in the next one. And of course, we’ll provide all necessary details as soon as they are ready.

      • Chris Marisic says:

        April 14, 2016

        Has there been any work on annotations support that doing

        IEnumerable Foos { return new List {…} }

        var foos = Foos();

        foos.Count();
        foos.Any(….);
        foos.First(..);

        stops triggering the warning about multiple enumerations of foos? I don’t like returning collections since their contract is “add/remove is expected”

      • Manus Hand says:

        July 9, 2016

        I see that these two made it to release in v10.1.5, but I sure don’t see the promised necessary details anywhere. Google doesn’t seem to, either. Can you provide them, please?

        • Dmitry Matveev says:

          July 11, 2016

          Hi Manus,
          The first one, [ImplicitCanBeNull] is now dropped. As for the analysis of classes marked with [NotNull]/[CanBeNull], the work is still in progress. There is a good chance that we’ll finish it by the 2016.2 release. As ever, we’ll announce all details in our blog.

  10. Chris Marisic says:

    April 14, 2016

    installed latest EAP, it’s so borked the exception submitter doesn’t even work. it’s just frozen.

    • Dmitry Matveev says:

      April 14, 2016

      Hi Chris,
      Could you please be more specific and share the details with our support team? Thanks in advance.

      • Chris Marisic says:

        April 14, 2016

        i can’t be more specific, it entirely didn’t work. i installed it. it immediately started throw tons of “null reference/object exceptions” and then opening the exception resharper was permanently frozen. i just installed it.

        install, open solution, total failure, uninstall.

        • Chris Marisic says:

          April 14, 2016

          I wish comments had edited buttons:

          “immediately started throwing tons of”

          “and then opening the resharper exception submitter”

          • Dmitry Matveev says:

            April 14, 2016

            >> install, open solution, total failure, uninstall
            If it were that simple, we wouldn’t let this build go public. And we didn’t get other complaints similar to yours. It must be something interesting in your solution. We would be really grateful, if you could share a repro sample with our support team.

            • Chris Marisic says:

              April 14, 2016

              How can i share anything if resharper immediately locks up? Obviously i can’t send you the solution.

  11. layola says:

    April 14, 2016

    hi,I just test this version for ue4,but it’s seem still slow for updating sources files over 60 minutes .

Subscribe

Subscribe to .NET Tools updates