Mark Miller

June 2016 - Posts

  • CodeRush for Roslyn (Preview), version 16.1.4

    First, a quick update on where we are and how we got here: About a year ago I announced that the CodeRush team had been working on a new project, CodeRush for Roslyn. A new version of CodeRush that relied upon the Roslyn engine instead of our own parser. The architectural shift yielded two primary benefits:

    • Significantly Faster Performance:


    • Significantly Lower Memory Use:


    And developers are reporting similar results on twitter:


    In the last year we’ve ported hundreds of features from CodeRush Classic, maintaining our focus and priority on faster performance and low memory use. During this time CodeRush for Roslyn (Preview) has been available as a free download from the Visual Studio Gallery, and we received valuable feedback from our customers. Thank you for that.

    In this release, version 16.1.4, we get a step closer to the first official release. In July we expect to make one more preview available, and shortly after that we expect to ship.

    Here are the new features in 16.1.4 (Preview):

    Target Picker

    Now you can quickly select the target location for new methods, events, properties, fields, and constants. Just press the up and down arrows to move the target picker up and down, and press Enter to declare at the specified location.


    Reference Filtering

    The Reference window now lets you optionally filter results by usage - Read, Write, or Instantiation:


    Jump to Implementation

    Now you can jump to the implementation of ancestor overrides and implemented interfaces, available through the “Implemented API” option in the Jump To menu:


    XAML Enhancements

    • The Optimize Namespace References refactoring is now available for XAML namespaces:

    • Templates for XAML are now shipping:


    New Refactorings and Code Providers

    • Add Missing Constructors – Adds the default constructor and all constructors specified by parent types to the current class.
    • Add to Interface – Adds a member to an interface that is already implemented by the current class.
    • Declare Field/Property with Initializer – Generates a field of the appropriate type for the selected parameter.
    • Introduce Format Item – Creates a new String.Format item from a selected string part.
    • Move Declaration Near Reference – Moves a local variable declaration to the line of code that is closest to its first usage.
    • Move Initialization to Declaration – Combines separate variable declaration and initialization statements into a single statement.
    • Split Initialization From Declaration – Separates a single-statement variable declaration and initialization into two separate declaration and initialization statements. This refactoring is useful for conditional initialization, or when you want to widen the scope of the declaration.

    Other Improvements

    • The Code Issues window can now show Visual Studio code analysis results instantly without refreshing the list.
    • The Spell Checker now reports misspelled words in the Code Issues window.
    • You can now export your Roslyn settings and import settings from CodeRush Classic using the CodeRush | Support | Import and Export Settings… command.

    Try it Yourself

    Give CodeRush for Roslyn (Preview) a try. The preview edition is free. Let us know what you think, and what we can do to make the experience better.


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 or call us at +1 (818) 844-3383


DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, Delphi, HTML5 or iOS & Android development. 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-2018 Developer Express Inc.
All trademarks or registered trademarks are property of their respective owners