Welcome ReSharper Ultimate 10 RTM
We are here to let you know that the final release of ReSharper Ultimate 10 is now available for download!
As described earlier, all ReSharper Ultimate family tools now share a common version number to simplify dealing with compatibility issues, so please welcome ReSharper 10, ReSharper C++ 10, dotTrace 10, dotCover 10, dotMemory 10 and dotPeek 10.
Watch this video for an overview of what is new in ReSharper Ultimate 10:
Here is a quick recap of what is new for each of the tools, if you prefer text.
ReSharper 10
In addition to around 450 fixes, highlights of ReSharper 10 include:
- ReSharper Build is a new out-of-process incremental build tool that can take advantage of multiple processes, visualizes different kinds of project build status, and is optimized for large solutions with lots of dependencies.
Read this post for more details on ReSharper Build. - Built-in postfix templates. One of the most popular plugins gets integrated into mainline ReSharper. Postfix templates allow reducing backward caret jumps while typing C# code. For example, you can start with an expression and proceed to wrap it into an
if
statement to check whether it returns true. Another template allows you to throw an exception if certain condition is met. - Usage-aware Go to Declaration. ReSharper 10 extends the functionality of Go to declaration (as well as Ctrl+click) so that you can also use the shortcut to look up for usages. In case you have one declaration and one usage, you can use Go to declaration to simply switch between them. If you have multiple usage of a symbol, subsequent Go to declaration hits will take you to further found usages of the symbol, one usage at a time. Navigation between usages is aided by a Find Usages-like pane that enumerates found usages, contains additional controls to mouse-click between usages, and helps you flush all found usages to the regular Find Results window if you like.
- Code style improvements. ReSharper 10 comes with a set of changes aimed to simplify configuration of and complying with code style settings. Inspection severity can now be configured right from the Alt+Enter menu, without using a modal window. Find similar issues window is now used only for searching in a custom scope. All default scopes, such as solution, project and file, can be applied right from the same old Alt+Enter menu. Additionally, there are new code inspections with quick-fixes that detect explicit or implicit access modifiers for types and type members, let you use a pre-configured order of modifiers, and help you join or separate attributes in a section.
- Refined Stack Trace Explorer. Stack Trace Explorer was basically rewritten from scratch in ReSharper 10. This enabled Stack Trace Explorer to provide links to types in addition to methods and to parse more types of data, including WinDbg GCRoot dumps, Visual Studio Call Stack tool window contents and dotTrace snapshots.
- NUnit 3.0 Beta 5 support. As the new major version of NUnit is approaching release, we have laid the groundwork to support it in ReSharper unit test runner. We will make more changes in order to support the release version of NUnit 3.0, though at this point the latest Beta 5 is supported.
- JavaScript and TypeScript support improvements. Support for JSX syntax is now available in .js, .jsx and .tsx files to streamline React development in ASP.NET applications. Code completion, all ReSharper regular context actions for HTML and JavaScript, navigation to declarations and search for usages, as well as a couple of refactorings are available as well. JavaScript regular expressions that were originally supported in ReSharper 9.2 are now covered in more detail. TypeScript 1.6 support has been finalized with the addition of intersection types and class expressions. Moreover, code completion for JavaScript is now aware of types from JSDoc comments.
- UWP device family-specific views. Universal Windows Platform enables using device family-specific XAML views to provide different UI for different types of devices. ReSharper 10 learns to handle this with dedicated code inspections, quick-fixes and context actions.
- Google Protocol Buffers (Protobuf). ReSharper 10 starts to provide support for .proto files. This includes syntax highlighting, code analysis, code completion and navigation for both 2.x and 3.0 Protobuf versions.
ReSharper C++ 10
ReSharper C++ 10 comes with 200+ fixes and a variety of enhancements:
- Improved support for C language. ReSharper C++ 10 provides full support for C99, including designated initializers. C11 is supported to the same extent that Visual Studio supports it. Code completion and some context actions that are specific for C language are introduced with this release as well.
- New context actions. There is a new action to create a derived class when standing on a class declaration. Other new context actions help replace
decltype
with the underlying type, as well as substitute a template type alias. - New code inspections and quick-fixes. We’ve introduced a new code inspection that detects whether a class needs a user defined constructor with a quick-fix to generate it. Another new code inspection detects uninitialized base class in a constructor and offers a quick-fix to initialize it. Additionally, we added quick-fixes for mismatched class tags highlighting, a quick-fix to add a template argument list and a quick-fix to make base function virtual.
- ReSharper C++ 10 inherits the updated usage-aware Go to declaration mechanic from the mainline ReSharper. From now on you can use the single shortcut not only to switch from declaration to definition, but also to navigate through usages.
- Code generation. ReSharper C++ 10 allows generating definitions for a function inline. We’ve also added support for generating Google Mock stubs for those who use Google Test framework.
- Performance was one of our priorities for this release, and as a result ReSharper C++ 10 works significantly faster on solutions that had already been cached.
dotCover 10
The main highlight for dotCover 10 release is the long-awaited Continuous Testing functionality. Following an initial code coverage analysis of your solution, dotCover 10 learns to track your code changes, figure out which tests are affected by them, and then it can re-run the affected tests as soon as you hit Save, or use a different strategy of reacting to code changes.
dotTrace 10
dotTrace integration in Visual Studio has been considerably improved with this update. With dotTrace 10 when you choose to profile your startup project from Visual Studio in Timeline mode, you can view the resulting snapshot right in Visual Studio, using the Performance Profiler tool window. You can select a particular time frame to investigate and drill into, make use of several filtering options, as well as export and save snapshots, all without leaving Visual Studio.
dotMemory 10
dotMemory 10 introduces a new contextual option that lets you navigate from a type in an object set to its type declaration in an open Visual Studio instance. If the target type is a library type, this triggers ReSharper’s decompiling functionality and opens decompiled code in Visual Studio.
In addition, dotMemory receives a start view similar to dotTrace Home. The new dotMemory Home screen can be used as a starting point to memory profiling that lets you launch a new local or remote profiling session, attach to a running process, configure a profiling session and more.
dotPeek 10
dotPeek 10 delivers one of the most heavily requested features: you can now navigate to IL code from any point in the C# decompiled code viewer. IL code can be shown in a separate tool window or as comments to C# decompiled code.
Find Usages in dotPeek now works asynchronously, similarly to how it does in recent versions of ReSharper. This means that even if you started to look up for usages, you can still work with dotPeek without needing to wait until it finalizes the search.
In other news, dotPeek 10 supports color themes: you can now select one of 3 default themes, or choose to synchronize your color scheme preference with Visual Studio settings.
Licensing and upgrade options
In terms of licensing and upgrades, some changes are introduced with this release:
- ReSharper 10 is a free upgrade for you if you have a valid ReSharper upgrade subscription. ReSharper C++ 10 is free if you have a valid upgrade subscription to ReSharper C++.
- In case your upgrade subscription expired, you can now subscribe to ReSharper, ReSharper C++, ReSharper Ultimate or All Products pack with a discount and get the second year of subscription for free. For details on how new subscription-based licensing works, please see JetBrains Toolbox.
- Starting from November 2, 2015 dotTrace, dotCover and dotMemory are only licensed as part of ReSharper Ultimate. Read this post for details.
- If you need a formal quote or any other assistance, you are welcome to contact JetBrains sales.
Laurent Kempé says:
November 2, 2015Congrats to the whole teams for those great new releases!
Daria Dovzhikova says:
November 2, 2015Thanks a lot for your support, Laurent!
Rusty says:
November 2, 2015The test runner still doesn’t appear to support DNX projects. I was under the impression that support would be added to this release.
https://blog.jetbrains.com/dotnet/2015/08/19/welcome-resharper-9-2-resharper-c-1-1-and-more-ultimate-updates/#comment-435731
Daria Dovzhikova says:
November 2, 2015Yes, that was our plans, but unfortunately we were not able to make it by this release, sorry. Please feel free to watch this issue (https://youtrack.jetbrains.com/issue/RSRP-446679) for the updates on this topic.
Dude says:
November 2, 2015Is it possible to disable postfix? I hate it.
Jura Gorohovsky says:
November 2, 2015Sure. ReSharper > Options > Environment > Postfix Templates > disable “Show postfix templates”.
Any particular reason why you hate this kind of templates though?
Dude says:
November 2, 2015I have no problem with backward caret jumps, but starting typing with the end feels unnatural (I am not Yoda).
Jura Gorohovsky says:
November 2, 2015OK, I see, thanks.
nz says:
November 2, 2015LOL… love Postfix. Once you get used to it, it’s a neat productivity booster.
Dude says:
November 2, 2015Why isn’t my recently (few weeks ago) purchased 9.2 licence working???
Jura Gorohovsky says:
November 2, 2015Not sure. Requires identifying the license in order to give a firm answer. I suggest that you contact sales to investigate.
Thanks
Dude says:
November 2, 2015What are the general rules? Could you please point me to 9.2 licence agreement free upgrades period section? Thank you!
Jura Gorohovsky says:
November 2, 2015There are no general rules: rules vary (at least used to vary) depending on license type. For example, until today a part of commercial licenses (per-major licenses as we call them) made you available for updates within a single major releases (9.x). If you have one of these licenses, not being able to use it with v10 makes sense. With other kinds of licenses this shouldn’t generally happen.
That’s why I ask you to contact sales: this is not to make them push you into an upgrade but rather to help sort out why your license behaves like this. This could be a problem with your license or this could indicate a problem in ReSharper.
Thanks
Dude says:
November 2, 2015Actually your sales FAQ section covers this (only minor updates are available to me most likely).
I am OK with not getting new features but do not understand why there is no ReSharper 9.3 release which would include those 450 fixes as well. I think it would be an ethical thing to do.
Jura Gorohovsky says:
November 2, 2015Well we can only fix as many bugs as we can in the timespan of a single major version.
We have 8K+ unresolved issues classified as bugs on the issue tracker. We surely distribute them among releases, major and minor, because there’s simply no way to verify and fix them all in one go.
Hopefully with subscription licensing now in place, we can fix a bit more in any given release cycle.
Chris Marisic says:
November 4, 2015I’d strongly recommend talking to the sales staff and point out you wanted to purchase the 10.0 license. JetBrains has always been a very reasonable company, I would be shocked if they would be unwilling to fix this mistiming.
Rico says:
November 2, 2015Where can I upload extensions for R# 10?
Daria Dovzhikova says:
November 2, 2015Hi Rico,
ReSharper plugin gallery (https://resharper-plugins.jetbrains.com/) is the best place to upload ReSharper extesions to.
Richard says:
November 2, 2015Subscription license purchased on 19th October was “not found in the database”. Had to request an activation key to get R# 10 working.
Not a smooth upgrade at all.
Daria Dovzhikova says:
November 3, 2015Hello Richard,
Unfortunately, there were some issues with active licenses not discovered for the first run. Good to know that this is sorted for you now, but anyway, here’s a workaround: http://resharper-support.jetbrains.com/hc/en-us/articles/213433177
Oleg says:
November 2, 2015Continuous testing, finally, thank you!
Please make the code coverage highlighting less annoying, for example like in NCrunch.
And I can’t build a project if the continuous testing is in the building state, is it as designed?
Sam says:
November 3, 2015I echo the statement re dotCover highlighting. The NCrunch style method of highlight which lines of code are tested keeps the code much more readable compared to dotcover.
Daria Dovzhikova says:
November 3, 2015Sam, you can customize code coverage highlighting to be less annoying via ReSharper | Options | dotCover | Highlighting
Sam says:
November 3, 2015I appreciate that I can change the highlighting colours. I would prefer that the line is not highlighted at all and there was a coloured dot at the start of the line indicating the coverage (as per NCrunch).
Daria Dovzhikova says:
November 3, 2015Sam, I’ve created an issue for the team (https://youtrack.jetbrains.com/issue/DCVR-7737) to gather feedback an track progress on considering/implementing alternative approaches to provide feedback from CT session to a user.
Please feel free to comment and watch it.
Daria Dovzhikova says:
November 3, 2015Oleg, thank you!
Сode coverage highlighting can be configured to be less annoying in ReSharper | Options | dotCover | Highlighting
As for inability to run building during the contnuous testing session, yes, that’s by design.
Oleg says:
November 3, 2015Daria, thank you for the reply.
That’s sad, there is a chance that will be possible run the build and the continuous build at the same time?
What about the highlighting, that’s exactly what I mean .
Daria Dovzhikova says:
November 3, 2015Thanks, Oleg, I’ve created an issue for the dotCover team (https://youtrack.jetbrains.com/issue/DCVR-7737) on alternative approaches to provide feedback from CT session to a user, please feel free to vote up and share you thoughts on the subject.
As for running Build and continuos testing sessions simultaneously, I’m not sure that this can be implemented, but since I’m not be the best person to decide on this, I need some time to discuss this with the developer who’s doing ReSharper Build.
Oleg says:
November 4, 2015Thank you Daria, please consider to make the builds independent.
Very common case I think:
I set the dotCover options to “On Save build and detect dirty tests”, and after I changed some files I want to Run and debug the project. But I can’t because the continuous build in progress.
Daria Dovzhikova says:
November 5, 2015Ok, thanks for your suggestion, Oleg, we’ll think it over (https://youtrack.jetbrains.com/issue/RSRP-450473)
ReSharper Ultimate 10 RTM | OPC Diary says:
November 2, 2015[…] 情報源: Welcome ReSharper Ultimate 10 RTM | ReSharper Ultimate Blog […]
Sakura Iris says:
November 3, 2015Hi, I want to know when Resharper will support ASP.NET 5 TagHelper Intellisence? By the way, the typing performance in the ASP.NET 5 projects is much lower than general projects. Please improve it as soon as possible.
Daria Dovzhikova says:
November 3, 2015Hi,
Can you please send us a performance snapshot (ReSharper | Help | Profile Visual Studio) regarding slow code completion in ASP.NET 5 projects?
As for the support for TagHelpers, there is no ETA at this point, but please feel free to watch the corresponding issues for updates: https://youtrack.jetbrains.com/issue/RSRP-447314
https://youtrack.jetbrains.com/issue/RSRP-427939
Tony says:
November 3, 2015Since I had some issues in R#9.2 regarding async/await in TypeScript 1.6 I was happy to see that R#10 was released with “full TS1.6 support”, but I still have issues with async/await, TS1.6 and R#.
One issue I had already in 9.2 that still seems to be there is if I have an await without assigning the result to a variable R# wants me to introduce a variable, and if I let it do that it complains that the variable is not used and offers to remove the whole await, for example:
async saveStuff() {
await this.http.fetch("api/stuff", { method: "post", headers: this.defaultHeaders });
//do some more stuff after save and resolve the promise once that's done.
}
Another issue that I run into with R#10 is regarding “Type assertion can be replaced with ‘as’ operator” which seems like a nice fix, but if I change this:
async checkLogin(token: string) {
const response = await this.http.fetch("api/Account/UserInfo", { headers: { "Authorization": `Bearer ${token}` } });
return await response.json();
}
to this:
async checkLogin(token: string) {
const response = await this.http.fetch("api/Account/UserInfo", { headers: { "Authorization": `Bearer ${token}` } });
return await response.json() as OauthCheck.UserInfoModel;
}
…then the whole await gets gray and says that “Value assigned is not used in any execution path” which seems very strange since I obviously are using the response.
Tony says:
November 3, 2015In my previous comment the type assertion in the second code block seems to have disappeared, but there was supposed to be a <OauthCheck.UserInfoModel> in front of the second await.
Anton Lobov says:
November 3, 2015Hi, Tony. Thanks a lot for your feedback! It would be much better if you report issues as soon as you experience them, because otherwise we cannot know about some of them. The first issue is indeed here since 9.2. Thanks a lot for reporting them now, both issues will be fixed for the next bugfix update.
As a workaround for the first issue, you can disable the inspection “Expression statement is not assignment or call”.
Thank you.
Issues to monitor:
https://youtrack.jetbrains.com/issue/RSRP-450337
https://youtrack.jetbrains.com/issue/RSRP-450338
Søren Reinke says:
November 3, 2015A shame you don’t take the time to make continuous testing nice before shipping it 🙁
As it is at the moment, it’s to noisy, and way to slow. Compared to an excellent tool like NCrunch.
The Morning Brew - Chris Alcock » The Morning Brew #1960 says:
November 3, 2015[…] Welcome ReSharper Ultimate 10 RTM – Daria Dovzhikova announces the RTM release of ReSharper Ultimate 10, a release including over 450 fixes, as well as new features for incremental builds, postfix templates, JSX support in JavaScript and TypeScript and much more […]
Urs Meili says:
November 3, 2015Is it possible to add my own postfix templates?
Daria Dovzhikova says:
November 3, 2015I don’t think it is possible at this point, what template are you missing in particular?
Urs Meili says:
November 3, 2015I use lots of Debug.Assert in my code and it would be great if I could write something like “y.Length>0.assert”
Alexander Shvedov says:
November 4, 2015Hi! Unfortunately, because varous people need various assertion APIs (like `Debug.Assert`, `Trace.Assert`, NUnit’s `Assert.That` and some other), we can’t easily define how `.assert` postfix template should behave in a general way.
But you can easily solve this using SourceTemplates feature, allowing to define your own postfix-like templates: https://www.jetbrains.com/resharper/help/Source_Templates.html
Urs Meili says:
November 4, 2015This doesn’t quite allow me to do the same thing. For example, if I have the expression “x==5”, I can just add “.if” and it expands to “if(x==5)”. However, I cannot just add “.assert” (given that I previously added a SourceTemplate to my code) . Instead I first have to add parentheses around the expression, so the expression reads “(x==5)”, then I add “.assert” which gives me “Debug.Assert((x==5))” (note the unrequired double parenthesis).
JetBrains Toolbox geht offiziell an den Start says:
November 3, 2015[…] Dazu kommen noch viele weitere Änderungen in den einzelnen Tools, die übersichtlich im zugehörigen Blogpost auf der JetBrains-Entwicklerseite zusammengefasst sind. ReSharper Ultimate 10 steht auf der […]
Dew Dump – November 3, 2015 (#2125) | Morning Dew says:
November 3, 2015[…] Welcome ReSharper Ultimate 10 RTM (Daria Dovzhikova) […]
Jirka says:
November 3, 2015Implement continuous testing is killer feature, must have for modern style of development. This release really shows how JetBrains listens to customers providing really powerfull productivity tools.
Daria Dovzhikova says:
November 3, 2015Thanks a lot for your support! Glad that you liked the update.
Thomas Levesque says:
November 3, 2015Congrats on this new release, its awesome, as usual!
I have an issue, though; almost every time I upgrade ReSharper, I lose the “xUnit.net Test Support” extension, and I can’t reinstall it because it doesn’t appear in the extension manager… What can I do to “force” the install? It says it supports R# 8.2 to 8.3, but it was working in 9.x before I upgraded to R# 10.
Daria Dovzhikova says:
November 3, 2015Thank you, Thomas!
Yes, xUnit support is currently provided via a separate plugin that needs to be updated to be compatible with the latest ReSharper release. Usually it takes 1-2 weeks for it to appear in the Extension manager.
Daria Dovzhikova says:
November 5, 2015The xUnit plugin has been updated today, so please check ReSharper Extension Manager, it should be there.
Daniel says:
November 4, 2015Is this version able to load extensions compiled for previous versions?
Although I had several extensions loaded in 9.2, now I don’t have any extension whatsoever.
Daria Dovzhikova says:
November 4, 2015Daniel,
Extensions need to be ported to v10 in order to be compatible with the release. Usually it takes from one to several weeks for them to be updated.
Draupnir Gudmundsson says:
November 5, 2015Many features look promising but the TestRunner has too many bugs.
This version is not RTM. It needs more bug fixing.
I recently upgraded VS2013 -> VS2015 and R#8.2 -> R# 9.2 and found bugs in the TestRunner. JetBrins suggested to test R# 10 EAP as I did and some bugs were fixed and new bugs introduced.
The TestRunner worked fine in R# 8 but now I have to use many workarounds to get basic test run and results from that run or add test to test session.
I’m very disappointed that functionality that was fine is now broken.
Is there any ETA for fixes for the TestRunner?
Daria Dovzhikova says:
November 5, 2015Hello Draupnir,
We are planning to publish the bugfix update targeting the issues discovered in Unit Testing next week or two. Apologies for the inconvenience.
Anton Herzog says:
November 5, 2015Hi there,
I have a serious Issue with the xunit support. The test output is not shown in the session window of resharper. This way the tests get nearly useless.
Please help…
Jura Gorohovsky says:
November 5, 2015Anton, looks like there’s an issue with unit test output in v10 regardless of which framework is used. This is already fixed, and the fix is going to be available in a bugfix update that we expect to roll out next week.
Apologies for causing you trouble.
Oddbjørn says:
November 6, 2015Hi.
Where is the “projects should be NEVER built” configuration stored in ReSharper Build?
I want to be able to check and/or change this with scripting.
Expanding the tree here could also be quite slow… like a minute on some nodes.
Matt says:
November 6, 2015Why is this LiveTemplate bug still in there? Why does R# IntelliSense still remove the good stuff of VS IntelliSense.
There are so many good features, but missing/broken basic features make it hard for me to use and probably I won’t buy an upgrade. It’s getting very bloated 🙁
Jura Gorohovsky says:
November 6, 2015Exactly what kind of bug are you referring to, Matt?
Also, putting a “bloated” label doesn’t quite help us understand what problems you’re facing. You might want to elaborate.
Etienne Maheu says:
November 6, 2015Any new on an early 10.0.1 update?
I’m currently struggling with https://youtrack.jetbrains.com/issue/RSRP-449577 which has been reported nearly a month ago and got classified as a show stopper.
Anton Herzog says:
November 9, 2015Hi again,
Why is the xunit testrunner depending on xunit v. 2.0+ all of the sudden.
Last week it worked fine with R# 10 and now it’s breaking all the test when xunit 1.9.2 is used. Another showstopper…
Matt Ellis says:
November 9, 2015Hi. The xunit test runner has been using xunit2 since ReSharper 9, and is backwards compatible with projects that use xunit 1. Part of my test suite includes tests from both xunit 1 and xunit 2, so it still works fine. What’s the issue that you’re seeing?
Anton Herzog says:
November 9, 2015It seems to work now. There was a error-message saying that version 2+ of xunit was needed. After a reboot it worked.
The whole continuous testing story doesn’t seem production ready still. It misses needed rebuilds sometimes.
Matt Ellis says:
November 9, 2015Hi Anton. Glad it’s working again. There’s possibly an issue with the xunit integration – I have a repro that I’m investigating with the dev team now. It might be worth tracking that issue, and adding any other details you have.
Les liens de la semaine – Édition #157 | French Coding says:
November 9, 2015[…] ReSharper 10 a atteint la version 10 RTM. […]
Rasmus Halland says:
November 9, 2015Congratulations on the release.
However, it hangs many times a day, so we’ve gone back to v9. Looking forward to a solid release.
Dmitry says:
December 5, 2015Hi, developers!
Plugin support did removed in dotPeek 10? If not, give me please link where I can read some information about plugin development.
Thanx!