Rider 2024.2

Released: Aug 15, 2024

2024.2 での更新項目

機能

Key Updates

  • Full line code completion for C#, С++, JS/TS, CSS - This release 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. The path from the project root to the file you're working on now 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 this release, 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.
    • This release 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.
  • 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.
  • Added support for Microsoft .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 this release, the so-called "New UI" that was 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 - Whenever you now 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 - The layout and behavior of the UI elements in the Customize Main Toolbar dialog have been redesigned, making it more intuitive and organized. It's now 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++ - 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.
  • 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.

F# support

  • F# Interactive - 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.

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 - The UI of the Local History dialog has been modernized. 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
    • The Godot plugin is now bundled with this release, 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, this release 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. The error messages have also been improved.
    • Monitoring tool window - This release 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.
    • 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. You now get the benefits of AI-based code completion without sharing your code with third parties.
    • Struct member layout info - Added 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... - Made some 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. There are also 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 is now 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.
    • Language server protocol (LSP) support has been implemented for Astro and the Vue LSP has been upgraded to Vue Language Tools 2, improving code completion and the overall developer experience.

Working with databases

  • Some of the most notable improvements for working with databases using Rider with this release 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.

Remote development

  • Code With Me (CWM) - In this iteration, improvements have been made 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.

Plugins

  • dotTrace
    • Improved performance - dotTrace has received several performance improvements, including faster processing of Timeline snapshots and data on the Call Tree and Hotspots views.
  • dotMemory
    • 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: You can now compare snapshots from different profiling sessions, allowing for a more comprehensive memory analysis.
    • Improved instance search - 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 this release, 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.

Decompiler

  • General enhancements:
    • Lambda parameters: 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: Added 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 - Rider is transitioning from JetBrains Runtime 17 (JBR17) to JetBrains Runtime 21 (JBR21). Starting with this release, all IDE updates will come with JBR21, offering enhanced security and performance, as well as Wayland rendering support for Linux.
  • Localization plugins bundled - Chinese, Korean, and Japanese localization packages are now bundled with the IDE.