Rider 2024.3의 새로운 기능

Rider 2024.3 delivers support for .NET 9, including such C# 13 enhancements as params collections, partial properties, and the preview field keyword. The Windows Forms Designer is now available for .NET 6+ projects, along with an advanced debugging capability to freeze and unfreeze individual threads. Game developers will be happy to see console debugging for Unreal Engine, IL2CPP debugging for Unity, and improved Godot support. This release also brings expanded AI Assistant functionality, including in-editor AI prompts and customizable chat models. Enhancements for code cleanup, naming conventions, and remote development round out the release.

주요 업데이트

Monitoring(모니터링) 도구 창

.NET 9 지원

Rider 최신 버전에서는 다음을 제공합니다.

  • 새로운 SDK의 프로젝트 템플릿 지원.
  • 새 SDK를 대상으로 하는 프로젝트를 생성, 실행 및 디버그하는 기능.
  • Support for the latest C# 13 features, such as params collections, partial properties, the field keyword preview, and others.

JetBrains 블로그에서 Rider 2024.3의 향상된 C# 13 지원에 대해 자세히 알아보세요.

Windows Forms Designer for .NET projects .NET 6.0+

Windows Forms Designer에서 이제 .NET 6.0 이상을 타깃으로 하는 프로젝트를 지원하므로 Windows Forms 애플리케이션의 UI를 만들고, 확인하고, 수정할 수 있습니다. 이 환경은 .NET Framework를 위한 기존 Windows Forms Designer와 거의 동일한 기능을 제공합니다.

대부분의 DevExpress 제어가 호환되지만 Telerik 및 Infragistics 제어에 대한 지원은 아직 제한적이며 VB.NET Windows Forms 애플리케이션은 지원되지 않는다는 점을 참고하세요.

Ability to freeze and unfreeze individual threads during debugging

Rider 2024.3에는 멀티스레드 애플리케이션을 보다 정밀하게 제어할 수 있도록 디버그 중에 개별 스레드를 멈추거나 멈춤 해제하는 기능이 도입되었습니다. 이 기능을 사용하면 스레드를 마우스 오른쪽 버튼으로 클릭하고 Freeze(멈춤)를 선택하여 나머지 애플리케이션에는 영향을 주지 않으면서 해당 스레드의 실행을 일시 중지할 수 있습니다. 준비가 되면 다시 마우스 오른쪽 버튼을 클릭하고 Unfreeze(멈춤 해제)를 선택하여 스레드 실행을 재개할 수 있습니다. 이 기능은 .NET과 .NET Framework를 대상으로 하는 프로젝트에서만 사용할 수 있습니다.

Running and debugging native code on consoles Game dev Unreal Engine

Rider 2024.3 has reached a massive milestone by introducing support for running and debugging C++ on all major consoles! This includes games written with custom engines and Unreal Engine. Availability is strictly by request, and you must be part of the console’s official development program. 자세한 내용은 여기에서 확인하세요.

More updates for game development

사용자 경험

Tooltip colorization

For this release we reviewed almost all C# error, warning, and informal messages and introduced text colorization wherever possible.

Approximately 600 messages were upgraded with tooltips that are structured for easier reading and include the familiar colors from the editor for the included code elements.

Run widget: Launch multiple configurations simultaneously

The updated Run widget now allows multiple configurations to be launched simultaneously by holding Ctrl and clicking the debug icon. It also displays the controls for all running configurations, simplifying management.

디폴트 탭의 한도 증가

The default tab limit in the editor has been increased to 30, allowing more tabs to stay open before the IDE closes the least recently used ones. You can adjust this in Settings | Editor | General | Editor Tabs.

새로운 터미널의 UI 업데이트

We've updated the new terminal's UI with a more compact design, reducing padding to optimize the use of your screen. 줄어든 안쪽 여백 덕에 공간이 절약되어, 명령어를 사용할 때 가독성이 유지되면서 가시성은 높아집니다.

C# 지원

С#13 업데이트

With its latest release, Rider introduces support for the latest features that come with C# 13, namely:

  • New params collections: The params keyword has been expanded to work with various collection types, allowing for more efficient method signatures without additional allocations.
  • Partial properties: Support has been added for partial properties, enabling you to spread property accessor implementations across multiple files, increasing flexibility and organization in your codebase.
  • New lock type: The new System.Threading.Lock type has been introduced for more efficient thread synchronization, improving performance over the traditional lock statement.
  • Overload resolution priority: A new attribute is available, providing better control of method overload resolution and allowing developers to prioritize which overload gets called in complex scenarios.
  • field keyword: The preview feature has been added to the field keyword. This gives direct access to the backing field of auto-properties, simplifying property logic.

Learn all about the support of C#13 features in Rider and ReSharper on our blog.

Code styles and cleanup

코드 정리

In Rider 2024.3, code cleanup has been re-engineered for more robust performance. It now leverages the same engine as scoped quick-fixes, ensuring thorough issue resolution and enhancing analyzer precision. Parallel preprocessing has also been added to optimize file handling.

Additionally, you can now select the Code Cleanup profile per file or skip cleanup on specific files.

코드 서식 지정

There are new formatting options to give you even more flexibility:

  • New option to control wrapping around an equal = operator.
  • New Indent ‘break’ from ‘case‘ option.
  • New Treat ‘case’ statements with ‘break’ as simple option.

Naming styles

We’ve added a couple of new options to adjust naming rules more precisely.

  • Local functions now come with two options: Local functions with ‘async’ and Task-returning local functions (not ‘async’).
  • Methods have been given a new Task-returning method (not ‘async’) option to support methods with an async suffix in the name that aren’t marked with an async modifier but return a Task-like type. This is helpful when you declare a method in an interface where you aren’t allowed to use an async modifier, but which will return a Task type in implementation.

Code comments

Multiline TODO comments support

Rider 2024.3 now supports multiline TODO comments, allowing indented text on subsequent lines to be treated as part of the same TODO item. This enhancement makes it easier to group related notes and tasks together in your codebase. You can now add context to your TODOs across multiple lines, improving readability and organization.

F# 지원

We’ve updated the F# compiler service to get all the recent language features and improvements to the editor tooling.

유형 힌트

F# support now shows inferred type hints for patterns and members. It’s easy to see the local value types with the new Push-to-Hint implementation.

코드 편집

Code completion can now import functions, values, union cases, and active patterns. There is also a new quick-fix that helps update the pasted code.

You can convert a function expression to a parameter and match it with a new context action.

C# interop

We’ve significantly improved performance when analyzing referenced C# projects and fixed various false positive errors.

More changes, fixes, and new features are listed on the GitHub page.

버전 관리

시작 화면의 브랜치 이름

The Welcome screen now shows the branch name, helping you stay organized when handling multiple project versions and allowing you to switch between working directories easily.

백그라운드에서 이루어지는 커밋 전 검사를 비활성화하는 옵션

이제 Settings(설정) | Version Control(버전 관리) | Commit(커밋)에서 새로운 Run advanced checks after a commit is done(커밋 완료 후 고급 검사 실행) 옵션을 사용하여 커밋 프로세스 중에 백그라운드 검사를 관리할 수 있습니다. 이 설정을 사용하면 커밋한 후 테스트와 검사를 실행할지 여부를 결정할 수 있습니다. 커밋하기 전에 이러한 검사를 완료하려면 이 기능을 비활성화하면 됩니다.

Find in Files(파일에서 찾기) 업데이트

Find in Files(파일에서 찾기) 기능이 새로운 검색 범위인 Project Files Excluding Git-Ignored(프로젝트 파일에서 Git 무시 파일 제외)로 향상되었습니다. 이 옵션을 사용하면 .gitignore 파일에서 무시된 모든 파일이 검색 결과에서 제외되므로 프로젝트를 검색할 때 관련 코드에만 집중할 수 있습니다.

원격 개발

Rider’s remote development is officially out of Beta!

After a final round of refinements during Beta – with particular attention to typing stability – Rider’s remote development functionality is now fully equipped to handle all core development workflows you rely on.

From code editing and debugging to version control, everything now operates almost as seamlessly as it would on a local instance, providing a smooth and powerful experience in remote environments.

You can read more about the supported workflows on the blog.

게임 개발

Unreal Engine

This release brings automatic debugging of child processes on Windows. Any processes created during a debug session will join the session, and breakpoints in the child process will be hit.

It’s also possible to configure rules to decide which child processes to debug and which ones to skip.

In addition to the exciting news about Rider’s support for debugging on consoles, this release also introduces support for the Verse programming language, new code insight features, and integration with Live++ for the hot-reload of C++ applications.

To learn more about the new code insight features, take a look at What's New in ReSharper C++.

Unity

Rider 2024.3 improves your debugging experience with IL2CPP builds, providing the same features you get with Mono. This means you will see Active Scene and this.gameObject nodes in the debugger, as well as Children and Components for GameObject instances. It also fixes issues with the Immediate window, the Collection view, and IL2CPP builds.

이제 Unity 프로파일러 호출 스택에서 항목을 두 번 클릭하면 소스 파일이 Rider에서 열리고, 프로젝트에서 파일을 검색할 때 Rider가 불필요한 부분을 더 효과적으로 필터링하여 제거해줍니다.

Godot

이번 릴리스에서는 C# Hot Reload 지원 및 Godot의 중요 버그가 수정되었습니다. 이제 Rider는 게임이 실행되는 동안에도 사용자가 C# 코드에서 변경한 모든 내용을 애플리케이션에 적용합니다.

Rider는 또한 Godot 4.4에서 적용될 GDScript 디버그 업데이트를 받아들일 준비가 되어 있습니다. 이 업데이트로 이전 버전의 Godot보다 훨씬 더 풍부한 객체 프로퍼티 뷰가 제공됩니다.

웹 개발

보다 깔끔해진 디렉터리 검색 결과

이제 프로젝트 디렉터리에서 Find in Files(파일에서 찾기)를 사용할 때, Rider가 기본적으로 node_modules 결과를 ​​제외하여 관련 없는 파일로 인한 혼란을 줄여줍니다. Settings(설정) | Advanced Settings(고급 설정)에서 Search in library files when “Directory” is selected in Find in Files(파일에서 찾기에서 '디렉터리'가 선택된 경우 라이브러리 파일에서 검색) 옵션을 활성화하여 이전 동작을 복원할 수 있습니다.

프레임워크 구성 요소 탐색 및 이름 변경 개선

Vue, Svelte 및 Astro 구성 요소에 대한 에디터 내 힌트를 개선했습니다. Show component usages(구성 요소 사용 위치 표시) 액션으로 이제 import 문 및 마크업 템플릿 모두에서 사용 위치를 찾을 수 있습니다. 또한 일반 파일 참조를 검색할 때 구성 요소 사용 위치를 제외하기 위해 Show Component Usages 필터도 추가했습니다. Rename(이름 변경) 리팩터링도 업데이트되어 구성 요소 파일의 이름을 바꿀 때 사용 위치를 포함하는 옵션이 추가되었습니다.

Tailwind CSS 클래스의 색상 미리보기

Tailwind CSS 클래스의 색상 미리보기가 이제 에디터에 인라인으로 표시되어 색상을 구분하기가 더 쉬워졌습니다. 언어 서버 프로토콜(LSP)의 textDocument/documentColor 메서드에 대한 지원이 추가되어 모든 LSP 기반 플러그인이 바로 이 기능을 제공합니다.

자세한 정보는 WebStorm의 새로운 기능 페이지를 참조하세요.

데이터베이스 작업

Text-to-SQL: AI로 생성된 결과의 에디터 내 Diff

에디터에서 AI Assistant로 작업할 때의 경험을 개선했습니다. 이제 AI Assistant에게 코드 조각으로 어떠한 작업을 요청하면 에디터 영역에 원래 코드와 생성된 코드의 Diff가 포함됩니다. AI Assistant의 제안은 다른 색상으로 강조 표시되며 여백에 Revert(되돌리기) 아이콘이 표시됩니다. You can also edit the resulting query yourself in the same area. 사용자의 변경 사항도 같은 방식으로 강조 표시됩니다. 예를 들어, AI Assistant에게 쿼리를 사용하여 더 많은 데이터를 가져오도록 요청한 다음, 생성된 결과에 ORDER BY 절을 추가할 수 있습니다.

AI Assistant로 SQL 오류 처리

We have implemented a couple of useful actions for handling SQL query execution errors with AI Assistant, which are accessible in the error message area. Explain with AI opens the AI chat with an automatically sent prompt and AI Assistant’s response providing an explanation of the error. Fix with AI(AI로 수정) 액션을 이용하면 쿼리 실행 오류의 수정안이 에디터에 생성됩니다.

자세한 정보는 DataGrip의 새로운 기능 페이지를 참조하세요.

AI Assistant

Rider용 .NET Aspire 플러그인

인라인 AI 프롬프트

Rider 2024.3 introduces inline AI prompts, offering a seamless way to interact with AI Assistant directly in the editor. 자연어로 요청을 입력하면 AI Assistant가 즉시 해석하여 코드 변경으로 변환하며, 변경 내용을 쉽게 추적할 수 있도록 여백에 보라색으로 표시합니다. 인라인 AI 프롬프트는 컨텍스트를 인식하여 관련 파일과 심볼을 자동으로 포함하므로 코드 생성의 정확도가 더욱 높아집니다.

향상된 컨텍스트 관리 기능

이번 업데이트에서는 AI Assistant가 제안을 제공할 때 고려하는 컨텍스트를 보다 투명하고 직관적으로 관리할 수 있도록 했습니다. 새로워진 UI를 통해 컨텍스트로 포함된 모든 요소를 ​​보고 관리할 수 있어 완벽한 가시성과 통제력이 제공됩니다. 열려 있는 파일과 그 안에서 선택한 코드가 이제 자동으로 컨텍스트에 추가되며, 필요에 따라 파일을 쉽게 추가하거나 제거하고 워크플로에 맞게 컨텍스트를 사용자 지정할 수 있습니다. 또한, 프로젝트 전체 지침을 첨부하여 코드베이스 전체에서 AI Assistant의 응답을 원하는 방향으로 유도할 수 있습니다.

채팅 모델 제공자를 선택하는 옵션

이제 Google Gemini, OpenAI 또는 사용 중인 시스템에 있는 로컬 모델 중에서 원하는 AI 채팅 모델을 선택할 수 있습니다. 이 확장된 선택지를 통해 특정 워크플로에 맞게 AI 채팅의 응답을 사용자 지정하여 적응력이 보다 높고 개인화된 경험을 제공할 수 있습니다.

디컴파일러

IL code for assembly manifest

The IL Viewer tool window now provides IL code for assembly manifest, including:

  • Assembly and module info such as name, custom attributes, etc.
  • Referenced assemblies and modules.
  • 포워드된 타입.
  • A list of files and resources.

This IL code is shown when the caret in the text editor is on an assembly or module attribute or somewhere inside an <AssemblyName>.cs file for external assemblies.

Support for primary constructors

When working with classes that declare a primary constructor, the Decompiler will now display the constructor and its parameters correctly, giving you a complete view of how objects are instantiated directly from the decompiled code.