What’s New in Rider 2024.2

Rider 2024.2 introduces full line code completion for multiple supported languages, reader mode with inline rendering of documentation comments, a new Tasks tab and task dependency graphs for debugging, as well as improved navigation to class members. Updates for game development include highlights like the bundling of the Godot plugin and enhanced Unreal Engine debugging. This release also introduces support for .NET 9 Preview SDK, including initial support for C# 13 features. The updated feature set is enhanced by improvements to AI Assistant, such as enhanced code completion, AI-assisted VCS conflict resolution, and more.

Download

Free 30-day trial

Key updates

Full line code completion for C#, С++, JS/TS, CSS

Rider 2024.2 introduces support for a new type of code completion: gray text single-line suggestions that complete statements based on the context of the current file. These suggestions are powered by language models that run locally without sending any code over the internet.

Reader mode

Rider’s new reader mode is designed to make reading library and read-only files, including decompiled ones, a whole lot easier. The mode offers inline rendering of documentation comments for C#, С++, and F#, as well as virtual indenting for C#.

Tasks tab and a task dependency graph

The Debug tool window now contains a new Tasks tab. This tab presents detailed insights into the System.Threading.Tasks.Task and ValueTask objects, enhancing your ability to manage and monitor asynchronous operations.

The tasks can be displayed in either table or graph format. The table view provides task states and metadata, while the graph view shows task dependencies and helps identify deadlocks.

Improved navigation to members in a class

The Navigation bar in Rider has been improved for the C#, C++, VB, and F# languages. Now, the path from the project root to the file you’re working on extends to the symbol where the caret is currently positioned. Clicking on any item in the chain, including classes, reveals a dropdown popup that displays its child nodes. This means you can navigate to any method in a class directly from the popup with a single click.

Game development

The latest update to JetBrains Rider is packed with exciting improvements for game development. Here are just a few highlights:

  • Starting with Rider 2024.2, the Godot plugin is now bundled. This update also introduces GDScript support for syntax highlighting, code completion, Find Usages, and debugging.
  • The Monitoring tool window now supports C++ applications, Unity, and Unreal Engine projects.
  • Rider 2024.2 also features an improved debugging experience for Unreal Engine, with better evaluation for smart pointers and strings, a new Modules tab, and enhanced error messages.

Skip right to the game dev updates.

The .NET Aspire plugin bundled

The .NET 8 SDK introduced .NET Aspire – a new approach to tackling the complex issues around building distributed applications on the .NET stack. In response to this innovation, JetBrains introduced new integrated tooling – the .NET Aspire plugin for Rider.

As of this release, the .NET Aspire plugin is now bundled with Rider. The plugin comes with a corresponding project template that you can select when setting up a new solution.

Support for .NET 9 Preview SDK

  • Support for project templates from the new SDK.
  • The ability to create, run, and debug projects targeting the new SDK.
  • Initial support for the latest C# 13 features, including the new escape character, params modifier refactorings, and ref struct interfaces.

User Experience

New UI becomes the default

Starting with Rider 2024.2, the so-called “New UI” that we first introduced with the 2022.3 releases of JetBrains IDEs has finally become the default for all users.

If you are particularly fond of Rider’s old look, you can enjoy the classic UI by installing the corresponding plugin.

Support for project/solution template parameters with multiple choices

Certain project templates include parameters you may want to configure via multiple-choice selection. For example, a cross-platform application template might have options for various target operating systems or different language locales. To address such cases, Rider now supports the selection of multiple values for a given project parameter inside the New Solution dialog.

Better UI for the Usages of popup

Now, whenever you want to find usages of a class, method, or variable in your codebase, the Usages of popup (invoked by Cmd/Ctrl+Click) will have a more streamlined look with multiple filtering options.

Improved Customize Main Toolbar dialog

We’ve redesigned the layout and behavior of the UI elements in the Customize Main Toolbar dialog, making it more intuitive and organized. Now, it’s easier to search for, add, and delete actions in the main toolbar.

Editor

Inline rendering of documentation comments for C#, C++, F#

Instead of a wall of text mixed with tags, inline rendering changes these comments into a more visually appealing format, complete with links and code blocks. No more struggling with confusing tags – you’ll be able to read everything more clearly. It can be utilized in any C#, C++, or F# files to improve your reading experience.

Semantic highlighting for C# and C++

We’ve added support for optional semantic highlighting for C# and C++. This feature is designed to help you distinguish between different parameters and local variables in the code by color. You can enable or disable semantic highlighting in Settings/Preferences | Editor | Color Scheme | Language Defaults | Semantic Highlighting.

Support for math syntax in Markdown files

Rider can now natively render mathematical expressions in Markdown files. When working with Markdown, you can use $ to insert inline math expressions and $$ for code blocks with math content.

Language-specific settings for sticky lines

You can now set sticky lines more precisely and choose the languages you want them to appear for. You can tailor the feature to your preferences either in Settings/Preferences | Editor | General | Sticky Lines, or by calling the context menu with a right-click on a sticky line in the editor.

C# support

With its latest release, Rider deepens support for C# 12 features, including primary constructors, enhanced collection expressions, and improved context actions for array creation and collection type conversions. Additionally, Rider 2024.2 introduces initial support for C# 13, featuring the ref struct interface implementation, the new \e escape sequence, and the params modifier refactoring.

This update also introduces:

  • Enhanced equality analysis for struct types.
  • The Extract common code inspection for reducing duplication in branching constructs.
  • Culture previews in ToString() format specifier code completion.
  • Cast expression analysis to replace fragile C-style casts with explicit type annotations.

Check out this blog post to dive into the latest updates to C# support introduced in ReSharper and Rider 2024.2.

F# support

F# Interactive

We’ve added support for debugging F# scripts and have also made various improvements and fixes to the F# Interactive tool window.

Extension members import

Importing extension members is now supported via code completion and corresponding quick-fixes.

New context action

It's now possible to convert partial function applications and F# 8 short lambdas into normal lambda expressions.

Name suggestions in patterns

Code completions for patterns now intelligently suggest names based on value types, even in complex patterns, based on the same logic used in the Rename refactoring and pattern deconstruction actions.

More information about other bug fixes and improvements for F# support can be found here.

AI Assistant

General improvements to AI Assistant

JetBrains AI Assistant 2024.2 introduces enhanced code completion and in-editor code generation. The AI chat is now powered by GPT-4o, and file references for better context understanding. New features include AI integration in the Terminal for command generation, AI-assisted VCS conflict resolution, and customizable prompts for documentation. You can also now specify the language in which you want to interact with the AI chat in the Settings.

Explain with AI for Dynamic Program Analysis

The Dynamic Program Analysis (DPA) tool window now features an Explain with AI button for issues related to memory allocation and database problems. This AI-driven feature offers detailed explanations and advice from AI Assistant on potential fixes directly within the Dynamic Program Analysis tool window to help you quickly understand and resolve even the most complex issues associated with memory allocation and working with databases.

Version control systems

Updated Local History dialog

We’ve modernized the UI of the Local History dialog. Additionally, when accessed for a directory, it now features a diff view next to the list of changes, making them easier to understand.

Enhanced user experience with the Log tool window

All settings related to the Log tool window have been consolidated into a dedicated settings page, that you can access either through Settings/Preferences | Version Control | Log or via a new dropdown menu on the Log tool window’s toolbar. Additionally, you can now open the Git log as a tab in the editor, providing more workspace and easier navigation through the list of commits and related details. This action is available through the same dropdown menu in the tool window’s toolbar.

Game development

Godot

Good news, everyone! The Godot plugin is now bundled with Rider 2024.2, so you get great out-of-the-box support for all the major game engines. This includes the following support for working with Godot in C#: run and debug configurations for the Godot editor and game, completion of InputAction and NodePath string literals, debugger extensions to view the current scene and child node, and more.

In addition to that, Rider 2024.2 adds the following new features:

GDScript support

Rider now supports editing GDScript, with syntax highlighting, code completion, Find Usages, and more, thanks to the LSP support provided by the Godot editor. It also integrates nicely with the community-developed GDScript plugin. If installed, the Godot LSP is used for error highlighting, but the community plugin is used for Find Usages.

GDScript debugging

This release also introduces support for debugging GDScript. Rider will generate the run configurations necessary to connect the debugger, and you can then use all of Rider’s powerful debugging features to debug your GDScript games.

AI Assistant integration

Rider’s AI Assistant gets a boost with context about your Godot project. AI Assistant will now understand that you’re in a Godot project and provide answers tailored to your environment.

Unreal Engine

Debugger improvements

This release sees a massive set of updates to the native debugger, with many improvements in evaluation, especially for smart pointers and equal comparisons for strings, data breakpoints, and while working with optimized code. A new Modules tab has been added to the Debug tool window to show all dynamic libraries loaded while debugging. Even the error messages are better!

See this blog post for a deeper dive into what’s changed.

Monitoring tool window

Rider 2024.2 introduces additional support to the Monitoring tool window, which appeared in the previous release but supported only C# and .NET applications until now. This allows monitoring of CPU and memory usage, as well as other performance metrics. It works automatically for C++ applications, including Unreal games. See the documentation for more details.

New inspections and code insights

This release includes some new inspections for your C++ and Unreal code. Rider will detect missing calls to Super in BeginDestroy and GetLifetimeReplicatedProps, and provide an Alt+Enter quick-fix. It also recognizes template traits, ensuring that your structs have the required methods and quickly generating them if missing. Additionally, Rider will now recognize Unreal’s color types, providing highlights and a color picker directly from Alt+Enter.

Full line code completion

C++ gets support for Rider’s full line code completion, using on-device models that are not connected to the cloud. Now, you get the benefits of AI-based code completion without sharing your code with third parties.

Struct member layout info

This is another useful update from a feature introduced in the last release, with the addition of layout information to the quick doc tooltip for struct members. Hover over a member and you’ll see the size of that field, the alignment, and also the offset from the start of the containing struct. It’s a great way to really understand the layout of your data.

And finally…

Of course, there is a lot of other work going on behind the scenes. We've made some nice quality-of-life updates to sticky lines, including preprocessor directives and the current access specifier, so you always know if your code is public or private.

Beyond this, there are other smaller features and fixes, such as support for low-level tests, automatic renaming of the .cpp file when a header file is renamed and vice versa, and the “Why is Rider suggesting this?Alt+Enter menu action.

Unity

Monitoring support

Rider 2024.1 introduced a really helpful Monitoring tool window that tracks CPU and memory usage, as well as other performance metrics. This release extends its support to include Unity, so you can now view CPU and memory usage when attaching to the Unity editor.

Tuanjie support

Rider now supports Unity China’s Tuanjie editor, with the same feature set that is available for the original Unity editor.

Shader variant updates

Rider’s support for shader variant keywords now works with compute shaders, allowing you to enable and disable keywords to enable highlighting in preprocessor branches. Rider will now show the name of the shader pass in the shader context widget, so you can easily tell where your shader is being used from.

This release also includes the usual set of smaller features and fixes, including some updates to fix false positives while running Burst inspections.

Web development

Directly run and debug TypeScript files

You can now run and debug TypeScript files without any additional setup. You can execute TypeScript files from different entry points, including the file context menu, the Run widget, and the Current File configuration.

Improved support across major JS frameworks

Rider 2024.2 is able to resolve paths for frameworks that use file-system-based routing. It can resolve link paths based on your project's file system, providing autocompletion and navigation for Next.js, Nuxt, SvelteKit, and Astro. There is also support for new Svelte 5 snippets and render tags. Additionally, we’ve implemented language server protocol (LSP) support for Astro and upgraded the Vue LSP to Vue Language Tools 2, improving code completion and the overall developer experience.

For more detailed information, visit the What's New in WebStorm page.

Working with databases

Some of the most notable improvements for working with databases using Rider 2024.2 are:

  • Scripted loaders: Import data from Excel, JSON, Parquet, and shapefile formats with custom scripted loaders.
  • Related rows in floating toolbar: Access related rows using the table cell's floating toolbar.
  • Geographical data viewer: Explore geographical data in CSV, XLSX, and other formats.

For more detailed information, visit the What's New in DataGrip page.

Remote development

Code With Me (CWM)

In this iteration, we've made improvements to various aspects of the typing experience when using CWM. Enhancements include better code completion, more seamless code editing, improved syntax highlighting, refined live templates, and a more robust Undo functionality. You can find a more technical status update here.

Please take the time to try CWM and tell us about your experience.

Plugins

dotTrace

dotUltimate

Improved performance

dotTrace has received several performance improvements, including faster processing of Timeline snapshots and data on the Call Tree and Hotspots views.

dotMemory

dotUltimate

New views

The built-in dotMemory plugin has gained the ability to automatically analyze snapshots and compare snapshots contained in different dotMemory workspaces. This entails the introduction of a couple of additional views:

  • Automatic memory inspections: dotMemory now has the Inspections view, which shows several automatically detected memory issues.
  • Cross-workspace snapshot comparison: Now, you can compare snapshots from different profiling sessions, allowing for a more comprehensive memory analysis.

These features are also available in the standalone version of dotMemory.

Improved instance search

We’ve added new filtering options to the Instances view:

  • Search by string value: Type any string value into the filter field, and dotMemory will highlight matching strings. This makes it easier to find specific string instances based on their content.
  • Regex support for string values: Use regular expressions for more advanced searches. For example, ^nAsso.{5,}ID$ matches nAssociatedObjectID.nAssociatedObjectID.
  • Search by object address: You can also search for object instances by their memory address. This is useful for tracking specific objects directly.

Visualize Call Tree with Sunburst chart

The Call Tree can now be displayed as a Sunburst chart, highlighting functions that allocate the most memory.

.NET Watch Run Configuration plugin now bundled

Starting from Rider 2024.2, the .NET Watch Run Configuration plugin comes pre-packaged with Rider. This means there is no need to download .NET Watch Run Configuration from JetBrains Marketplace. You can instantly start leveraging the power of dotnet-watch in your solutions.

For a deep dive into the plugin’s functionality, check out this separate blog post.

Decompiler

General enhancements

  • Lambda parameters: We’ve introduced support for decompiling lambdas with optional and parameter-array parameters, enhancing the readability and accuracy of decompiled code.
  • Attributes on lambdas: The tool now offers improved handling of attributes on lambda expressions to ensure that all relevant metadata is accurately reflected in the decompiled output.
  • Protected assemblies: We’ve introduced the ability for you to specify whether you’d like to decompile protected assemblies, allowing more comprehensive code exploration.

Handling of external sources

  • PDB with SrcSrv and SourceLink: The decompiler now supports navigating to sources from PDB files containing both SrcSrv and SourceLink.
  • Preprocessor directives: The decompiler now correctly recognizes preprocessor directives (like NET6_0_OR_GREATER) from the target framework or Portable PDB of the associated assembly, ensuring accurate code representation.

Build configuration detection

The Assembly Explorer tool window now detects and presents the build configuration of assemblies, providing clearer insights into the assembly’s compilation context.

Miscellaneous

Switch to the JBR 21 runtime

We’re transitioning from JetBrains Runtime 17 (JBR17) to JetBrains Runtime 21 (JBR21). Starting with Rider 2024.2, all IDE updates will come with JBR21, offering enhanced security and performance, as well as Wayland rendering support for Linux.

Localization plugins bundled

We now bundle Chinese, Korean, and Japanese localization packages with the IDE.