{"id":488770,"date":"2024-07-01T17:54:50","date_gmt":"2024-07-01T16:54:50","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=dotnet&#038;p=488770"},"modified":"2025-09-17T08:02:03","modified_gmt":"2025-09-17T07:02:03","slug":"rider-2024-2-eap-5","status":"publish","type":"dotnet","link":"https:\/\/blog.jetbrains.com\/en\/dotnet\/2024\/07\/01\/rider-2024-2-eap-5","title":{"rendered":"Rider 2024.2 EAP 5: Reader Mode, Monitoring for Game Dev, and More"},"content":{"rendered":"\n<p>Rider 2024.2 EAP 5 <a href=\"https:\/\/www.jetbrains.com\/rider\/nextversion\/\" target=\"_blank\" rel=\"noopener\">has just landed<\/a>! This build brings a variety of new features and improvements to enhance your development experience. As always, your feedback is invaluable in helping us refine these updates, so we encourage you to try out the new build and share your thoughts.<\/p>\n\n\n    <div class=\"buttons\">\n        <div class=\"buttons__row\">\n                                                <a href=\"https:\/\/www.jetbrains.com\/rider\/nextversion\/\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Download the EAP build <\/a>\n                                                    <\/div>\n    <\/div>\n\n\n\n\n\n\n\n<h2 class=\"wp-block-heading\">UX\/UI<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Reader mode<\/h3>\n\n\n\n<p>Reader mode is now available in Rider 2024.2 EAP 5. It&#8217;s designed to make reading library and read-only files, including decompiled ones, a whole lot easier, and it includes inline rendering of documentation comments for C# and F#, as well as virtual indenting for C#.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/09\/AD_4nXfboKIXOepv01MwfQY1DGAAI7GzKEVc5WjmtW65bO5dGALNx2vJuH9_4LQdqif4iAS_AR5V7wBGtC0262l3yv2T7l28O74CACleWJBMdxl6hgUTugJIdly_q1bPzmUGerjzo73BrNNV7545CVltb_H2xtsg.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>Virtual indenting modifies the style of read-only code to match your preferred layout.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><em>Extract common code<\/em> refactoring for C#<\/h2>\n\n\n\n<p>Rider\u2019s latest refactoring enhancement enables you to extract common code out of branching statements such as <code>if<\/code> or <code>switch<\/code>. This update streamlines and consolidates shared logic, ensuring it\u2019s executed regardless of the branching path, improving code readability, and reducing redundancy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sticky lines for C++&nbsp;<\/h2>\n\n\n\n<p>In addition to the sticky lines for preprocessor directives introduced in EAP 3, Rider 2024.2 now offers sticky lines for accessibility specifiers in C++.&nbsp;<\/p>\n\n\n\n<p>Accessibility specifiers (<code>public<\/code>, <code>protected<\/code>, and <code>private<\/code>) define the access control for class members. The new sticky lines feature keeps these specifiers visible at the top of the editor window as you scroll, helping you quickly identify access levels and better manage complex class hierarchies by maintaining constant visibility of the encapsulation and inheritance structure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Enhanced <em>Monitoring <\/em>tool window<\/h2>\n\n\n\n<p>The <em>Monitoring <\/em>tool window inside Rider 2024.2 supports a broader range of application types. This tool window is now displayed during running and debugging for the following project types:<\/p>\n\n\n\n<ul>\n<li>C++ projects<\/li>\n\n\n\n<li>Unity projects<\/li>\n\n\n\n<li>Unreal Engine projects<\/li>\n\n\n\n<li>Mono projects<\/li>\n\n\n\n<li>.NET Framework projects (without heap information)<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/09\/AD_4nXcfg7zGQfAr_1afRwBKrAAHFBmVbigav0WdKxI5iwX-Tc0S_0b3710A1BXMqHfrCYo8mx9r2v_4jI5gD1K5pA82jdABJrnocSGmK8-xHrKcLv1bnCexLywUG_tuhAHTIzMemyMW6VaMieKcRYU_pvVZyQXB.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>For newly supported project types, the Monitoring functionality is currently limited to the Chart and Environment tabs. The <em>Chart <\/em>tab in these cases only includes data on CPU usage and private memory consumption.<\/p>\n\n\n\n<p>The Counters tab, as well as detailed information on heap sizes, GC time, and exception counts in the Charts tab, are still only supported .NET Core 3.0+ and .NET 5+ applications.<\/p>\n\n\n\n<p>Please note some known cases where this feature might not work:&nbsp;<\/p>\n\n\n\n<ul>\n<li>when cmd.exe is monitored instead of the user&#8217;s application if the <em>Use external console<\/em> option is enabled in configuration settings on Windows&nbsp;<\/li>\n\n\n\n<li>when attaching to mono processes<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Performance and memory profiling<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">dotTrace&nbsp;<\/h3>\n\n\n\n<ul>\n<li>We\u2019ve resolved the issue with missing kernel sampling events in <em>Timeline <\/em>mode (<a href=\"https:\/\/youtrack.jetbrains.com\/issue\/DTRC-30949\/Implement-a-workaround-for-missing-Kernel-Sampling-events\" target=\"_blank\" rel=\"noopener\">DTRC-30949<\/a>).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">dotMemory<\/h3>\n\n\n\n<p>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:<\/p>\n\n\n\n<ul>\n<li><strong>Automatic memory inspections<\/strong>: dotMemory gets the <strong>Inspections <\/strong>view, which shows a number of automatically detected memory issues.<\/li>\n\n\n\n<li><strong>Cross-workspace snapshot comparison<\/strong>: Now, you can compare snapshots from different profiling sessions, allowing for a more comprehensive memory analysis.<\/li>\n<\/ul>\n\n\n\n<p>These features are available in the standalone version of dotMemory.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><em>Explain with AI<\/em> for Dynamic Program Analysis&nbsp;<\/h2>\n\n\n\n<p>The <em>Dynamic Program Analysis<\/em> (DPA) tool window now features an <em>Explain with AI<\/em> 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 <em>Dynamic Program Analysis<\/em> tool window to help you quickly understand and resolve even the most complex issues associated with memory allocation and working with databases.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Game development<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">[Godot] Debugging for GDScript<\/h3>\n\n\n\n<p>Rider 2024.2 EAP 5 introduces support for debugging GDScript in Godot. This update makes it easier for Godot developers to debug their scripts directly within Rider, streamlining the development process and providing a more integrated experience.<\/p>\n\n\n\n<p>For the full list of changes included in this build, please refer to <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/RIDER?q=Available%20in:%20%7B2024.2%20EAP%205%7D%20\" target=\"_blank\" rel=\"noopener\">our issue tracker<\/a>.<\/p>\n\n\n    <div class=\"buttons\">\n        <div class=\"buttons__row\">\n                                                <a href=\"https:\/\/www.jetbrains.com\/rider\/nextversion\/\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Download the EAP build <\/a>\n                                                    <\/div>\n    <\/div>\n\n\n\n\n\n\n\n<p>We encourage you to download the latest build, explore these new features, and share your feedback with us. Your insights are crucial in helping us refine these updates and deliver the best possible experience for all our users.<\/p>\n","protected":false},"author":1337,"featured_media":478486,"comment_status":"closed","ping_status":"closed","template":"","categories":[4992,826,907,4140],"tags":[6937,1978,8541],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/dotnet\/488770"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/dotnet"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/types\/dotnet"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/users\/1337"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/comments?post=488770"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/dotnet\/488770\/revisions"}],"predecessor-version":[{"id":615088,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/dotnet\/488770\/revisions\/615088"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media\/478486"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/media?parent=488770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/categories?post=488770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/tags?post=488770"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/en\/wp-json\/wp\/v2\/cross-post-tag?post=488770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}