ReSharper 7.1 Early Access is Open

Say hello to ReSharper 7.1 EAP! Starting today, you can download early builds of the new ReSharper update.

In this release, we’re trying to focus on little things: removing minor but irritating flaws as well as introducing small improvements that go a long way towards better usability. The everlasting battle for smooth performance and light memory usage is also in full force. Anyway, read on to learn what we have in store as of EAP launch.

Code formatter revitalized

We know that code formatting is a very sensitive set of IDE functionality — to the extent of donating kingdoms in return for fixing formatting issues. Seeing a set of these issues that have accumulated over the years, we decided it was time for action.

Specifically, following enormous demand, ReSharper now provides versatile settings to format chained method calls. For example, you can chop chained calls while giving preference to wrap after delimiter dots:

In conjunction with a new option to align chained method calls, this gives you the following formatting setup:

Second, facing the region controversy, Code Cleanup doesn’t introduce regions by default anymore. Too many people consider regions a code smell, and we had to do something about it.

In other formatting news, code formatter now indents with tabs only if using spaces is not allowed in a specific coding standard; there’s now a new options page which actually makes formatting XML doc comments a feasible task; and if you’re an ASP.NET developer, look for a new option to always use Kernighan & Ritchie style brace layout in markup pages regardless of whatever style you’re using in code-behind. There are even more formatting and cleanup fixes — here’s the full list in case you’re interested.

Fewer annoyances all around

If fixing some of the weirdness in code formatting behavior wasn’t enough, we handled quite a bit of other annoying bugs. For instance, configured JavaScript abbreviations are now respected by JavaScript naming inspections; moving types or files no longer changes their encoding; and importing types for pasted code doesn’t bring up an ugly dotted box.

Easy sharing of ReSharper inspection results

Following insightful feedback from John Papa and other long-time users, we’ve revised the experience of working with Inspection Results and Errors in Solution tool windows, primarily in order to streamline sharing ReSharper inspections with non-ReSharper users (amazing but there are some) as well as creating work items based on inspection results.

Specifically, you can now copy individual entries or custom selections of entries from both Inspection Results and Errors in Solution:

This is handy if you’re working in a team environment and assigning work items based on ReSharper inspections to different developers: copy an issue or a group of issues, submit the copy to an issue tracker, and there you go into the wonderful world of delegation!

However, copying an entry or a selection gives you a plain text copy of the issues that ReSharper has detected. If you’re a fan of HTML- or XML-based issue reports, be informed that entries can now be exported from Errors in Solution (this was previously only available from Inspection Results):

Speaking of XML reports, that was the only export format that included line numbers in previous ReSharper versions. In 7.1, we’ve put an end to this inexplicable injustice: HTML and plain text exports now include line numbers, too:

INotifyPropertyChanged tooling now supports Caller Info

ReSharper 7.1 takes advantage of Caller Info attributes when it implements INotifyPropertyChanged in .NET Framework 4.5 projects. Needless to say, if your project is targeting .NET Framework 4.0 or below, ReSharper still uses the traditional syntax.

The new version also facilitates migration to CallerMemberName-based implementations by highlighting redundant arguments. If you happen to have, say, an OnPropertyChanged implementation that includes a parameter annotated with CallerMemberName, any calls passing explicit arguments will be marked as redundant:

There’s more in store regarding INPC support in ReSharper 7.1, so stay tuned for a separate blog post.

A different treatment of the Preview tab

We’ve received complaints stating that we were taking advantage of the Preview tab in Visual Studio 2012 in more cases than it made sense.

In 7.1, all contextual (such as Go to Declaration or Go to Implementation) and context-insensitive (Go to File or Go to Symbol) navigation actions are reverted to open files in standard text editor tabs. The Preview tab is still used to open files that you’re selecting via Enter from tool windows such as Find Results.

Do you think this is a better way to use the Preview tab? Please let us know!

Refactoring coverage and quality assault

Many refactorings have received a level or two up in terms of stability and functionality. For example, Extract Class is now working with VB.NET in addition to C# code, plus the C# implementation has received a substantial share of bug fixes. (You’ve watched the video on using Extract Class, haven’t you?)

Change Signature now works correctly with default parameter values and handles usages of named arguments just fine. Other fixes cover Extract/Inline Method, Rename, Extract Superclass, Introduce Variable, Pull Members Up and quite a few more refactorings — here’s the full list of fixes.

Entity Framework 5-specific fixes

A couple of code analysis false positives are now gone, and extension methods should now be resolved without extra manipulations with ReSharper caches.

Various improvements in VB.NET support

For example, VB.NET quick-fixes for WinRT have been added to pair those available for C#; VB.NET inspections can finally be suppressed with comments; IntelliSense has been fixed for enums and LINQ-to-SQL joins. On top of that, as mentioned above, Extract Class refactoring is now functional in VB.NET code.

ASP.NET and ASP.NET MVC refined

ReSharper now consents with the exotic case of wrapping asp:placeholders with styles in ASP.NET markup files. ASP.NET MVC developers should be happier as ReSharper 7.1 handles cases where file names of views are not derived from action names and resolves relative view paths much better. For details on more web dev fixes, see this list.

Performance and memory consumption improvements

These traditionally cover all kinds of technologies but most importantly SharePoint, ASP.NET MVC and resource files. On another note, if you’re a fan of typing in web.config files, this should now be a much smoother task.

Unit testing: JavaScript and usability

First off, nested references are now supported for JavaScript testing frameworks (both QUnit and Jasmine).

Another improvement is relevant to a broader scope of unit testing practitioners however. If you have a great load of unit tests in your session, there’s now an easy way to filter the session to specific tests — just use quick search that is now available in Unit Test Sessions:

In other news

If you’ve read through to this point, you just owe it to yourself to download a ReSharper 7.1 EAP build.

Questions? Bug reports or improvement requests? We’re all listening.

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

42 Responses to ReSharper 7.1 Early Access is Open

  1. Ivan Danilov says:

    I like the way Preview Tab is used currently. At least by default I want things like Go To Definition/Declaration or find results shown in Preview Tab. ALT+Click or Alt+Enter for normal tab as suggested in the issue would be fine. But changing everything to normal tabs all of a sudden? It doesn’t seem convenient for me at all.

  2. Luis Fernando says:

    An option to “//ReSharper disable All” and “//ReSharper enable All” would be definitely awesome.

  3. @Luis Fernando
    Ctrl+Shift+Alt+8 to disable code analysis in the current file?

    @Ivan Danilov
    Thanks for your opinion! We’ve just recently received this comment as well, so as it stands now, 1:1.
    Looking for more input from EAP users.

  4. arjuns says:

    @luis, alternatively if you want to disable reaharper from all the project , not only the single file, you could open command window ( ctrl + w+ a) and type Resharper_suspend, and Resharper_resume to enable.

  5. Julien Lebosquain says:

    Is there SDK planned for the EAP builds?

  6. @arjuns
    This is not exactly true. ReSharper_suspend switches off ReSharper in the current solution and in any solutions that you open from there on.
    In addition, suspending ReSharper is an overkill if you only want to turn off code analysis in a particular solution (this isn’t flexible on a per-project basis unfortunately): to do that, you can go to ReSharper > Options > Code Inspection > Settings and make sure that “Enable code analysis” is not selected.

  7. @Julien
    SDK isn’t ready at this point but yes, it’s planned. Matt should know the details soon I guess.

  8. 2:1 to a broader usage of the preview tab
    Keep it coming!

  9. Julien Lebosquain says:

    Jura, thanks. Concerning the preview tab, make it an option, with Alt pressed changing the configured behavior. (I want my files to open in normal tabs 90% of time, but sometimes I know I just want to see something quickly and close the file: a perfect use for the Preview tab)

  10. Josh Olson says:

    Regarding the preview windows — could you please dedicate an entire settings page to it? That is, let us pick on a case-by-case basis

    For me, I like it the way it is. If I want to keep the window open, I’ll make a change to the file to convert it to a “real” pane. I find it annoying to have to close a bunch of files I made no changes to, having to jog my memory “Did I do anything to this or was I just tracing some code?”

  11. Matt S. says:

    The preview tab changes are nice, but this is one of those cases where I honestly believe it should be configurable in Options with the ability to quickly override that behavior as needed. Much like Julien, 80-90% of the time I would rather files open in normal tabs. However, there are occasions where I just want to peek at the referenced class/file, and using the Preview tab would be ideal. I’m in favor of a modifier key that instructs R# to use the alternate behavior (Alt seems appropriate).

  12. Luis Fernando says:

    @Jura Gorohovsky and @arjuns thanks for your suggestions, but it’s not exactly what I want.

    I’ll try to be more clear about what I’m after. I don’t want to permanently disable a particular or all Resharper warnings in one solution or file, I just want it to not show in one particular section of code.

    To give one example, I would like to change this code;

    // ReSharper disable ClassNeverInstantiated.Global
    // ReSharper disable MemberCanBePrivate.Global
    // ReSharper disable UnusedAutoPropertyAccessor.Global
    public class Foo { public decimal ThresholdAmount { get; set; } }
    public class FooModel { public double Threshold { get; set; } }
    // ReSharper restore UnusedAutoPropertyAccessor.Global
    // ReSharper restore MemberCanBePrivate.Global
    // ReSharper restore ClassNeverInstantiated.Global

    Into something like this:

    // ReSharper disable all
    public class Foo { public decimal ThresholdAmount { get; set; } }
    public class FooModel { public double Threshold { get; set; } }
    // ReSharper restore all

    This Stackoverflow discussion is also related: http://stackoverflow.com/questions/8854701/disable-all-resharper-warnings-with-a-comment

    Thanks again.

  13. Julien Lebosquain says:

    @Luis, use the [UsedImplicitly] attribute instead for your case and you’re done.

  14. Joe White says:

    If I navigate to a type by Ctrl+clicking, or Navigate To Parent, or clicking the gutter icons — will that open in the preview tab, or in a real tab? I’d expect the preview tab for that sort of navigation, but it sounds like those will be real tabs now. (I’ll have to download 7.1 when I get back to the office tomorrow.) Other than that, I think the changes sound great.

    Here’s a suggestion, though: what if you could right-click on the preview tab and see a “recently opened in preview tab” list? (Obviously this wouldn’t include tabs that had been converted to real tabs — just ones that had been replaced in the preview tab because something else was opening there.) If ReSharper could add that feature to the IDE, then I think a lot of the pain around the Preview tab might just go away; R# could just use the Preview tab and everything would be fine.

  15. Matt Ellis says:

    @Joe – 7.0 already lets you use the “Go to recent files” popup in resharper to get at the files you’ve released viewed in the preview tab (ctrl+e or ctrl+`)

  16. Scott Holodak says:

    TypeScript support? Too soon? ;-)

  17. @Julien, @Josh, @Matt, @Joe
    Thanks for posting your thoughts! Another part of the preview tab discussion can be found in comments to this feature request, and the team has been made well aware of the diversity of your opinions )

  18. @Luis
    Thanks for clarifying your use case. I’d appreciate if you create a feature request.
    BTW as a workaround, you can convert your class to a partial class and move the fields that you’d like ReSharper to leave as is to the second part so that they’re the only members there. As soon as you have, Ctrl+Shift+Alt+8 in the new type part, and you’re done.

  19. @Joe Ctrl+clicking and using context-sensitive navigation opens stuff in a new regular text editor tab as of now.

  20. @Scott
    Way too soon. Let’s get back to this as soon as a few thousands of .NET shops start using the language in commercial development.

  21. Luis Fernando says:

    @Jura Gorohovsky

    Feature request created: RSRP-330348

    Thanks for all.

  22. DotnetShadow says:

    Hi there,

    There seems to be a problem accessing the Resharper -> Option… and Resharper->Manage options… items

    No dialog appears and there are no exceptions or errors. All other menu items appear to work correctly

    This error only occurred after install the 7.1 EAP

    Is there a keyboard shortcut to get to the options page?

  23. DotnetShadow says:

    Found the issue,

    I had to remove the 7.0 directory in C:Program Files (x86)JetBrainsReSharperv7.0
    Once that was removed I could access the options dialog

  24. DLeahy says:

    “RSRP-305779 – Regions are widely considered a bad programming practice.”

    I have to laugh at that; but each to their own.

    But JetBrains, please be careful to follow your current practice of making features optional, rather than removing them due to a few ‘opinionated developers’.

  25. Eyal Shilony says:

    It’s not fair that you decided to delay the fix to issue RSRP-199079, I’ve waited for it for so long and now I have to wait to R#8.0. :/

    But good job nonetheless, thank you for everything.

  26. Jimmy Headdon says:

    All of the 7.1 EAP installers need some form of signing along the lines of the official installer and previous EAP 6 and 7 installers, at the minute I get a lovely “The system administrator has set policies to prevent this installation” when logged in as a local administrator.

    In the event viewer I can see the following:

    “Failed auto update retrieval of third-party root list sequence number from: with error: This network connection does not exist.”

    As I said above this does not happen on the official build of 7.0.1 or any previous official or EAP installers, please can this be fixed ASAP!

  27. Sergey says:

    Ananlyze errors in Solution works bad with Windows Phone 8 SDK.
    The problem occurs when I try to implement public WinRT interface defined in C++ library SomeLibrary as:
    namespace SomeLibrary {
    namespace Namespace {
    public interface class ISomeContext
    {
    void SetContentProvider(Windows::Phone::Graphics::Interop::IDrawingSurfaceContentProvider^ provider);
    };
    }
    }

    I also have SomeInternalLibrary which also defines similar interface
    namespace SomeInternalLibrary {
    public interface class ISomeContext
    {
    void SetContentProvider(Windows::Phone::Graphics::Interop::IDrawingSurfaceContentProvider^ provider);
    };
    }

    SomeInternalLibrary is referenced by SomeLibrary which is refernced by MyProject.
    Class SomeContext defined in SomeLibrary implements SomeInternalLibrary ::ISomeContext is used to hide SomeInternalLibrary from MyProject as it simply wraps SomeLibrary::Namespace::ISomeContext to forward all calls for SomeInternalLibrary::ISomeContext to it.

  28. Josh Earl says:

    Consider me another vote for restoring the native Visual Studio approach to using the preview tab. Go To Definition and similar commands should use the preview tab, as they do in VS by default.

  29. Blake Niemyjski says:

    Please add official xunit support to the test runner. It’s a pain to configure it with the add-in.

  30. Blake Niemyjski says:

    “Consider me another vote for restoring the native Visual Studio approach to using the preview tab. Go To Definition and similar commands should use the preview tab, as they do in VS by default.” + 10

    TypeScript and Less support (unknown css is very annoying). + 20

  31. VioletTape says:

    Please, open classes by Ctrl+N as “Keep open” instead of “Preview mode” in VS2012. It’s very annoying to press on little glyph in tab or press on space to make changes and transfer tab from “Preview mode” to “Keep open”.

  32. Andrii Litvinov says:

    Please, make Floating tabs wells always stay on top of the main window option in VS 2012 optional again. When working with several monitors it makes impossible to place VS windows to all monitors and then overlap one with browser for instance. Because click on VS window in other monitor will cause VS overlap browser again.

  33. Adam Durell says:

    I agree with Andrii – PLEASE give us the ability to turn off “always on top” floating tab wells. This is an extreme annoyance and makes multi-monitor work nigh useless.

  34. @Andrii, @Adam Due to a bug in Visual Studio 2012, using ReSharper in floating windows leads to unpredictable focus switches. Microsoft is aware of the problem but there’s no time estimate for a fix from them. Upon examining a set of floating window usage scenarios, we’ve decided that forcing this option on in 7.1 was the least harmful workaround in current circumstances (see RSRP-322167.)

    Since your scenarios apparently require switching the “always on top” option off, you can work around ReSharper behavior by mounting this settings file to your ReSharper settings (ReSharper | Manage Options | Add Layer) Please note that this may lead to incorrect behavior of ReSharper functionality in floating windows.

  35. Vovo says:

    My vote for ‘preview’ tabs.

    Found it so useful, it helps me to keep number of opened files as much as possible.
    After installing 7.1, was a big surprise for why ‘preview’ tabs are no longer used in such scenarios like Ctrl+T, Go To Declaration, Go To Implementation and so on.

    It is easy to move tab from ‘preview’ to ‘keep open’ – an hot key Ctrl-Alt-Home, or just start making changes in that file.

    Think the best solution will be to have possibility to changes ‘preview’ tabs behavior. Until that, think will back to 7.0….

  36. Sinkers says:

    +1 “All of the 7.1 EAP installers need some form of signing along the lines of the official installer and previous EAP 6 and 7 installers, at the minute I get a lovely “The system administrator has set policies to prevent this installation” when logged in as a local administrator.”

  37. @Sinkers
    Are you experiencing this signing problem with the official release of ReSharper 7.1?

  38. Source says:

    @Jura Gorohovsky

    Where can I find the settings file to bring the “always on top” option back? The dropbox link above doesn’t work for me :-(

    tia!

  39. @Source
    That’s the only source where the settings file is available.
    Does it also not work with plain http?

  40. Source says:

    @Jura Gorohovsky
    It seems to be a problem within our company – maybe they block dropbox or so. I just downloaded the file with my mobile phone – everything works like a charm!

    Thanks a lot!

  41. Andrew Gunn says:

    I get the same problem at work (not tried at home).

    I checked the Event Logs and found the following:

    “The installation of C:UsersagunnDownloadsReSharperSetup.7.1.25.234.msi is not permitted due to an error in software restriction policy processing. The object cannot be trusted.”

    Anyone found a solution?

  42. @Andrew
    Please see comments to this bug report for possible ways of solving this installation issue

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>