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

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.

This entry was posted in How-To's and tagged , , , , , . Bookmark the permalink.

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

  1. rosdi says:

    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:

      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.

  2. tobi says:

    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. Pingback: ReSharper Ultimate 2016.1: What’s new in recent EAP builds  | OPC Diary

  4. Mark says:

    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. Pingback: The Morning Brew - Chris Alcock » The Morning Brew #2070

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

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

  8. Alt+Enter code formatting for a selected block of text is a killer :)

  9. Bart Koelman says:

    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:

      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.

      • 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:

        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:

          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. installed latest EAP, it’s so borked the exception submitter doesn’t even work. it’s just frozen.

    • Dmitry Matveev says:

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

      • 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.

        • I wish comments had edited buttons:

          “immediately started throwing tons of”

          “and then opening the resharper exception submitter”

          • Dmitry Matveev says:

            >> 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.

  11. layola says:

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

Leave a Reply

Your email address will not be published. Required fields are marked *