In the world of newtechnology, no company can afford to stand still.As new frameworks and programming languages come out, ReSharper tries to keep up with them. In fact, that’s why we’re happy to announce the opening of ReSharper 8 EAP program. and, in connection with the upcoming release, to give you an overview of the features that will appear in ReSharper 8.
Go To Everything
In preparing ReSharper 8, we made an effort to simplify some frequently used functionality. One of the aspects we tried to improve on was the too large variety of different Go To menus. In an effort to simplify the task, we changed the behavior of the Go To Type (Ctrl + T), so that it now allows you to navigate to a type, symbol, or file name, and all these items are shown in one list.
By default, the list shows files with which the user has recently worked :
Searching for a specific identifier returns all files, types, and items in which that identifier occurs :
Don’t worry – all previous "specialization" commands (e.g, Go To File ) remain in place, and so does the dynamic switching between them. The functionality of the selectors also remains in place, so you can, for example, write
ClassName.MemberName to find a particular element of a particular class. Combo navigation, wildcards, and camel-humps are also available. In addition, we have added some new selectors :for example, if you write
private , you will limit the list of items by their visibility. We have tried to optimize the performance of this menu, so it should be very fast.
Improvements to Code Completion
This release includes a number of significant improvements to the Code Completion mechanism.
New Autocomplete elements
For example, if you take a class and start inheriting it from
INotify , R# will give you the following list of possible interfaces :
The autocomplete options include all possible interfaces that start with
INotify , and when you select one of them, R# will automatically add the corresponding
using in the file header.
In addition, ReShaprer now offers several generative auto-additions, in particular, an addition for keywords
Finally, we’ve improved the existing autocomplete mechanisms a bit. For example, the autocomplete list for initializing a collection now includes the keyword
Other autofill improvements
Another new feature we added is called double addition (double completion). The idea is this:when you use the simple autocompletion (Ctrl + Space) once, you might not get the element you want because it is not available. So you can press the same keyboard shortcut again and this time the search range will already be wider and include, for example, all connected assemblies.
A similar mechanism is used for smart completion (Ctrl + Alt + Space). Pressing this keyboard shortcut several times will give you hints on all possible ways to access the selected item, including, for example, using extension methods.
Double augmentation mechanisms are supported by quick-fixes, so that if you get a character which is for example private, you can immediately apply a fix to make it public.
In each release, we add new code inspections as well as improving existing ones. Here is a small sampling of :
- Now you can disable all warnings ReSharper with a single comment – instead of separately selecting the inspections you want to "suppress, " you can now just write
// ReSharper disable alland R# will not give errors in the code until it encounters the final comment
// ReSharper restore all
- Now you can quickly switch between array initialization expressions and expressions for creating arrays ; ReSharper offers appropriate validation as well as contextual actions :
An opportunity has arisen to Convert recursive calls to iterative ones :
If the method has overload that allows the call to be undone (i.e., takes
CancellationToken ), then R# will prompt you to use this overload, provided you have an available cancellation token in the current context :
Added support for "backup" color in CSS:
The list above is just a small sampling of the many inspections we have added.
CSS Support Improved
To help developers ensure proper code execution on different browsers, ReSharper has included configurable support for CSS3 and earlier versions, as well as compatibility checks for popular web browsers :
As a result of these checks ReSharper now provides detailed information about the availability of this or that feature in a particular browser :
We continue to improve R#’s understanding of various CSS declarations, be they in JSON…
or in string literals
or even in the declaration of anonymous types :
Finally, ReSharper now supports refactoring of identifiers defined in CSS:
Those of you who are familiar with dotPeek , our free decompiler, probably already know Assembly Explorer, a panel similar to Solution Explorer, which shows you the decompiled assemblies. Well, the good news is that this panel is now part of ReSharper:
Assembly Explorer is a very powerful utility which can extract assemblies from various file formats (such as ZIP). Assembly Explorer is also very easy to extend, which is what the dotPeek plugin writers are doing today. Its capabilities are now available for extension directly through ReSharper.
Since we are talking about decompilation, another useful feature worth mentioning is the ability to decompile BAML. It means, if you have a WPF application compiled, you can decompile it and look at the XAML code it is made with:
Note that the generated XAML supports all the same navigation and search capabilities that ReSharper or dotPeek support.
And something else…
Here are a few more things I want to mention.
First, we have tweaked the formatting system and Code Cleanup so that it now handles preprocessing directives correctly
In addition to being able to use R# as a plug-in to Studio, we also provide a command line utility that can take a solution and use it to analyze the code and put the result into an XML file. This is now provided as a separate download, which we will update as new EAP versions are released.
And finally, let me tell you that we are working hard on TypeScript support. It’s too early to talk about any specific fics yet, but rest assured, this language is high on our list of priorities, and as soon as we have it ready, we will definitely let you know.
That’s pretty much it – now that you know what new features are coming to 8, why not try them yourself? Just download the distribution and let us know what you think of it! ■