Mark Miller

CodeRush for Rosyln 16.2.8 is Available

Another sprint, another release of CodeRush for Roslyn. You might have noticed we’ve stepped up our update frequency, with sprint/release cycles occurring in 30 day intervals.

Here’s what’s new in this release:

This release introduces the Declare menu, a quick and easy way to add needed code to your types.

DeclareMenu

These declarations are now available:

  • Automatic Constructor generation (which also automatically initializes selected members).

    Constructor1
    Just select the type’s members that you want to initialize, and press Enter. Some of the Declare providers have additional options, which can be accessed by tapping the Ctrl key. For example, with the Constructor UI, tapping the Ctrl key will offer options for constructor visibility, as well as an option to generate properties.

    Constructor2

    So given this starting point:

    ConstructorCode1

    The generated code for this provider might look something like this:

    ConstructorCode2

  • Delegate Members is useful when you want to surface a field’s or property’s members up to the active type. This provider creates members that wrap around the contained field’s or property’s members. For example, if your type contains a generic List of strings (as a field or property), like this:

    NewListStr

    Delegate Members can wrap that List’s Count property in its own property, as well as its indexing methods in delegating methods, surfacing these members in your class, like this:

    DelegateMembers

    Which would generate code looking something like this:

    DelegateMembersCode2

    Delegate Members makes object composition easy.
  • IDisposable Implementation generates the Dispose pattern, disposing the specified fields and properties. For example, given this starting point:

    IDisposable1

    And these options:

    iDisposableUI

    The generated code would look something like this:

    IDisposable2
  • Equality Members generates two Equals methods and a GetHashCode override, and can optionally generate equality/inequality operator overloads.

    EqualityMembers
  • Override Members overrides virtual and abstract methods. For example, given the following code:

    OverrideCode1

    And with the caret inside the CellPos3D class, pressing Alt+Insert to bring up the Declare window, and then setting these options:

    OverrideMembers

    The following code is generated:

    Override2
  • Properties and Read-only Properties generate properties for the selected fields. For example, given the following code:

    ReadOnlyPropertiesCode1

    And these options:

    PropertiesUI

    The following code is generated:

    ReadOnlyPropertiesCode2
  • Comparison Members generates a CompareTo implementation, individually comparing the specified fields, and optionally implements the IComparable<T> and IComparable interfaces. For example, given this starting code:

    ReadOnlyPropertiesCode1

    And these options:

    ComparisonMembers

    The following code is generated:

    ComparisonMembersCode2
  • Missing Members implements any interface members missing from the active class. For example, given the following starting code:

    MissingMembersCode1

    And with the caret inside CellPos3D, applying the Missing Members provider with these options:

    MissingMembersUI

    will generate the following code:

    MissingMembersCode2

You get the idea. To try out the new Declare features, just position the caret inside the class you want to modify and press Alt+Insert.

Clipboard History

Version 16.2.8 introduces the Clipboard History list, providing complete visual access to your ten most-recent clipboard operations. Instantly paste with the Ctrl+number shortcut. Filter through the list just by entering the text you’re looking for. Ctrl+Shift+V brings up the Clipboard History list.

ClipboardHistory

Jasmine Test Runner (beta)

In this release, we’re introducing the beta version of the Jasmine Test Runner for JavaScript and TypeScript. This feature, in its current state, should be considered a technical preview, but you can already run Jasmine tests with it using the CodeRush Test Runner window. This beta works with the following restrictions:

  • Test discovery is not implemented yet. Every file with unit tests should reference the Jasmine framework (e.g., contain the following string at the beginning: “/// <reference path=‘path/to/jasmine.js’ />”).
  • Currently all of the project’s JS files will appear in the Test Runner. You can Ctrl+click to multi-select the test files you want to run, or you can right-click a file and add it to a new or existing Test Runner session, allowing you to easily run all tests in all files held by that session at once.
  • Test Debugging and Code Coverage are not yet implemented.

JasmineTestRunner

More C# 7 and VB 15 Syntax Support

The following features have gained new capabilities to more deeply support the latest language features, including:

  • Debug Visualizer now supports for the new switch language features.

    DebugVisualizerSwitch
  • Smart Duplicate Line now supports binary literals and digit separators.

    SDL_VB15
  • Expand Method, Expand Property, Expand Getter and Expand Setter refactorings all now support the new language features.

Other Improvements

  • Asynchronous extension loading, so CodeRush for Roslyn loads even faster.
  • Paste Replace Word (default shortcut is Ctrl+B) is now available in XAML markup.
  • Added support for directories and projects in the Jump To File window.
  • Implement IDisposable code provider implements the dispose pattern in your types.
  • Encapsulate Property wraps a field’s properties (declared by the field’s type) in new properties declared in the active class/struct.

You can get the latest what’s new list and a list of corrected issues here.

Give it a Try!

We encourage you to download CodeRush for Roslyn and give it a try.

As always, we thank you for your continued support and feedback. Let us know what we can do to make your coding experience even better.

Published Apr 28 2017, 10:00 AM by
Bookmark and Share

Comments

No Comments

About Mark Miller (DevExpress)

Mark Miller is a C# MVP with strong expertise in decoupled design, plug-in architectures, and great UI. Mark is Chief Architect of the IDE Tools division at Developer Express, and is the visionary force behind productivity tools like CodeRush and Refactor!, as well as the DXCore extensibility layer for Visual Studio. Mark is a popular speaker at conferences around the world and has been writing software for over two decades.
LIVE CHAT

Chat is one of the many ways you can contact members of the DevExpress Team.
We are available Monday-Friday between 7:30am and 4:30pm Pacific Time.

If you need additional product information, write to us at info@devexpress.com or call us at +1 (818) 844-3383

FOLLOW US

DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, along with high-performance HTML JS Mobile Frameworks for developers targeting iOS, Android and Windows Phone. Whether using WPF, ASP.NET, WinForms, HTML5 or Windows 10, DevExpress tools help you build and deliver your best in the shortest time possible.

Copyright © 1998-2017 Developer Express Inc.
All trademarks or registered trademarks are property of their respective owners