Microsoft continues to advance the development of Visual Studio 2017, and their latest preview of 15.8 shows some important new features that will benefit most developers. Users of the Sublime editor and VS Code will also find some new functions that will help them feel at home in Visual Studio.
Code Cleanup (triggered by menu item Format Document or hotkey CTRL | K, D) has been expanded to offer a much greater amount of functionality. Format Document has been expanded to go beyond line spacing and indentation to cover a vast array of new customizable options, including sort usings, add/sort accessibility modifiers, implicit/explicit type preferences, the removal of unnecessary casts and unused variables, and so on.
Also in the Options dialog is the addition of a couple of new keyboard mappings. Developers accustomed to using Visual Studio Code can now select to have VS2017 use the same keyboard mapping-- allowing their fingers to focus on one set of keystrokes. If you are a user of ReSharper, those familiar mappings are now an option for you in VS2017 as well. Similarly, Sublime users should be very happy to see that multi-caret support in the IDE has come to VS2017. This can be configured under Edit | Multiple Carets
menu.
In the preceding screenshot, the editor has inserted an additional caret (cursor) so both instances of the Console.Write
method can be edited simultaneously.
Continuing their ongoing efforts to ensure VS2017 starts efficiently, Microsoft has changed the manner by which extensions are loaded. In 15.8, extensions are now loaded after the solution has been opened in order to maintain the responsiveness (perceived and actual) of VS2017’s startup.
Developers doing performance testing of their application within VS2017 will appreciate a new ability to selectively pause/resume the collection of CPU usage data. Rather than have it available throughout your application's execution, you now can start collection at the specific moment you would like to investigate, which helps reduce the amount of unneeded data that is collected.
JavaScript and TypeScript developers will appreciate some reworking of the language service that supports these two languages in the editor. Previously this service was provided by a single Node.js process, but now in 15.8 multiple processes are used to improve editor performance. One process will manage responding to user input while another will perform longer running actions, such as language analysis.
VS2017's use of ESLint has been reworked in 15.8. Now the linter will operate on JavaScript files while they are being edited, not just after they have been saved. The use of a .eslintignore
file is supported and can be used to specify directories and files that the linter should ignore. ESLint 4 is the default, but this may be overridden to use a locally installed version of ESLint if desired.
VS2017 15.8 Preview 3 is available for download now, and the full release notes are provided. As this is prerelease software, it may not be used to write production code but it can be installed side-by-side with the release version of VS2017.