What's New in v19.1.9

This update includes bug fixes and performance improvements.

Resolved Issues

  • T814395 – Formatting – Attributes in variables are indented incorrectly
  • T811308 – Formatting – The “Wrapping parameters” option doesn’t work if a parameter has an attribute
  • T814632 – Naming Assistant – An incorrect IntelliSense item is inserted into the source code if the Naming Assistant is turned on
  • T812655 – Refactorings – The “Extract String to Resource” refactoring generates the lower case for a class name
  • T811636 – Templates – The new template folder is not shown at the top of a folder list after reopening the templates options
  • T811928 – Templates – Templates import mistakenly processes underlines in the file name
  • T814997 – Test Runner – The Test Runner does not run tests on the second attempt

What's New in v19.1.8

This update includes bug fixes and performance improvements.

Resolved Issues

  • T802253 – Code Analysis – Multiple code analysis messages are created for items in razor files
  • T808214 – Code Analysis – The CRR0050 diagnostic is incorrectly named in the Code Issues catalog for Visual Basic
  • T802340 – Code Cleanup – Attributes are kept in the same line if the Format Document rule is enabled
  • T804274 – Code Cleanup – Code cleanup produces incorrect code when "Apply visibility style" and "Format document" rules are enabled
  • T758588 – Code Cleanup – Region directives are not properly indented when applying code cleanup
  • T805349 – Code Places – Plus/Minus icons are inconsistent with the expand all/collapse all actions
  • T804883 – Formatting – Formatting incorrectly shifts braces in the Object initializer expression
  • T747922 – General – IntelliSense does not pick proper completions for typed text
  • T806425 – Navigation – The "Jump to symbol" navigation does not work after installing Visual Studio 16.3.0 Preview 2
  • T758358 – Performance – Slowdowns occur after the latest Visual Studio update
  • T804409 – Refactorings – The Boolean to Enum refactoring does not update call sites from other files
  • T809129 – Static Code Analysis – The "Unused local variable" issue should not be shown for catch variables in Visual Basic
  • T803744 – Templates – A template does not include Generic types in the class substitution
  • T410568 – Test Runner – The Test Runner used with code coverage requires an admin password
  • T809326 – Refactorings – The convert to string interpolation refactoring does not work correctly when the statement already uses interpolation

What's New in v19.1.7

Diagnostics

This release gets the following code analysis diagnostics:

  • Unused local variable - identifies local variables which are never used in your code and can be safely deleted.

    Unused Local Variable - CodeRush, DevExpress
  • Local variable can be replaced with discard - identifies unused or assigned only variables which can be replaced with a discard.

    >Local variable can be replaced with discard - CodeRush, DevExpress
  • Redundant field initialization - identifies redundant field initialization values which can be safely removed.

    Redundant field initialization - CodeRush, DevExpress
  • The type can be moved to a separate file - identifies types whose name differ from the file name. These types can be moved to a separate file (with the same name as the type) to improve code readability and discoverability.

    The type can be moved to a separate file - CodeRush, DevExpress
  • The type name does not correspond to the file name - this issue appears in the Code Issues window if a type name does not match the name of the file that contains it.

    The type name does not correspond to the file name - CodeRush, DevExpress
  • Environment.NewLine can be used - identifies "\r\n" string values, which can be converted to Environment.NewLine calls.

    Environment.NewLine - CodeRush, DevExpress
  • String.Compare can be used - identifies string comparison expressions which can be replaced with a String.Compare call.

    String.Compare - CodeRush, DevExpress
  • String.IsNullOrEmpty can be used - identifies expressions that test a string for null (or “Nothing” in Visual Basic) or an empty value, which can be replaced with a String.IsNullOrEmpty call.

    String.IsNullOrEmpty - CodeRush, DevExpress
  • String interpolation can be used - identifies composed string expressions which can be converted to interpolated strings.

    String Interpolation - CodeRush, DevExpress

Refactorings

We have new refactorings to help you remove unused variables from your code:

  • Remove Variable

    Remove Variable Refactoring - CodeRush, DevExpress
  • Remove Variable with its Initializer

    Remove Variable with its Initializer Refactoring - CodeRush, DevExpress
  • Remove Discard Variable

    Remove Discard Variable Refactoring - CodeRush, DevExpress

    We have also added the Discard Variable refactoring that replaces unused or assigned-only variables with discard:

    Remove Discard Variable Refactoring - CodeRush, DevExpress

Code Cleanups

New Cleanup Rules

You can use the Code Cleanup feature with the Remove unused variables rule to remove unused variables across multiple files at once.

Cleanup Rules - CodeRush, DevExpress

The Replace unused variables with discard code cleanup rule replaces unused or assigned only variables with discard.

Cleanup Rules - CodeRush, DevExpress

To apply these code cleanup refactorings, make sure the corresponding rules are enabled in the Editor | Language | Code Cleanup options page.

Code Cleanup Options - CodeRush, DevExpress

Run Code Cleanup for Folder

You can now run Code Cleanup for a selected folder (or folders) in the Solution Explorer. Simply right-click the folder you want to clean and select CodeRush Cleanup.

CodeRush Cleanup - DevExpress

The progress window shows what files CodeRush is cleaning:

CodeRush Cleanup Progress - DevExpress

If code cleanup is cancelled while it is still in progress, all code remains unchanged.

Code Places Enhancements

Favorite Code Places

You can favorite code places and access them instantly in the Favorites tab. Favorite places are saved between sessions.

Favorite Code Places - CodeRush, DevExpress

To favorite a code place, right-click a desired member in the 'File Places' tab, select 'Add to Favorites' -> 'Add to new group' in the invoked context menu, enter a group name in the New Favorites Group dialog and press Enter.

CodeRush marks the favorite code place with a star and adds the code place to the newly-created group in the Favorites tab.

Favorites Group - CodeRush, DevExpress

You can also add code places to different favorites groups. Right-click a code place in the 'File Places' tab, and select the desired group in the 'Add to Favorites' sub menu.

Favorites Group - CodeRush, DevExpress

Collapse/Expand Code Places

The new Collapse All/Expand All buttons in the 'Code Places' window let you quickly collapse or expand all the code places and the corresponding members in the code editor.

Collapse/Expand Code Places - CodeRush, DevExpress

Selection Expand/Reduce Enhancement

When using the Selection Expand/Reduce feature you can see a code preview in the code editor if a portion of the selected code falls outside the screen boundaries.

Selection Expand/Reduce Enhancement - CodeRush, DevExpress

To enable this new code preview, go to the 'Editor | All Languages | Selection' options page and enable the "Show code preview hints when selection changes" option.

Options Selection - CodeRush, DevExpress

Resolved Issues

  • T759564 – Bookmarks – Bookmarks are not saved after changing the project properties
  • T753492 – Code Cleanup – Code cleanup incorrectly generates an explicit type name for the List<string> type
  • T758588 – Code Cleanup – Region directives are not properly indented when applying code cleanup
  • T756057 – Code Coverage – The Code Coverage window does not display the hierarchical tree of classes
  • T751963 – Navigation – "Jump to File" does not navigate to the correct recent item
  • T758358 – Performance – Slowdowns occur after the Visual Studio latest update
  • T756649 – Refactoring – The "Convert To Function" refactoring does not work for a local function

What's New in v19.1.6

This update includes bug fixes and performance improvements.

Resolved Issues

  • T749362 – Code Cleanup – "Cleanup on Save" removes necessary namespace references when ORMDataModel generates template classes
  • T753143 – Code Cleanup – The "Add Copyright header" cleanup applied on save changes the existing copyright header
  • T754408 – Code Cleanup – The "Apply Code Cleanup when saving a document" option should ignore designer generated files
  • T753489 – Code Providers – The "Declare Provider encountered an error and has been disabled" notification appears after opening a Xamarin application
  • T751048 – Formatting – Arithmetic operations are incorrectly wrapped in the throw statement
  • T749922 – Formatting – The "Wrap if long or multiline" option does not work for a class
  • T750286 – IntelliRush – IntelliRush does not show information about class members with the latest update of Visual Studio 2019
  • T751963 – Navigation – "Jump to File" does not navigate to the correct recent item
  • T752813 – Performance – The Code Places feature increases memory use
  • T744162 – Performance – Rich Comments cause slowdowns on text edit
  • T753437 – Performance – Slowdowns occur when a format statement is applied after typing ";"
  • T753930 – Refactorings – The "Decompose Parameter" refactoring throws an error when it is invoked in non-compilable code
  • T751407 – Refactorings – The Make Explicit refactoring declares a simple type name instead of the full one in Visual Basic
  • T749874 – Region Painting – An additional extension's region text overlaps the CodeRush region
  • T752606 – Spell Checker – The Spell Checker calculates spans incorrectly for the verbatim string if tabs are used for indentation
  • T747275 – Templates – A template cannot be saved to a nested folder in the "Create Template From Selection" dialog
  • T750705 – Templates – The ForEach command is applied only once
  • T732938 – Unit Testing – Code Coverage does not support MSTests in Visual Studio 2019
  • T748912 – Unit Testing – Parameterized test fixtures set as ignored are not reported correctly

What's New in v19.1.5

New Refactoring - Inline Lambda

This release introduces Inline Lambda refactoring. This refactoring сreates a lambda expression and inlines the referenced delegate.

To use this refactoring, just place the caret on a method reference within a delegate creation statement, press Ctrl+. or Ctrl+ to invoke the Code Actions Menu, select Inline Lambda from the menu and press Enter.

New Refactoring - Inline Lambda

CodeRush Menu - Now Top-level in Visual Studio 2019

The CodeRush menu now is positioned at the top level of the Visual Studio menu bar.

CodeRush Menu - Now Top-level in Visual Studio 2019

If you want to move the CodeRush menu position down into the Visual Studio 2019 Extensions menu (which makes CodeRush harder to use - not recommended), enable the "Nest the CodeRush menu inside the Visual Studio Extensions menu (restart required)" option.

CodeRush Menu - Quick Setup Options

Code Places Enhancements

TypeScript / JavaScript Support (Beta)

Code Places now works in JavaScript and TypeScript code.

TypeScript / JavaScript Support

Note: TypeScript / JavaScript support for Code Places is currently in beta.

Improved Performance for Large Files

We have significantly improved Code Places performance for large files (files with more than 3000 lines of code) in the following scenarios:

  • Opening/closing documents
  • Moving the caret through documents
  • Switching between documents

NGEN Notification in Feature Advisor

Starting with this release, you can see the "Improve Performance with NGEN" notification appearing in the Feature Advisor. In previous versions, NGEN notifications were shown in a message near the top of the IDE.

NGEN Notification in Feature Advisor

You can use the IDE/NGEN Options settings to configure your preferred NGEN performance-enhancing behavior.

NGEN Notification in Feature Advisor

Resolved Issues

  • T746250 – Code Actions – The "Add Contract - Throw Exceptions Contract" code action generates incorrect code in Visual Basic
  • T743951 – Code Cleanup – Code Cleanup does not work with an unused local constant declared in a private sub in Visual Basic
  • T736400 – Code Places – Code Places slows down on the load of large files
  • T747090 – Formatting – Comments appeared after the invalid code part are duplicated on the save operation
  • T742824 – Rich Comments – Сomments in Python looks oversized
  • T705609 – Settings – The Organize Members configuration can't be saved
  • T742681 – Test Runner does not use an xunit´s TestFrameworkAttribute
  • T745917 – Test Runner incorrectly runs tests with custom xunit attributes
  • T746846 – Unit Testing – Code Coverage does not work for MSTest v1 under Visual Studio 2019

What's New in v19.1.4

Visual Studio 2019 version 16.1 Support

CodeRush now installs and runs in Visual Studio 2019 version 16.1 (as well as in 16.2 Preview).

Resolved Issues

  • T741770 – CodeRush 19.1.3 does not install in VisualStudio Community 2019 preview
  • T743709 – Navigation - Find All References - No references found in a WPF project

What's New in v19.1.3

Visual Studio 2019 Support

  • You can now run MSTests with coverage.
  • IntelliRush, Naming Assistant and String Format Assistant now work as expected in Visual Studio 2019.

Name Anonymous Type

The Name Anonymous Type refactoring gets a port from CodeRush Classic. This refactoring replaces the anonymous type with a newly-declared type.

Just place the caret on an anonymous type, press Ctrl+. or Ctrl+~ to invoke the Code Actions Menu, select Name Anonymous Type from the menu and press Enter.

Name Anonymous Type - CodeRush, DevExpress

You can configure the Name Anonymous Type refactoring in the Editor | C# (Visual Basic) | Code Actions | Name Anonymous Type Settings options page.

Name Anonymous Type - CodeRush, DevExpress

New Diagnostics, Refactorings, and Code Cleanups

In this release, we have added the following code analysis diagnostics:

  • Unused Type
  • Unused Parameter

These diagnostics identify types and parameters that are never used in your code (and can be deleted).

New Diagnostics, Refactorings, and Code Cleanups - CodeRush, DevExpress

You can use the Remove Unused Type and Remove Unused Parameter refactorings to quickly remove the corresponding unused types or parameters.

The following screencast shows Remove Unused Type in action:

New Diagnostics, Refactorings, and Code Cleanups - CodeRush, DevExpress

If you want to remove unused types and parameters across multiple files at once, you can use the Code Cleanup feature with Remove unused types, Remove unused private types, and Remove unused parameters rules enabled.

New Diagnostics, Refactorings, and Code Cleanups - CodeRush, DevExpress

Resolved Issues

  • T729773 – Code Places – The Code Places window incorrectly displays the structure of an opened file when the region contains an attribute
  • T734061 – Formatting – A redundant empty line is inserted after a local function if this function contains an if/else branch
  • T735870 – Formatting – Incorrect indentation for an await statement with the specified "Chained Method Calls" option
  • T728540 – Formatting – The "Add whitespace before closing /> for empty elements" option has no effect in XAML
  • T732935 – Formatting – The "Chained Method Calls" formatting option works incorrectly
  • T728015 – IntelliRush – IntelliRush does now allow inserting a lambda expression after a user types "=>" in Visual Studio 2019
  • T737630 – IntelliRush – IntelliRush incorrectly expands the highlighted items when the VB.NET "With" statement is used in Visual Studio 2019
  • T729971 – IntelliRush – IntelliRush incorrectly completes the end tag in XML document comments in Visual Studio 2019
  • T729124 – Naming Assistant – The Naming Assistant does not provide intellisense items in Visual Studio 2019
  • T728989 – Performance – The "Gathering Suggestions" dialog opens slow when renaming properties with custom attributes
  • T729475 – Performance – Visual Studio shows the NGen dialog on each start
  • T732666 – Refactoring – The "Break Apart Parameters" refactoring does not work for ternary expressions in Visual Basic
  • T731365 – Refactoring – The "Convert to Auto-implemented Property" refactoring creates incorrect code with the deprecated OnPropertyChanged method call in the property setter
  • T738340 – Settings – The Smart Semicolon feature cannot be enabled in the Setup Wizard
  • T726804 – Show Color – Color picker does not remember "Sort by" settings
  • T735734 – Spell Checker – Spell Checker incorrectly processes escape sequences in a string literal
  • T729960 – String Format Assistant – String Format Assistant does not work when pressing Ctrl+Space in Visual Studio 2019
  • T730478 – String Format Assistant – String Format Assistant is broken in the Blue Visual Studio theme
  • T729119 – String Format Assistant – String Format Assistant does not support filtering on typing
  • T736181 – String Format Assistant – The String Format Assistant window opens when writing interpolated text in incorrect context

What's New in v18.2.9

Visual Studio 2019 Support

CodeRush now installs and runs in Visual Studio 2019.

Unit Test Builder

This release gets a port of the Unit Test Builder from CodeRush Classic, which helps you generate test cases for members of interest as you step through code.

The Unit Test Builder supports NUnit, XUnit and VSTest frameworks.

To generate a new test case as you are stepping through a debug session, place the caret on the method you want to test, invoke the Code Actions menu (with Ctrl+. or Ctrl+~), select the "Generate Test In" menu item and select the target location for the new test. Tests can be added to existing test classes or to a new test fixture.

After your debug session ends, CodeRush will generate unit test stubs for all the tests created, complete with calls to the methods the feature was invoked from. You can add assertions and/or modify the initialization as needed.

Unit Test Builder - CodeRush, DevExpress

New Refactorings and Code Providers

We have added the Initialize code provider. This provider initializes the variable or the field under the caret with the default type value.

New Refactorings and Code Providers - CodeRush, DevExpress

Just place the caret on a variable or the field, press Ctrl+. or Ctrl+~ to invoke the 'Code Actions' Menu, select 'Initialize' from the menu and press Enter.

New Refactorings and Code Providers - CodeRush, DevExpress

This code provider is available in C# and Visual Basic.

TypeScript Support - Navigation Providers

The following navigation providers are now available in TypeScript code:

  • Base Types
  • Derived Types
  • Members
  • Instantiations
  • Implementations
TypeScript Support - Navigation Providers, CodeRush | DevExpress

LaTeX Formulas Support (Beta)

This release introduces beta support for LaTeX formulas in comments.

LaTeX Formulas Support - CodeRush | DevExpress

You can view and edit fully-formatted mathematical formulas in source code comments (in C#, Visual Basic, JavaScript, TypeScript, HTML, XAML, CSS, and F# code).

You can also change a formula's foreground color, background color and size.

LaTeX Formulas Support - CodeRush | DevExpress

LaTeX support is currently in beta, and supports a subset of the LaTeX formula commands.

We have also added templates to make LaTeX formula creation easier.

TemplateDescriptionExpansion Example
/fLaTeX formula in C#.// <formula >
'fLaTeX formula in VB.' <formula >
!fLaTeX formula in XAML.<!-- <formula > -->
\.Centered dot\cdot
\..Three centered dots\cdots
\8Infinity\infty
\bBraces{}
\bcaBig Cap\bigcap_{lower}^{upper}
\bcuBig Cup\bigcup_{lower}^{upper}
\cpCo-product\coprod_{lower}^{upper}
\fFraction\frac{numerator}{denominator}
\lLimit\lim_{x\to\infty}
\lrLeft & Right Parens\left( \right)
\nrnth Root\sqrt[root]{value}
\oCircle symbol\circ
\oiContour integral\oint
\pProduct\prod_{lower}^{upper}
\sSum\sum_{lower}^{upper}
\sqSquare Root\sqrt{value}
\vVector\vec{numerator}

These templates make it easy to create formatted formulas inside code comments from scratch.

LaTeX Formulas Support - CodeRush | DevExpress

New CodeRush templates also include support for Greek letters in LaTeX formulas. To get a Greek letter in a formula, just enter a "." followed by the letter (or letter abbreviation) you want. For example, to reference the Greek pi symbol, use ".p". To get an uppercase Greek letter, use an uppercase letter after the dot. For example, to get an uppercase Delta symbol, use ".D". For a complete list of supported Greek symbols, see the Comments\LaTeX\Greek Symbols folder on the CodeRush Templates options page.

LaTeX Formulas Support - CodeRush | DevExpress

The LaTeX Formulas Support feature ships disabled by default. You can enable LaTeX formula support on the Rich Comments options page.

LaTeX Formulas Support - CodeRush | DevExpress

Code Places Enhancements

  • Left-Right Dock Option

    We have added the 'Dock Options' to the 'Navigation | Code Places' options page. You can now dock the Code Places panel to the right/left margin.

    Left-Right Dock Option - CodeRush | DevExpress
  • Single-Click Navigation

    You can now jump to the desired type member in the code places list with a single click. Just set the 'Navigate to the member' option to 'Single click' on the 'Navigation | Code Places' options page.

    Single-Click Navigation - CodeRush | DevExpress

Known Issues

  • T728015 – IntelliRush does now allow inserting a lambda expression after a user types "=>" in Visual Studio 2019
  • T729124 – Naming Assistant does not provide any intellisense items in Visual Studio 2019
  • T729119 – String Format Assistant does not support filtering during typing

Resolved Issues

  • T726495 – Code Formatting – The local function with the lambda expression is formatted incorrectly
  • T726351 – Code Places – The Code Places panels shown for multiple source control diff views does not leave much space to view the code
  • T721690 – Code Places – The Options page is missing under the Navigation option node
  • T726916 – General - Visual Studio 2019 RC3 - InvalidOperationException with NodeJs in the log file
  • T719550 – General – NGen does not work in Visual Studio 2019 Preview
  • T722858 – Markers – CodeRush drops markers even if the "Enable markers" option is disabled
  • T722534 – Naming Assistant – The Naming Assistant works incorrectly in Visual Studio 2019 Preview
  • T720387 – Navigation – "Jump to Symbol" causes the access denied exceptions when Quick Nav filters are changed during filtering
  • T724618 – Refactoring – The "Add to interface" refactoring destroys methods in the existing class
  • T723733 – Refactoring – The "Convert to Constant" refactoring works incorrectly when it is applied to a read-only field
  • T725570 – Rich Comments – Rich comments do not work in C++
  • T723559 – Settings – The Code Cleanup options page does now show code changes in before cleanup and after cleanup previews
  • T724259 – Settings – The "Locals" filter is not available on IntelliRush menu
  • T724119 – Smart Semicolon – A semicolon goes in an incorrect place in a certain scenario in JavaScript/TypeScript code
  • T722629 – Static Code Analysis – CRRSP01: False positive in certain circumstances with words following a new line char
  • T724175 – Static Code Analysis – The "Possible NullReferenceException" code issue gives false reports
  • T725542 – Static Code Analysis – "Possible NullReferenceException" false positive for fields with value types
  • T728539 – Templates – Typing "if … or" expands to "||" in a JavaScript comment
  • T722875 – Test Runner – The Test Runner incorrectly calculates the count of tests grouped by multiple categories

What's New in v18.2.8

Code Places

This release introduces Code Places. This feature helps you find your way through large code bases and quickly explore and unfamiliar code.

The Code Places window shows type declarations (class, interfaces, delegates, enums), members (methods, properties, events) and regions from the active C# or VB.NET file. The Code Places window contains the following tabs:

  • File Places – visualizes types and members for the active file.

    File Places - CodeRush, DevExpress
  • History - displays changed code places for the active file.

    History - CodeRush, DevExpress
  • Global History – displays information about changed code places in all files.

    Global History - CodeRush, DevExpress

Navigation is easy. Just open the File Places tab, and double-click the desired type member in the code places list. CodeRush moves the caret to the corresponding declaration and scrolls the view if necessary to show this code in the editor.

File Places Navigation - CodeRush, DevExpress

You can use the search field in each tab to find a specific member. CodeRush filters types and members dynamically as you type.

Find Places Search - CodeRush, DevExpress

Code Places are fully synchronized with the editor. Changes to code (e.g., adding, removing or replacing a member) results in immediate updates in the File Places tab.

Code Places is turned off by default. To enable it, use the CodeRush Visualize toolbar.

Code Places - CodeRush, DevExpress

Unit Testing Improvement

Now you can run MS Test unit tests using the Test Runner in Visual Studio 2019 Preview.

Resolved Issues

  • T713331 – Code Cleanup – The "Apply 'Optional parenthesis' style to invocations (constructor, method or property)" cleanup rule incorrectly works in the DataSet designer file in VB
  • T714044 - Code Cleanup – The "Make properties auto-implemented" cleanup rule produces compilation errors in the DataSet designer file in VB
  • T718290 - Code Cleanup – The "Remove all comments" cleanup rule removes line breaks between task-based comments
  • T713102 - Code Cleanup – The "Remove redundant 'MyBase' qualifier" cleanup rule incorrectly works in the DataSet designer file in VB
  • T715055 - Code Coverage – The System.InvalidProgramException exception is raised when running tests
  • T718589 - General – CodeRush causes the System.ArgumentException error when opening database objects in design view
  • T705499 - Refactoring – The "Declare property with initializer" refactoring declares the read/write property in a read-only struct
  • T714909 - References Window – The References window does not refresh tab text based on an exposed reference
  • T711195 - Region Painting – Region painting places the caret in the wrong place if the "virtual space" option is enabled
  • T714881 - Settings – The cursor is moved one line up when declaring a method variable if there is a region above
  • T714421 - Settings – "Jump to Symbol" does not keep settings after the solution is closed
  • T717739 - Show Color – Show Color does not work in XAML for Visual Studio 2019 Preview 3
  • T714575 - Templates – "as" and "ai" templates generate read/write properties in a read-only struct
  • T717925 - Unit Testing – Unit test executed in Test Runner crashes for conditional appearance in code coverage mode

What's New in v18.2.7

Navigation - Jump to XAML Element

In this release, we have added the capability to navigate to a XAML element. You can jump to a named element from any place of your XAML code.

Just press the Ctrl+Alt+N shortcut (or Num Del if enabled via the CodeRush Setup Wizard) to invoke the Jump To window, choose the XAML Element item in this window, and select the desired element from the 'Available locations' list with the Enter key. CodeRush will move the caret to the specified element, bringing it into view.

You can also type an element name in the search field, and CodeRush will filter locations dynamically as you type.


Navigation - Jump to XAML Element, CodeRush | DevExpress

JavaScript & TypeScript Support

The following features are now available in JavaScript and TypeScript code:

Resolved Issues

  • T705632 - Bookmarks - The 'Move Line Up' and 'Move Line Down' commands executed twice delete the numbered bookmarks on a line.
  • T708563 - Clipboard History - Items are incorrectly inserted when you press 'AltGr+A number key' on the Swedish keyboard.
  • T708969 - Code Cleanup - The 'Remove all comments' cleanup rule should skip task-based comments.
  • T707044 - Debug Visualizer breaks source code debugging.
  • T707103 - Decompiler - An unhandled exception is thrown at the startup of a standalone decompliler.
  • T710572 - General - CodeRush does not show references by pressing Shift+12 if Resharper is installed.
  • T708055 - Navigation - The 'Jump to Declaration' navigation goes into the view instead of the class declaration in MVC.
  • T705499 - Refactoring - The 'Declare property with initializer' refactoring declares read/write property in a read-only struct.
  • T707985 - Refactoring - The keyboard becomes unresponsive after invoking the 'Extract String to Resource' refactoring.
  • T711195 - Region Painting - Region painting places the caret to the wrong place if the 'virtual space' option is enabled.
  • T708010 - Templates - The context menu is broken in the 'Create Template from Selection' dialog.
  • T705927 - Templates - Smart Constructor generates an empty constructor on selecting members to initialize.
  • T711432 - Unit Testing - Sorting by test category works only for the first attribute.
  • T706240 - Unit Testing - An unexpected error is raised when tests ran for the second time.
  • T706298 - Unit Testing - The Test icon disappears in the code editor for private async method tests marked by [Theory] and [ClassData] attributes in the .Net Core project.

What's New in v18.2.6

String Format Assistant

CodeRush now provides IntelliSense for the String.Format and interpolated string format items.

String.Format Intellisense

This window displays a list of format specifiers, previewing the formatted results for each.

Format Preview

This feature is available in C# and Visual Basic.

Format specifier IntelliSense appears automatically when the caret is in the format item portion of the string (for example, "{0}", "{1}", etc.) and you type the ":" character, or if you press the default Visual Studio IntelliSense shortcut, Ctrl+Space.

After you selected a format specifier, you can insert it into your code with the Enter key.

If you continue to type format specifiers, CodeRush will filter the list to only include items containing the typed characters.

Format List Filter

Update Notification Window

The new "Update Notification" window alerts you when a new version of CodeRush has been installed, and also highlights cool features included in this update.

Update Notification Window

Resolved Issues

  • T702428 - Static Code Analysis - CRRSP01: A misspelled word has been found - False positive with interpolated strings using a format string
  • T701852 - Spell Checker - The "SpellCheckerCodeFixProvider encountered an error and has been disabled." error occurs after correcting a misspelled word in the comments section
  • T701014 - Region Painting – Regions are rendered incorrectly after horizontal scrolling
  • T701019 - Region Painting – Region lines are rendered with different length
  • T701031 - Region Painting - The caret can be placed in the middle of the painted region after moving between code lines

What's New in v18.2.5

Resolved Issues

  • [T699511] - Code Cleanup - The "Use expression bodies" cleanup rule makes expression-bodied properties read-only.
  • [T699881] - IntelliRush - Visual Studio 2019 Preview - Committing a selected item by pressing the "Enter" key adds a redundant blank line.
  • [T698700] - Performance - CodeRush slows down in Visual Studio 2017 when debugging (or in debug mode).
  • [T700932] - Refactorings - The Pull member up refactoring throws an InvalidOperationException exception in Visual Basic code.
  • [T696221] - Selection – The Comment/Uncomment selection does not work in XAML if existing comments are selected.
  • [T697216] - Settings - Characters entered at the end of the found text are displayed at the beginning of a template in the template editor.
  • [T698713] - Settings - Shortcuts' text is entered incorrectly in shortcuts settings if the Dvorak keyboard layout is used.
  • [T698777] - Static Code Analysis - The "Possible System.NullReferenceException" diagnostic works incorrectly in switch statements with the pattern type.

What's New in v18.2.4

Sync Namespace With Folder Structure

With the Sync Namespace with Folder Structure feature, you can quickly rename all namespaces within a project so they match the project's folder structure.

Sync Namespace With Folder Structure - CodeRush, DevExpress

Options Layers - Smart Save

Now CodeRush more intelligently distributes settings modifications by options layers. If you modify an option, CodeRush updates the layer in which this option was previosly set. If an option is not found in existing layers, it will be saved to the app data layer.

ASP.NET MVC Support

Now, the Jump to Declaration navigation provider supports ASP.NET MVC partial views. You can navigate from a partial view's reference to the declaration with a single keystroke (F12).

ASP.NET MVC Support - CodeRush, DevExpress

Refactoring Enhancements

Now the Make Implicit/Explicit refactorings support out variables .

Resolved Issues

  • [T687066] - General - The NullReference exception when applying the "Find And Replace" command in Solution Operator into account
  • [T688259] - Formatting - Wrong indentation of constrictor initializer arguments
  • [T696131] - Mega Super Copy does not work
  • [T691087] - Rich Comment with "#" symbols in .gitignore files works incorrectly
  • [T677470] - Settings - Spellchecker cannot be turned off
  • [T689198] - Show Color - Color Picker inserts a wrong color in a CSS file
  • [T686159] - Static Code Analysis - The "Possible System.NullReferenceException" diagnostic should take DirectCast-
  • [T695422] - Templates for method parameters do not work with local functions
  • [T689960] - Templates - The template expansion gets disabled after the "Exc" key is pressed

What's New in v18.2.3

JavaScript & TypeScript Support

HTML & Razor Support

You can now use Smart Duplicate Line and Smart Duplicate Selection in HTML, C# Razor, Visual Basic Razor and Aspx files.

Refactoring Enhancements

With the Pull Member Up refactoring you can move a member (and its dependencies) to a base class. If more than one base class are available in the current solution, you can select the target class from the submenu.

Pull Member Up Refactoring - CodeRush

Rich Comments

We have added the capability to escape markdown characters with the back slash "\".

// \_This text\_ is not underlined

You can also start a comment line with "//" to disable Markdown for the entire line.

  • //// **Markdown** is disabled for this line
  • /* // **Markdown** is also disabled for this line */

Simple Member Formatting

Starting with this release, CodeRush enables you to specify separate formatting options such as Braces and Blank Lines for Auto-Implemented properties. Note that the options only apply if the initial declaration does not contain comments and directives.

Simple Member Formatting - CodeRush

Resolved Issues

  • T685543: Code Providers - The "DeclareProvider encountered an error and has been disabled" notification occasionally appears
  • T682774: Code Providers - The "Add to Interface" provider does not include default values
  • T681923: Rich Comments - The '#' char is incorrectly handled in PowerShell files
  • T679365: Unit Testing - The Details section in the Test Runner window is cleared after editing a test

What's New in v18.1.14

Visual Studio 2019 Support

CodeRush now installs and runs in Visual Studio 2019.

Resolved Issues

  • [T685543] - Code Providers - The ‘"DeclareProvider" encountered an error and has been disabled' notification occasionally appears
  • [T682774] - Code Providers - The "Add to Interface" provider does not include default values
  • [T687066] - General - The NullReference exception when applying the "Find And Replace" command in Solution
  • [T681923] - Rich Comments - The ‘#' character is incorrectly handled in PowerShell files
  • [T696221] - Selection – The Comment/Uncomment selection does not work in XAML if existing comments are selected
  • [T686159] - Static Code Analysis - The "Possible System.NullReferenceException" diagnostic should take DirectCast-Operator into account
  • [T689960] - The template expansion gets disabled after the "Esc" key is pressed
  • [T679365] - Unit Testing - The Details section in the Test Runner window is cleared after editing a test

What's New in v18.1.13

Rich Comments

Important Comments and Question Comments

CodeRush syntax-highlights important comments and question comments in colors you can set.

  • You can mark comments as important by starting the comment with a "!".
  • You can mark comments as questions by starting the comment with a "?".

Rich Comments - CodeRush | DevExpress

Task-Based Comments

CodeRush highlights comments in the color you specify for comments starting with the following task-based tokens:

  • TODO
  • BUG
  • HACK
  • UNDONE

Default colors for these new comment types for light and dark themes are shown below:


Important Comments - CodeRush | DevExpress


You can change these colors on the Rich Comments options page.


Important Comments - CodeRush | DevExpress

Large and Small Comments

CodeRush gives you the ability to use markdown to create large or small comments. Large comments use one, two, or three "+" characters at the start of the comment, and small comments use one, two, or three "-" characters at the start of the comment.

Large and Small Comments - CodeRush | DevExpress

If you prefer markdown syntax, you can also use the hashtag character ("#") to specify comment size:

Comment Hashes - CodeRush | DevExpress

By default CodeRush decreases comment contrast as the font size increases, and increases contrast as comment size decreases. You can change the contrast, or assign a custom color to each of the large and small comment font sizes using the Rich Comments options page:


Contrast Adjust - Comments - CodeRush | DevExpress


Just make sure the Change comment font size and color using ++, --, #, ##, etc checkbox is checked to enable this functionality:


Contrast Adjust - Comments - CodeRush | DevExpress


We have also added the capability to individually enable or disable markdown formatting (bold, italics, etc.) in comments, embedded images in comments, as well as the ability to hide comment delimiters with the back tick (\`).

All of these options are available on the Editor | All Languages | Rich Comments page of the CodeRush Options dialog.

JavaScript & TypeScript - Jump to Symbol

In this release we have added the Jump to Symbol feature, now available in JavaScript and TypeScript code.


JavaScript and TypeScript - Jump to Symbol - CodeRush | DevExpress

Refactoring Improvements

Simple Member Formatting

CodeRush now lets you set formatting options for simple members that include only a single statement (and do not include comments or directives). For this, we have added the following grouped options:

Braces

  • Simple Method
  • Simple Property / Indexer / Event
  • Simple Accessor

Blank Lines:

  • Simple Method
  • Simple Property / Indexer / Event

Simple Member Formatting - CodeRush | DevExpress

HTML and Razor Support

Resolved Issues

  • [T678569] - Code Cleanup - "This" qualifier is not properly applied when accessing inherited members.
  • [T675126] - Formatting - The "Chained Method Calls" formatting option works incorrectly.
  • [T678197] - Refactorings - Invoking the "Reorder Paramaters" refactoring disables the editor's reference/keyword highlighting features.
  • [T678439] - Refactorings - The "Inline method" refactoring creates incorrect code for extension methods.
  • [T671295] - Region Painting - A region directive is not painted when the caret is on the line start.
  • [T676242] - Rich Comments - Painting is not removed in certain cases when the caret is placed into a comment.
  • [T676660] - Rich Comments - Adding a backtick (`) character does not hide leading comment delimiters.
  • [T677757] - Rich Comments - Comment painting does not work if the FSharp package is not installed.
  • [T674732] - Settings - It is impossible to import custom selection embeddings from CodeRush Classic.
  • [T675458] - Static Code Analysis - The "Possible System.NullReferenceException" diagnostic should take with-statements into account.
  • [T675468] - Static Code Analysis - The "Possible System.NullReferenceException" diagnostic should take OrElse-Condition with For-Each-Statement into account.
  • [T675422] - Static Code Analysis - The "Possible System.NullReferenceException" diagnostic should take default property into account.
  • [T675450] - Static Code Analysis - The "Possible System.NullReferenceException" diagnostic should omit notifications for (some) members of third-party-libraries.
  • [T677174] - Static Code Analysis - The "Possible System.NullReferenceException" diagnostic should take Return in If-ElseIf with For-Each-Statement into account.
  • [T677363] - Static Code Analysis - The "Possible System.NullReferenceException" diagnostic should take Null-conditional-operator within if-Operator into account.
  • [T676917] - Static Code Analysis - The "Use Task.Run instead of Task.Factory.StartNew" diagnostic does not take the .NET Framework version into account.
  • [T676909] - Static Code Analysis - Unexpected "CancellationToken parameter is never used" warning.
  • [T679365] - Unit Testing - The Details section in the Test Runner window is cleared after editing a test.

What's New in v18.1.12

This update includes bug fixes and performance improvements.

Resolved Issues

  • [T674906] - Formatting - Expression-bodied properties are wrapped incorrectly.
  • [T674277] - Performance - The NGEN performance improvement notification is not displayed.
  • [T674854] - Rich Comments - Comment sizing does not work in VB.
  • [T674303] - Rich Comments - Embedded images are not rendered until Visual Studio is restarted.
  • [T651495] - Static Code Analysis - The "Possible System.NullReferenceException" diagnostics should take Lambda-Expressions/Closures into account.
  • [T578383] - Static Code Analysis - The "Possible NullReferenceException" diagnostic - Mark/Attribute members/parameters as NotNull.
  • [T674406] - Structural Highlighting - It is impossible to change line colors.

What's New in v18.1.11

JavaScript & TypeScript Support

  • Now, you can use Smart Cut & Copy in JavaScript and TypeScript code.
  • This release includes a pre-release set of templates for JavaScript and TypeScript development that make it easy to declare classes, functions, variables, code blocks, expressions and more. These templates are expected be refined and evolve over the coming releases.
JavaScript and TypeScript Support - CodeRush | DevExpress

Member Sections

CodeRush templates can place generated members in dedicated target sections for those members. A member section can start with a comment or be contained inside a region. You can define target sections using the Region or Comment group buttons on the Organize Members option page.

Member Sections - CodeRush | DevExpress

You can specify the text for the target comment or region...

Member Sections - CodeRush | DevExpress

And CodeRush templates will generate well-organized code according to your team's rules and settings:

Member Sections - CodeRush | DevExpress

Performance Improvements

You can improve CodeRush performance by creating native images using NGEN.exe.

If NGEN performance improvements are available, you'll see a notification near the top of the IDE.

Performance Improvements - CodeRush | DevExpress

You can compile assemblies once for this install, do it automatically after each update, or disregard the suggestion and never see it again.

NGEN compilation is performed in a separate process so you can close Visual Studio or keep it running after you start. Compilation progress is updated in the notification area if Visual Studio is running.

Note: CodeRush will only show this performance upgrade notification if Visual Studio is executed with administrator privileges.

Rich Comments

This release includes a groundbreaking new feature which gives Visual Studio developers the ability to effortlessly embed images, diagrams, formulas, tables, etc., inside source code (C#, F#, JavaScript, TypeScript, Visual Basic, XAML, HTML, CSS, and XML). You can paste any image from the clipboard, or reference a local file in markdown.

Rich Comments - CodeRush | DevExpress

Embedded images can be scaled and cropped, and work seamlessly with Visual Studio. Embedded images are great for explaining complex code, signposting important classes and functions, communicating with team members, bringing new team members up to speed faster, and more.

For more details on this amazing new technology, see devexpress.com/holygrail.

Code Analysis

  • You can now set options to determine how the Possible System.NullReferenceException diagnostic performs its analysis in methods, properties, parameters and fields.

    Code Analysis - CodeRush | DevExpress
  • We have added the "Task.Factory.StartNew usage can be dangerous" code diagnostic, warning when unsafe methods are used to start a new thread.

Other Improvements

  • Move to Region can now position methods alphabetically. To try this, on the Move to Region options page, set "Inside regions, place newly-moved members" to Alphabetically.

    Move to Region Options - CodeRush | DevExpress

    The Move to Region UI now allows you to select target regions from a tree menu (regions are shown in the same hierachical order they appear in code).

    Move to Region Tree - CodeRush | DevExpress
  • With new HTML context providers, you can customize your own HTML-specific CodeRush features like shortcuts, templates, selection embeddings.

    Html Context Providers - CodeRush | DevExpress

Resolved Issues

  • [T668685] - Formatting - The Dictionary initialization is aligned incorrectly.
  • [T670141] - Refactorings - The "Convert to string interpolation" refactoring incorrectly processes escaped curly brackets.
  • [T668862] - Static Code Analysis - Code Issues Window - Code issues are not sorted by line number.
  • [T671027] - Unit Testing - TestRunner doesn't take TestCategory attributes of TestClasses into account.