Rider의 새로운 기능

Rider 2022.3은 C# 11의 최신 기능을 포함하여 .NET 7 SDK를 지원합니다. 이 버전에서는 원격 개발을 통해 WSL 2(Linux 2용 Windows 하위 시스템)에서 Rider를 실행하는 기능과 시작 시간에 특히 중점을 두고 성능을 크게 향상했습니다. 또한 여러 대의 모니터를 사용하는 경우에 유용한 도구 창 고정과 같은 몇 가지 중요한 UX/UI 변경 사항을 도입했습니다. 마지막으로, 이번 릴리스는 Unity 및 Unreal 에디터와 더욱 긴밀하게 통합되었습니다.

성능

성능

Rider의 시작 속도를 높이는 동시에 솔루션을 열고 작업을 시작하는 데 걸리는 시간을 줄이기 위해 몇 가지 사항을 변경했습니다.

  • Rider 설치 프로그램은 이제 실행 파일을 Windows Defender 제외 목록에 추가하여 시작 속도를 크게 높일 수 있습니다.
  • Rider는 백엔드가 초기화될 때까지 기다릴 필요 없이 즉시 솔루션 파일을 로드하고 프로젝트 트리를 빌드할 수 있습니다.
  • 더 깔끔한 UI를 위해 솔루션 탐색기에서 모든 로드 표시줄을 제거했습니다. 이제부터는 이러한 모든 로드 진행률 표시줄이 IDE 상태 표시줄에 렌더링됩니다.
  • 새로운 C# 파서가 도입되어, 가동 중에 기본 구문이 강조 표시되고 Rider 시작 후 솔루션이 완전히 로드되면 전체 환경이 제공됩니다.
  • 또한 Rider의 백엔드 성능도 몇 가지 개선했습니다. We’ve enabled server garbage collection (GC) to get better memory throughput for the backend process. 또한 Rider 백엔드 언어 서비스의 런타임을 .NET 6에서 최신 .NET 7 버전으로 업데이트했습니다. 마지막으로, 프로젝트에 상호 종속성이 없을 때 이제 디자인 타임 빌드를 병렬로 실행합니다. 이러한 변경 사항이 어우러진 결과, 여러 프로젝트가 포함된 솔루션을 로드하는 속도가 눈에 띄게 빨라집니다.

여기에서 Rider의 성능 향상에 대해 자세히 알아보세요.

WSL 2 지원

Rider는 이제 IDE의 원격 개발 기능을 통해 WSL 2(Linux 2용 Windows 하위 시스템)를 지원합니다. 즉, WSL 2 인스턴스에서 Rider를 사용하여 솔루션과 소스를 탐색하고 로컬에 저장된 것처럼 앱을 빌드, 디버그 및 실행할 수 있습니다.

Rider의 시작 화면에서 바로 간단한 설정 프로세스를 시작할 수 있습니다. UI가 원격 개발 기능을 통해 제공되므로 WSLg가 필요하지 않으며 로컬 RemoteDev 클라이언트가 자동으로 설치됩니다. 자세한 내용은 원격 개발 문서를 참조하세요.

UI/UX

도구 창 고정

그간 많이 요청되었던, 도구 창을 플로팅 에디터 탭에 고정하는 옵션이 이번에 드디어 도입되었습니다! 작업 공간을 더 간편하게 정렬하고 모니터 여러 대에서 Rider와 상호 작용할 수 있도록 도구 창을 메인 창 외부로 드래그하여 플로팅 에디터 탭에 고정하는 옵션을 구현했습니다.

Search Everywhere(전체 검색) 업데이트

Search Everywhere(전체 검색) 결과 목록의 알고리즘을 세밀하게 조정하여 이 동작의 예측 가능성이 증가하고 검색한 요소 선택의 정확성이 향상되었습니다. 이제 쿼리 입력을 시작하면 IDE에 표시된 첫 번째 검색 결과가 고정됩니다. 또한 더 많은 옵션을 찾은 후에도 결과가 다시 정렬되지 않습니다(이전 버전의 경우와 동일).

새 'Attach to process(프로세스에 연결)' 대화상자

특히 SSH를 통해 프로세스에 연결할 때 사용자 환경을 개선하기 위해 새로운 Attach to process(프로세스에 연결) 대화상자를 도입했습니다. 목표는 사용자가 올바른 프로세스를 더 빠르게 찾아 선택할 수 있도록 하고 선택된 디버거를 IDE가 기억하도록 하는 것입니다.

새로워진 붙여넣기 액션

새로워진 붙여넣기 액션

붙여넣기 액션의 동작을 재정비하여 편집 환경을 개선했습니다(⌘V/Ctrl+V ). 이제 코드 선택 없이 줄을 복사(⌘C/Ctrl+C)하거나 잘라내어(⌘X/Ctrl+X) 붙여넣기 액션을 수행하면 클립보드 내용이 현재 줄 위에 추가됩니다. 이전 버전에서는 캐럿에 추가되었습니다.

JSON을 클래스로 붙여넣기

JSON을 클래스로 붙여넣기

이제 Edit(편집) | Paste Special: JSON as Classes(특수 붙여넣기: JSON을 클래스로서 붙여넣기) 액션을 이용해 객체를 '스마트하게 붙여넣기'를 할 수 있습니다. 예를 들어 JSON을 복사하고 이 액션을 이용해 붙여넣는 경우 해당 JSON을 기반으로 C# 클래스가 자동 생성됩니다.

새로운 UI 조기 테스트 버전

Preferences/Settings(환경 설정/설정) | Appearance & Behavior(모양 및 동작) | New UI Preview(새로운 UI 테스트 버전)에서 IntelliJ 기반 IDE의 새 UI로 전환해 보세요. IDE의 시각적 복잡성을 줄이고 작업에 집중할 수 있도록 하기 위해 지속적으로 노력하고 있습니다.

기타

또한 Rider의 UX 및 UI를 더 적합하고 유용하게 만들기 위해 조금씩 꾸준하게 최적화를 구현하고 있습니다.

  • 현재 솔루션 또는 프로젝트와 관련된 항목만 표시되도록 Add(추가) 메뉴를 정리했습니다.
  • Open in Terminal(터미널에서 열기) 액션을 이제 Solution Explorer(솔루션 탐색기) 컨텍스트 메뉴에서 찾을 수 있습니다.
  • 메뉴 상단에 있는 File(파일) | New(새로 만들기)의 이름을 File(파일) | New Solution(새로운 솔루션)으로 바꾸어 실제 실행되는 동작을 더 정확하게 반영하도록 했습니다.
  • 솔루션 탐색기 내에서 솔루션 사이를 전환하기 위한 액션을 추가했습니다. 작업 중인 솔루션이 아닌 다른 솔루션을 마우스 오른쪽 버튼으로 클릭하면 컨텍스트 메뉴가 트리거됩니다. 여기에서 Open(열기)을 선택하여 전환하면 활성화된 솔루션을 동시에 닫을 수 있습니다.

.NET 7 SDK 지원

.NET 7 SDK 지원

Rider 2022.3은 다음과 같은 .NET 7 SDK 지원을 공식적으로 제공합니다.

  • 프로젝트 템플릿 업데이트.
  • NuGet 중앙 패키지 관리
  • Endpoints(엔드포인트) 도구 창에서 ASP.NET 최소 API 경로 그룹 지원.
  • 파일 로컬 타입, UTF-8 리터럴, ref 필드 및 scoped 키워드를 포함한 새로운 C# 11 기능.
  • 새 SDK를 대상으로 하는 프로젝트를 생성, 실행 및 디버그하는 기능.

C# 지원

C# 11

UTF-8 리터럴

UTF-8 리터럴

UTF-8 리터럴에 대한 기본 지원을 추가했습니다. 이제 코드 분석에서 System.Text.Encoding.UTF8.GetBytes() 메서드 또는 적절한 UTF8 심볼이 있는 바이트 배열 대신 리터럴에 u8 접미사를 사용할 것을 제안합니다. UTF-8 리터럴에 대한 일련의 컴파일러 경고 및 오류도 제공됩니다.

file 로컬 타입

file 로컬 타입에 대한 기본 지원에는 새 구문에 대한 이해, 타입에 대한 file 접근성 제어자, 컴파일러 경고와 오류 및 그와 함께 제공되는 빠른 수정(예: 중첩된 클래스에 대해 file 제어자가 지정되었을 때 Move class to outer scope(외부 범위로 클래스 이동) 제공)이 포함됩니다. 일반 타입을 file 타입으로 변환하는 유용한 컨텍스트 액션도 있습니다.

원시 문자열

원시 문자열

Rider는 이제 일반 문자열과 축자 문자열을 그에 해당하는 원시 문자열로 변환할 수 있습니다. 이는 또한 문자열에 적용되는 기존의 수많은 기능을 이제 원시 문자열에 사용할 수 있음을 의미합니다.

목록 패턴 제안

목록 패턴 제안

이 릴리스에서는 컬렉션의 해당 항목을 확인하기 위해 새로운 C# 11 목록 패턴 구문(후속 인덱서 액세스 표현식으로 기존 컬렉션 길이를 확인하는 대신)의 사용을 제안하는 기능을 도입했습니다.

static virtual 멤버

C# 11부터 인터페이스의 static 멤버에 대해 abstractvirtual 제어자를 사용할 수 있으며, 일반 코드에서 이 인터페이스로 타입 매개변수를 제한하여 이러한 멤버를 사용할 수 있습니다. 일반 다형성 멤버를 처리하는 방식과 동일하게 다형성 static 멤버를 처리하도록 Rider가 업데이트되었습니다.

  • 여백에 상속 표시.
  • 구현/상위 멤버로 이동.
  • 누락된 구현의 생성.
  • override 키워드 뒤의 코드 완성 제안에는 인터페이스 멤버도 포함되므로 이제 abstract 또는 virtual static 멤버를 쉽게 구현할 수 있습니다.
부호 없는 오른쪽 시프트(>>>) 연산자

부호 없는 오른쪽 시프트(>>>) 연산자

Rider는 이제 C# 개발자가 부호 있는 데이터 타입에 대해 부호 없는 오른쪽 시프트를 수행할 때 작성해야 하는 번거로운 코드 패턴을 인식하고 대신 C# 11에서 부호 없는 오른쪽 시프트(>>>) 연산자 사용을 제안합니다.

Span에 대한 패턴 일치

Span에 대한 패턴 일치

문자의 Span을 분석하는 경우, MemoryExtensions.SequenceEqual 메서드를 많이 사용하게 될 것입니다. C# 11에서는 이러한 종류의 검사에 빠른 방법을 도입했습니다. 이제 is 또는 switch 식을 사용하여 문자열 리터럴에 대해 문자의 Span을 간단히 패턴 일치시킬 수 있습니다.

Rider는 이제 많은 if 문 대신 is 또는 switch 식을 사용할 것을 제안합니다.

ref 필드 및 scoped 키워드

C#11부터 ref 구조체 내에서 ref 필드를 선언할 수 있습니다. Rider는 이 새로운 구문 규칙을 지원하고, 모든 컴파일러 오류와 경고를 제공하며, 코드 완성에 ref 키워드를 표시하고, 이러한 필드가 생성자에서 초기화되도록 허용합니다.

Rider는 또한 by-ref 또는 ref struct 인수와 로컬 변수에서 사용할 수 있는 새로운 scoped 키워드를 인식합니다. 지원 내용에는 새 구문의 올바른 구문 분석, 코드 완성의 scoped 키워드, 메서드 재정의 생성 시 scoped 키워드 보존 등이 포함됩니다. 또한 scoped 제어자의 호환성을 확인하고 재정의, 인터페이스 구현 및 대리자 변환에서 일치하지 않는 scoped 매개변수에 빠른 수정을 제공합니다.

C# 11 및 .NET 7에서 각 언어의 ref 안전 규칙이 변경되었습니다. 이러한 변경은 ref 필드의 도입으로 관리형 코드에서 ref 안전성을 제공하기 위해 by-refref struct 변수에 사용할 수 있는 작업에 적용됩니다. Rider는 변경 사항을 인식하고 C# 11 또는 .NET 7로 마이그레이션할 때 변경 사항을 수용하기 위해 새로운 scoped 키워드로 어노테이션을 추가하고 업데이트해야 하는 프로젝트 부분을 쉽게 찾을 수 있게 해줍니다.

언어 삽입

이 빌드는 여러 가지 언어 삽입 개선 사항을 제공합니다.

[StringSyntax](.NET 7의 경우) 및 [LanguageInjection](JetBrains.Annotations의 경우) 속성을 사용한 언어 삽입 지원과 더불어 // lang=<language_name> 언어 삽입 명령 주석에 대한 지원도 추가했습니다.

이제 모든 언어에 대해 보간된 문자열과 문자열 연결에서 언어 삽입이 가능합니다. 이전에는 SQL에만 가능했습니다. 단, 문자열 보간 또는 임의 표현식과의 연결을 사용할 때 구문 오류가 표시되지 않는다는 점에 유의하세요. C# 11 원시 문자열 내부의 언어 삽입도 지원됩니다.

들여쓰기와 실제 값을 구분하는 들여쓰기 가이드가 이제 원시 문자열에 표시됩니다.

일반 C# 업데이트

전역 가져오기 여백 표시

전역 가져오기 여백 표시

C# 및 Razor 파일의 묵시적 네임스페이스 가져오기에 대해 사용자에게 알림을 제공하는 새 여백 표시 아이콘이 있습니다.

해당 줄에서 Alt+Enter를 누르면 묵시적 가져오기의 전체 목록과 해당 global using 지시문이 있는 소스 파일에 관한 정보를 볼 수 있습니다. 가져온 특정 네임스페이스를 선택하면 Rider가 .csproj 프로젝트 파일의 <Using Include="Some.NameSpace" /> 태그 탐색을 포함하여 선언된 위치로 이동할 수 있습니다.

전역 가져오기 여백 표시

Rider는 또한 _Imports.razor에서 전역 가져오기를 제공하고 해당 가져오기 정의로 탐색할 수 있게 해줍니다.

머신러닝이 지원하는 C# 코드 완성 기능

머신러닝이 지원하는 C# 코드 완성 기능

개발 프로세스를 간소화하고 빠르게 진행할 수 있도록 C#의 코드 완성 옵션에 머신 러닝이 지원되는 요소 정렬 기능을 도입했습니다.

이 기능을 더 효과적으로 경험할 수 있도록 두 가지 옵션이 제공되며, Settings(설정)/Preferences(환경 설정) | Editor(에디터) | General(일반) | Code Completion(코드 완성) | Machine Learning-assisted Completion(머신러닝 지원 코드 완성)에서 활성화할 수 있습니다.

  • 코드 완성 팝업에 위치 변경 표시
  • 코드 완성 팝업에 가장 적절한 항목 표시
서식 문자열 완성

서식 문자열 완성

.NET 7에 Int128UInt128 숫자 타입이 추가되면서 코드 완성 서식 지정자 제안이 업데이트되었습니다.

또한 .NET 6의 DateOnlyTimeOnly 날짜/시간 타입에 누락되었던 지원과 함께 .NET 5에 도입된 Half 반정밀도 부동소수점 숫자 타입을 추가했습니다.

표현식에 대한 간단한 패턴

표현식에 대한 자명한 패턴

이따금 리팩터링 후 패턴 일치 표현식이 자명한 재귀 패턴으로 바뀔 수 있습니다. 이때 재귀 패턴 구문을 사용하는 것은 전혀 무의미할 수 있으므로 Rider는 원래 패턴 일치의 의미를 유지하면서 패턴을 더 간단한 표현식으로 다시 쓰는 액션을 제공합니다.

void 표현식에 대한 코드 완성 힌트

void 표현식에 대한 코드 완성 힌트

호출 후 입력할 때 의미가 거의 없는 제안을 보게 되는 경우가 가끔 있습니다. 이는 void 반환 메서드가 호출되었을 때 호출의 결과로 값이 생성되지 않는 경우에 발생할 수 있습니다. 일반적으로 이를 실현하려면 몇 가지 IDE 액션이 필요합니다(돌아가서 메서드 선언으로 이동하거나 호출을 마우스로 가리킴). 이번 릴리스에서는 이러한 유형의 void 반환 호출에 대한 void 힌트 항목을 도입하여 호출로 생성된 타입에 대해 즉각적인 피드백을 제공합니다. 이 void 항목을 수락하면 세미콜론이 누락된 경우 호출 후에 세미콜론이 추가됩니다.

웹 개발

Blazor

Blazor

Rider 2022.3에는 Blazor 서버 앱을 위한 Hot Reload가 도입되었습니다. 앱이 실행되는 동안 Blazor 서버 앱에서 소스 코드를 수정하면 Rider가 앱을 다시 시작하지 않고 실행 중인 앱에 이 변경 사항을 적용할지 여부를 묻습니다. 텍스트 에디터 상단에서 노란색 Sources are modified(소스가 수정되었습니다) 알림 표시줄을 찾아보세요. 변경 사항을 수락하면 앱이 즉시 업데이트되고 업데이트된 앱으로 계속 작업할 수 있습니다.

시작 화면

인터넷 정보 서비스(IIS)

커뮤니티의 많은 요청에 따라 IIS 서버에서 기존 ASP.NET 애플리케이션을 실행하고 디버그하기 위한 새로운 IIS Application 실행 구성을 추가했습니다. 또한 ASP.NET Core 애플리케이션용 launchSettings.json 파일의 IIS 명령어 이름에 대한 지원도 도입했습니다.

엔드포인트

엔드포인트

Endpoints(엔드포인트) 지원과 Endpoints Viewer(엔드포인트 뷰어)를 지속적으로 개선하고 있습니다. 뷰어가 이제 ASP.NET Core 7 최소 API 경로 그룹에 대한 엔드포인트를 올바르게 인식하고 수집합니다. 즉, 이미 사용 가능한 기능 외에도 MapGroup() API로 선언된 엔드포인트에서 스마트 코드 완성을 검색 및 탐색하고 사용할 수 있습니다.

.NET 사용자 암호

.NET 사용자 비밀

ASP.NET 프로젝트에 .NET User Secrets(.NET 사용자 비밀) 액션이 추가되었습니다.

JavaScript/TypeScript 웹 프로젝트

JavaScript/TypeScript 웹 프로젝트

Rider는 이제 솔루션(.sln)에서 참조하는 JavaScript 및 TypeScript 웹 프로젝트(.esproj)에 대한 npm 실행 구성을 자동으로 생성합니다.

JavaScript 및 TypeScript용 Code Vision

JavaScript 및 TypeScript용 Code Vision

이제 Code Vision 인레이 힌트가 JavaScript 및 TypeScript에도 제공됩니다. 이러한 힌트는 코드의 다양한 클래스, 메서드, 타입 별칭 및 인터페이스 사용 위치를 추적하는 데 도움이 됩니다.

CSS 지원

CSS 지원

IDE는 이제 구문 블록을 @supports 조건과 연결하는 @supports @규칙을 이해합니다. This build also includes support for viewport units, range media queries, container queries, @layer (Cascade layers), and color modification functions.

Angular 업데이트

Angular 업데이트

Angular 템플릿의 타입 좁히기 지원이 추가되어 더 정확한 타입 정보 및 향상된 코드 완성 제안이 제공됩니다.

또한 Rider는 개선된 검색 결과를 제공하기 위해 전체 검색 시 .angular 캐시 폴더를 제외합니다.

게임 개발

Unity 지원

Rider의 Unity 지원이 몇 가지 새로운 기능, 기존 기능의 개선 및 일부 수정 사항을 통해 또 한 번 크게 업데이트되었습니다.

Unity의 새로운 Input System 패키지에 대한 지원이 추가되었습니다. Rider는 메서드가 입력에 대한 이벤트 핸들러로 사용되는 경우를 인식하고 더 이상 사용되지 않은 것으로 표시하지 않습니다. Find Usages(사용 위치 찾기)는 이러한 메서드에서도 작동하여 코드 또는 .inputactions 파일에서 사용되는 위치를 보여줍니다.

런타임에 게임 리소스를 로드할 수 있다는 것은 매우 좋은 일이며, Rider는 이제 Resources.Load 메서드에서 올바른 경로를 사용하도록 도와줍니다. 사용자가 입력할 때 코드 완성을 표시하고 경고와 함께 알 수 없는 리소스를 강조 표시합니다.

Rider는 여러 릴리스에서 태그 이름 완성 및 확인을 제공했으며 버전 2022.3에는 GameObject.FindWithTag 메서드 그룹에 대한 새로운 지원이 추가되었습니다. 사용자가 입력하는 동안 코드 완성 기능을 제공하고 프로젝트에 존재하지 않는 태그를 사용하려고 하면 경고합니다.

Unity 프로젝트에서는 메타 파일을 파일 및 폴더와 동기화 상태로 유지하는 것이 매우 중요합니다. Rider 2022.3은 빈 폴더의 메타 파일을 소스 제어에 커밋하려고 하면 경고를 표시합니다. 더욱 유용한 점은 Unity 에디터가 열려 있는 경우 저장되지 않은 씬이나 애셋이 있으면 Rider가 경고를 표시하여 커밋할 때 변경 사항을 놓치지 않도록 도와줍니다.

그 외에도 작은 개선 사항과 수정 사항이 많이 있습니다. 매우 큰 프로젝트를 로드하는 데 걸리는 시간을 줄이고 읽기 전용 패키지 파일을 편집하려고 할 때 표시되는 알림을 추가했으며 Find Usages(사용 위치 찾기)를 개선하여 중첩된 프리팹 및 이벤트 핸들러 배열의 메서드에 사용할 수 있도록 했습니다.

DOTS 지원과 관련하여 Rider는 이제 IBaker 또는 IAspect를 구현하는 클래스를 사용되지 않는 것으로 표시하지 않아야 함을 인식합니다.

직렬화된 필드에 대한 명명 검사를 비활성화하고 일반 필드처럼 처리하도록 할 수 있으며 이제 온라인 문서에 대한 링크가 올바른 위치를 가리킵니다.

또한 Nintendo Switch에서 플레이어를 디버그하는 데 도움이 되는 수정 사항을 제공한 Unity에 감사드립니다.

Unreal Engine 지원

CoreRedirects로 이름 바꾸기

Rider는 Rename(이름 변경) 리팩터링을 통해 Unreal 클래스 또는 프로퍼티의 이름을 바꿀 때 CoreRedirects를 추가하는 옵션을 이미 제공합니다. 이제 다음에도 같은 내용이 적용됩니다.

  • UFUNCTION() 이름 바꾸기
  • USTRUCT() 이름 바꾸기
  • UENUM 이름 바꾸기

사용자가 Rename 리팩터링을 수행할 때 Rider는 이제 이러한 경우에 CoreRedirects 추가를 제안합니다.

사용자가 동의하면 해당 .ini 파일이 자동으로 업데이트됩니다.

이제 이름을 변경하여 실수로 게임이 작동하지 않을 가능성이 훨씬 낮아집니다!

Blueprint용 Code Vision 업데이트

Rider 2022.3에는 새로운 Blueprints 전용 Code Vision 메트릭이 도입되었습니다. 이제 BlueprintCallable 함수를 사용하는 Blueprints의 수를 빠르게 확인하고 Code Vision 컨텍스트 메뉴에서 모든 사용 위치 목록을 가져올 수 있습니다.

GUID 생성

GUID 생성 도구가 이제 Unreal Engine GUID 형식을 지원합니다. 신속하게 GUID를 생성해야 할 때마다 메뉴에서 Tools(도구) | Generate GUID(GUID 생성)...를 선택하면 기본 지정된 16진수 형식이 미리 선택됩니다.

자동 가져오기

완료 시 자동 가져오기 기능으로 많은 시간을 절약할 수 있습니다. 그러나 잘못된 #include 지시문이 추가되면 문제를 탐지하기가 까다로울 수 있습니다. 이 기능의 완성도를 높이고 자동 가져오기의 시스템 헤더에서 원치 않는 항목을 제안하지 않도록 하기 위해 많은 노력을 기울였습니다. 기본적으로, 시스템 헤더는 제안되지 않지만 원하는 경우 Settings/Preferences(설정/환경 설정) | Languages & Frameworks(언어 및 프레임워크) | C++ | Unreal Engine에서 활성화할 수 있습니다.

UnrealBuildTool 로그

UnrealBuildTool 로그 표시를 개선했습니다. 프로젝트 구성과 관련된 경고나 오류를 놓치지 않도록 이제 로그 패널에 타임스탬프가 포함되고 이전 UnrealBuildTool 실행의 로그가 유지됩니다.

기본 .uproject 지원

Unreal Engine 기반 프로젝트의 경우 Rider는 .sln.uproject 프로젝트에서 모두 작동합니다. JetBrains는 기본 .uproject 모델에 대한 지원을 지속적으로 개선하여 사용자가 더 정확하고 편안하게 작업할 수 있도록 노력하고 있습니다.

  • Rider 2022.3은 .project에 지정된 추가 소스 위치, 특히 AdditionalRootDirectoriesAdditionalPluginDirectories를 준수합니다.
  • 또한 게임 위치에 배치된 사용자 지정 프로그램을 지원하고 모든 프로그램의 프로젝트 파일을 올바르게 생성합니다.
  • Rider는 이제 플랫폼별 모듈에 대해 여러 .Build.cs 파일이 있는 모듈을 지원합니다.
  • 이제 .uproject 프로젝트 모델을 사용할 때 .uplugin.uproject 파일의 완성 및 검사가 지원됩니다.
  • 이제 .uproject 모델이 사용될 때마다 C++ 프로그램에 대해 실행 구성이 자동 생성됩니다.

Unreal 에디터에 연결

Unreal Engine 프로젝트에 대해 Attach to Unreal Editor(Unreal 에디터에 연결) 액션을 구현했습니다. 올바른 프로세스를 수동으로 검색할 필요 없이 Unreal Engine 프로세스에 빠르게 연결할 수 있습니다. 현재는 UnrealLink가 연결된 동일한 프로세스에만 연결할 수 있습니다. 즉, Unreal 에디터에서 실행되는 프로젝트는 Rider에서 작업 중인 프로젝트와 일치해야 합니다. 향후 릴리스에서 이 워크플로를 개선하기 위해 노력하고 있습니다.

ARM64 지원 조기 테스트 버전

ARM64 지원 조기 테스트 버전

Rider 2022.3은 이제 Windows 및 Linux ARM64에서 실행할 수 있습니다. .NET 애플리케이션 실행 및 디버그와 유닛 테스트 실행을 포함하여 모든 기본 개발 워크플로가 지원됩니다. 그러나 Rider가 ARM64 프로세서와 원활하게 작동하도록 하기 위한 작업과 테스트가 진행되는 동안 다음과 같은 제한 사항이 있음을 유념하시기 바랍니다.

  • 현재 Windows ARM64에서 Unreal Engine 개발을 지원할 계획은 없습니다. Epic Games는 이 아키텍처에 대해 Unreal Engine을 지원하지 않기 때문입니다.
  • Linux ARM64용 Unreal Engine 지원은 아직 개발 중입니다.
  • Windows ARM64에서 Visual C++ 프로젝트에 대한 기본 지원이 제공되지만 기본적으로 빌드된 애플리케이션의 디버그는 지원되지지 않습니다. 이 문제의 진행 상황은 여기에서 확인할 수 있습니다.

플러그인

macOS 및 Linux에서 메모리 프로파일링 지원 dotUltimate

Windows뿐 아니라 Linux 및 macOS에서도 JetBrains Rider에 dotMemory를 사용할 수 있습니다. Run(실행) 위젯과 Run(실행) | Switch profiler configuration(프로파일러 구성 전환) 메뉴에서 두 가지 새로운 프로파일링 모드인 Memory (sampled allocations)(메모리(샘플 할당))Memory (full allocations)(메모리(전체 할당))를 사용할 수 있습니다. dotMemory의 Help(도움말)에서 차이점을 자세히 알아볼 수 있습니다.

Run(실행) 메뉴의 실행 프로세스에 프로파일러를 연결하고 실시간으로 Timeline Graph(타임라인 그래프)를 확인할 수 있습니다. dotMemory Standalone에서와 마찬가지로, Memory Allocations(메모리 할당) 뷰를 여는 간격을 선택하세요. 이 뷰에서 할당된 객체 및 특정 기간의 할당 호출 트리를 분석할 수 있습니다.

아쉽게도 이 버전에서는 아직 메모리 스냅샷을 수집할 수 없습니다.

Dynamic Program Analysis

Dynamic Program Analysis

Dynamic Program Analysis(DPA)에는 다음과 같은 데이터베이스 사용과 관련된 다양한 문제를 찾을 수 있는 새로운 검사 기능이 있습니다.

  • 명령어의 긴 실행 시간
  • 너무 많은 데이터베이스 연결
  • 너무 많이 동시 실행되는 데이터베이스 명령어
  • 너무 많은 기록을 반환하는 명령어

이 새로운 검사는 Entity Framework Core 및 .NET Data Provider for SQL Server를 사용하는 모든 애플리케이션에서 사용할 수 있습니다.

dotCover dotUltimate

Dynamic Program Analysis

편리해진 테스트 탐색

코드 에디터와 Unit Test Coverage(유닛 테스트 커버리지) 창 모두에서 dotCover 컨텍스트 메뉴에 Show Covering Tests(포함 테스트 표시) 액션을 추가했습니다. 이 액션은 포함된 모든 테스트를 동일한 위치에 포함하는 팝업을 표시합니다. 이 팝업을 통해 새 커버리지 세션을 생성할 수도 있습니다.

빨라진 섀도 복사

이제 dotCover는 JetBrains Rider에서 지속적인 테스트에 필요한 어셈블리와 심볼 파일만 복사합니다. 더 이상 전체 작업 디렉터리를 복사할 필요가 없기 때문에 특히 대규모 프로젝트에서 dotCover의 전반적인 성능이 향상됩니다. 필요한 경우 dotCover 설정에서 섀도 복사본 파일 필터를 조정할 수 있습니다.

향상된 Unity 지원

이전에는 Unity 테스트의 커버리지를 분석하려면 커버리지 지원을 활성화한 상태에서 Unity를 다시 시작해야 했습니다. 이번 릴리스부터 Unity를 더 이상 다시 시작할 필요가 없으며 테스트 커버리지가 기본적으로 지원됩니다.

NuGet 지원

Central Package Management(Directory.Packages.props 파일이라고도 함)는 .NET 기술 스택의 진화하는 기능으로, 개선이 이루어짐에 따라 솔루션 관리가 더 쉬워집니다. Rider에 CPM이 추가됨에 따라 개발자는 종속 요소를 더 수월하게 통제할 수 있습니다.

이 팁, 주의 사항과 더불어 Central Package Management에 대한 모든 내용을 블로그 게시물에서 알아볼 수 있습니다.

솔루션에서 오픈 소스 NuGet 패키지를 사용할 때마다 프로젝트가 보안 취약성에 노출될 위험이 있습니다. 이러한 위험을 완화하기 위해 Rider에 취약한 종속성 탐지 기능을 도입하기로 했습니다. IDE는 알림 팝업을 통해 NuGet 패키지 사용과 관련된 취약한 종속성을 알려줍니다. 해당 종속성은 Problems(문제) 뷰의 Security(보안) 섹션에서 자세히 확인할 수 있습니다. 솔루션에 포함된 패키지 관련 취약한 종속성에 대한 정보는 NuGet Package Management(NuGet 패키지 관리) 창에서 특정 패키지를 선택해서도 찾을 수 있습니다.

또한 NuGet 도구 창의 Packages(패키지) 목록 내에서 스크롤 환경을 개선했습니다.

F# 지원

Rider 2022.3은 F# 7을 지원하고, 사소한 문제에 대한 다양한 수정 사항을 제공하며, 일부 삶의 질 개선을 추가합니다.

XML 문서 지원 개선

XML 문서 지원 개선

주석 안에 <을 입력하면 이제 문서 템플릿이 추가됩니다. 또한 구문 강조 표시와 코드 완성 기능으로 문서 주석 편집이 훨씬 쉬워집니다.

record에 대한 코드 완성

record에 대한 코드 완성

새로운 코드 완성 규칙의 도입으로 record 식의 입력이 단순화됩니다. 구체적으로, 추론된 record 타입의 필드를 강조하고, 이미 사용된 필드를 숨기고, 이전에 제안이 표시되지 않았던 다양한 경우를 수정했습니다.

시그니처 파일

시그니처 파일

새로운 빠른 수정, Update parameter name(매개변수 이름 업데이트)Update record field(record 필드 업데이트)가 추가되면서 시그니처 파일이 업데이트되어 코드를 변경할 때 이 파일을 더 쉽게 사용할 수 있습니다. A huge thanks goes to Florian Verdonck for implementing them!

이는 F# 지원 개선 사항의 주요 내용으로, You can find the full list of F# features included in the 2022.3 release here.

데이터베이스 지원

데이터베이스 작업을 위한 Rider 2022.3의 새로운 기능에 대한 몇 가지 주요 사항을 소개합니다.

  • 빠른 필터 – 빠른 검색을 사용할 때 결과를 필터링하고 일치하지 않는 객체를 숨길 수 있습니다.
  • 패턴 기반 스키마 필터링 – 이제 정규 표현식 패턴을 기반으로 조사할 데이터베이스 또는 스키마를 선택할 수 있습니다.
  • 날짜/시간 필드 서식 – 날짜 및 시간 유형의 필드가 데이터 에디터에 표시되는 방식을 사용자 지정할 수 있습니다.
  • Modify(수정)에서 다중 편집 – 이제 여러 객체를 한 번에 편집할 수 있습니다.

자세히 알아보기: DataGrip 2022.3의 새로운 기능

기타

IL 뷰어

IL 뷰어

Rider의 IL Viewer(IL 뷰어) 도구 창에서 이제 코드를 다양한 수준의 C# 언어 구조로 디컴파일할 수 있습니다. 두 가지 C# 수준을 사용할 수 있습니다. 첫 번째 높은 수준에서는 최신 언어 기능을 사용하여 특정 구문 구조를 단순화하고, 두 번째 낮은 수준에서는 이러한 구문 구조를 알고 싶은 경우에 사용할 수 있습니다.

코드 강조 표시

코드 강조 표시

Rider 2022.3의 코드 강조 표시 및 구불구불한 선이 재정비되었습니다. 내부 로직의 차이로 인해 Rider는 Microsoft Roslyn의 코드 스타일 분석기와 충돌하여 강조 표시를 중복 표시하거나, 다른 지점에 동일한 강조 표시를 하거나 , 구불구불한 선을 이중으로 만들었습니다. 이러한 경우 로직 차이가 이제 대부분 해결되었으며 드문 예외적 사례에서 충돌을 해결하는 방법에 대한 명확한 제안과 함께 오류가 발생합니다.

또한 Rider는 이제 Roslyn 분석기에서 생성된 검사에 대한 Quick Documentation<(빠른 문서) 툴팁에 Roslyn Analyzer ID(Roslyn 분석기 ID)URL Reference(URL 참조)를 표시합니다.

C++ 서식 지정

C++ 서식 지정

Rider의 서식 지정 도구 엔진을 사용하는 대신 clang 형식 바이너리를 직접 실행하는 옵션을 구현하여 업계 표준 서식 지정 도구와의 완벽한 호환성을 확보하는 동시에 더 나은 성능과 더 광범위한 서식 지정 옵션이 보장됩니다. Settings(설정) | Editor(에디터) | Code Style(코드 스타일) | C++로 이동한 다음 Clang-format(Clang-format 형식) 옵션을 선택하여 번들 및 외부 clang 형식 옵션 사이를 전환할 수 있습니다.

디버거

Allow property evaluations and other implicit function calls(프로퍼티 평가와 다른 묵시적 함수 호출을 허용) 옵션을 비활성화하여 디버거의 성능을 크게 개선했습니다. 이제 .NET, .NET Framework 및 .NET Core 프로젝트에 대해 부수 효과가 없는 모드에서 더 많은 표현식을 평가할 수 있습니다.

유닛 테스트

유닛 테스트 탐색기 트리를 '게으른' 상태로 만들어 작동이 빨라지고 메모리 부담을 덜어줍니다. 이전에는 모든 노드가 유닛 테스트 트리와 함께 자동으로 생성되어 탐색할 때 지연이 발생하고 너무 많은 메모리를 소비했습니다. 이제 트리의 확장된 부분에 속하는 노드만 생성되어 성능이 눈에 띄게 향상됩니다.

MSBuild

  • .NET Core 17+ MSBuild에 대한 기본 서버 가비지 컬렉션을 활성화했습니다.
  • Rider는 이제 MSBuild의 32비트 버전에 메모리가 부족한 경우를 탐지하고 Visual Studio에서 64비트 버전을 사용하도록 전환할 수 있습니다.

성능

Solution Wide Analysis(솔루션 전체 분석)Find usages(사용 위치 찾기) 명령어가 리팩터링되었습니다. 내부 테스트에 따르면 성능이 이전보다 평균 20~40% 더 빨라졌습니다.