.NET Tools
Essential productivity kit for .NET and game developers
ReSharper 8.1 Early Builds Available for Download
It’s that time of the year again when we open up the covers on what’s been cooking in ReSharper since the release of 8.0 a few months back! And while today we’re opening ReSharper 8.1 Early Access Program, there’s nothing minor about the new features that we’ve got in store for you.
Here are some of them that you can check out right now.
TypeScript Support
The key focus for this release is the support for the TypeScript programming language. Support for TypeScript includes the following:
- Refactorings such as Rename and Introduce Variable, with detection of identifiers in strings as well as detecting of structurally compatible members.
- Navigation support including support for Go to Everything and smart usage search (an ability to search for structurally similar constructs). Note that both Rename and the navigation features work in dynamically typed parts of code, too!
- Code completion support.
- Support for rearranging code, including the greedy brace mechanic.
- Code inspections such as an ability to detect unused parameters, detect invalid CSS references, and many others.
- Deep integration with other parts of the project, i.e. HTML, CSS and JavaScript. This includes inspection, navigation and other features.
JavaScript projects also benefit from TypeScript support. For example, even in a pure JS project, you can improve ReSharper’s code completion by including TypeScript type definitions for your libraries. To get them, search for DefinitelyTyped on NuGet. Also, note that smart usage search and smart Rename mechanisms are available for JavaScript, too.
Stay tuned for an in-depth post on TypeScript coming very soon!
Support for Visual Studio 2013
ReSharper has included support for Visual Studio 2013 since version 8, but version 8.1 enjoys better integration with two new supported features. The first feature is Peek Definition. ReSharper integrates transparently into this feature, providing a lot more functionality than Visual Studio. For example, ReSharper can show decompiled method definitions, whereas Visual Studio can only show method stubs:
ReSharper’s contextual navigation is also available in this mode, and any element navigated to shows in this same window.
Also, features such as Find Usages or Find Inheritors and many others that return large result sets now show them using the Peek Definition API in the list on the right:
Another feature that ReSharper supports is the enhanced scroll bar — a feature very similar to ReSharper’s own marker bar. ReSharper places its markers alongside this bar, together with tooltips and an ability to click to navigate to a particular issue:
And don’t worry, if you prefer to use the old marker bar, we give you this option as well — you can find it in ReSharper’s Options under Environment | Editor | Editor Appearance.
Code Analysis
One of the major pain points we’re addressing in 8.1 is infinite loop detection – for those embarrassing times where you inadvertently made an infinite loop by failing to change the loop condition anywhere within the loop.
Another complaint that’s been addressed relates to ReSharper complaining about values possibly being null
in LINQ even when an explicit check has already been made. We’ve updated our LINQ nullness analysis so that the following code no longer triggers any complaints from ReSharper:
Yet another inspection issues a warning in downcast in foreach statement, another potential source of bugs:
XAML Improvements
- Completion improvements, including double completion for resource references and command name completion (see this blog post for info on the double completion mechanic).
- An update to the usage inspection mechanism, including WPF 4.5 static property notification support.
- A mechanic to import types on paste, just like the one we currently have in C#.
- ThemeDictionary support for WinRT 8.1.
- Various typing assistance mechanisms, including smart handling and deletion of XAML braces, smart deletion of XML attribute quotes, as well as a mechanic to convert an attribute to an element on the press of the Enter key.
Architecture Tools
Our latest creation, the Architecture tools, are getting some love as well. Latest improvements include:
- Better overall performance of analysis and rendering.
- Improvements in UI fluidity and smoothness, including smooth repositioning animations when graph elements are added or removed.
- Undo/redo support.
- A new option for drawing edges called Possible Path. Shows up as green dashed reference lines and implies that even though there are no direct references between currently selected projects, there is a path between them consisting of one or several projects. These reference lines also have a Show Path context menu item.
- Many improvements were made in response to user requests – for example, we made more convenient context actions to get desired graph selection:
Odds & Ends
Our standalone tools InspectCode and dupFinder have also gotten some love in the form of better error validation and output as well as support for plugins.
The tool windows that ReSharper uses have been redone using WPF. New tab items now show up on the left, they look better, you can pin them, and if you open more than five tabs, old tabs unload themselves, saving memory — but you can always restore them if you need to.
Things to Come
Here are some of the things we’re still working on, which will appear as part of the 8.1 release:
- Improved JavaScript support. We’re working on improvements in renaming, navigation as well as support for Structural Search and Replace (SSR) for this language.
- Various improvements to TypeScript support beyond those mentioned above.
- Improved support for High-DPI monitors, so those of you with Retina displays have a more pleasant experience.
While we’re preparing for final release, feel free to download ReSharper 8.1 EAP builds and let us know how this new update is working out for you!