Rider의 새로운 기능

Rider 2020.3는 오랫동안 기다려온 .NET 5, C# 9 및 F# 5의 새로운 기능을 지원합니다. 또한 디버거의 Immediate(즉시 실행) 창 및 Private Source Link(비공개 소스 링크), Project Dependency Diagrams(프로젝트 종속성 다이어그램), Push-to-Hint(누른 상태에서만 힌트 표시) 및 Avalonia UI 프레임워크의 언어 지원과 같은 새로운 기능이 도입되었습니다. Unity 개발자는 Burst 분석 및 셰이더 지원 업데이트를 확인할 수 있습니다. 마지막으로 탭을 드래그 앤 드롭하여 원하는 방식으로 에디터를 분할할 수 있습니다!

.NET 5 및 C# 지원

.NET 5를 지원하는 첫 번째 Rider 릴리스를 소개합니다! 이번 지원에는 Source Generators(소스 생성기), C#9 기능, 새로운 NuGet 기능 및 새로운 대상 프레임 워크(net5.0-windowsnet5.0)가 포함됩니다. 또한 NET 5 애플리케이션을 생성, 빌드, 실행, 디버그, 프로파일링 및 다룰 수 있습니다.

Source Generators(소스 생성기)는 C# 컴파일러의 기능 중 가장 많이 언급되는 기능입니다. 컴파일 과정에서 바로 새 코드를 작성하고 즉시 사용 가능한 이 기능은 매우 흥미로우며 다양한 상황에서 유용하게 쓰일 수 있습니다.

그렇다면 Rider는 어떤 지원을 제공할까요? Rider의 가장 우수한 기능을 살려 리팩터링 중 생성된 파일을 고려하고, 코드 에디터 기능을 제공하며 생성된 코드를 탐색하는 데 도움을 줄 수 있습니다.

이제 부분적 메서드에서 out 매개변수, void가 아닌 반환 유형 및 모든 유형의 접근이 허용되므로 Source Generators(소스 생성기)와 함께 더욱 유용하게 활용할 수 있습니다. Source Generators(소스 생성기)는 부분 메서드의 정의적 선언을 사용하여 생성된 코드 동작을 사용자 정의할 수 있습니다.

다른 멋진 기능으로는 init 전용 프로퍼티가 있습니다. 이 프로퍼티는 객체 초기화 중에만 설정 가능합니다. 드디어 프로퍼티를 가변 상태로 노출하지 않고도 객체 이니셜라이저를 사용할 수 있습니다!

Rider는 init 전용 프로퍼티를 인식하고, 코드를 완성할 때, 코드를 생성하는 완성 기능을 수행할 때, 프로퍼티가 변경되었는지 여부를 분석할 때, 생각이 바뀌면 변경할 수 있도록 빠른 수정을 제공할 때 이를 고려합니다.

init 적용을 위한 최적의 위치는 새로운 record 유형입니다. 이 유형은 불변 상태를 획득하는 데 유용한 값 의미를 갖는 참조 유형이지만 이제 전체 객체에 적용될 수 있습니다. Rider는 선호하는 선언 스타일 선택을 위한 빠른 수정부터 기본 코드 완성 기능까지 지원하며 해당 언어 기능을 개선하고 있습니다.

위치 지정 레코드에는 컴파일러에서 생성된 Deconstruct() 메서드가 포함됩니다. Rider는 이러한 객체의 모든 구조 분해 기능을 지원합니다. 변수 삽입 시 표시되는 팝업창에 주목하세요. 단일 변수 또는 구조 분해 선언 중 선택할 수 있는 옵션을 제공합니다. 함수가 레코드 객체 속성에 액세스할 때 동일한 선택 옵션이 제공됩니다.

조금 더 세부적인 기능을 살펴보겠습니다. 이제 지역 함수에 속성이 포함될 수 있습니다(매개변수 및 유형 매개변수도 마찬가지입니다). Rider의 빠른 수정에서 이 기능을 지원하며 ! 또는 ?를 눌러 각각 [NotNull] 또는 [CanBeNull]로 메서드 어노테이션을 추가하는 멋진 기능도 있습니다.

유용한 다른 C# 9 추가 기능은 최상위 프로그램을 작성하는 것입니다. 이제 프로그램 클래스와 씨름할 필요는 없습니다. using 지시문 바로 뒤에 진입점 코드를 작성할 수 있습니다. 최상위 구문 작업 시에도 사용 가능한 일부 지원이 있습니다. 최상위 구문 관련 규칙은 두 가지입니다. 최상위 구문은 모든 유형 또는 네임스페이스 앞에 위치해야 하며, 프로젝트의 단일 파일에만 최상위 코드가 포함될 수 있습니다. 코드 재배열 및 복사 붙여넣기 작업 시 두 가지 규칙 모두 쉽게 위배됩니다. Rider는 빠른 수정을 제공하므로 최상위 코드를 상위 또는 기타 파일로 이동하여 문제를 해결할 수 있습니다.

최상위 코드 역시 코드라는 점을 고려할 때 리팩터링도 지원됩니다. 바로 Extract local variable(지역 변수 추출)Extract method(메서드 추출) 리팩터링입니다.

더 자세한 내용은 ReSharper 및 Rider의 C# 9 최상위 구문를 확인해 주세요.

C# 9에서 대상 유형의 새 표현식을 활용하면 사용 위치 컨텍스트에서 추론될 경우 new라는 키워드 뒤의 유형을 생략할 수 있습니다. Rider는 이 기능에 대한 완벽한 지원을 제공하며, 생성자의 Find Usages(사용 위치 검색) 및 선호하는 구문 스타일 구성 등의 기능이 이에 포함됩니다. 선호하는 구문 스타일 구성 기능을 통해 생성된 유형이 명백할 경우 new() 구문을 사용할 수 있으며, 다른 경우에는 명시적 유형 지정을 적용할 수 있습니다.

또한 코드의 모든 new() 구문을 통제할 수 없는 경우엔 Rider의 새로운 유형 이름 힌트가 유용합니다.

반환 유형 공변성을 활용하면 기본 클래스 메서드에서처럼 멤버 재정의 시 동일한 유형을 반환하지 않아도 됩니다. 이제 더욱 특정한 유형을 반환하는 해결 방법을 구현할 필요는 없습니다.

신규 언어 버전에서 패턴 일치는 지속적으로 발전하고 있습니다. 이제 일치하는 표현식으로 관계형 패턴(<, > 등) 및 논리적 패턴(not, or, and)을 사용할 수 있으므로 기존 switch 구문의 많은 중복 문제가 제거됩니다. Rider는 패턴을 분석하고 원하는 스타일로 다시 작성하는 데 도움을 줍니다.

마지막으로 람다 메서드의 매개변수 무시 기능이 도입되었을 때에는 빠른 수정을 추가하면 좋을 것이라 생각했습니다.

언어의 주요한 개선 사항은 여기까지입니다. Rider 2020.3 버전에서는 언어에 대한 여러 개선 사항도 추가되었습니다. 대상 유형 조건식, 정적 람다, foreach의 확장 GetEnumerator 메서드, 함수 포인터 유형 및 네이티브 정수 유형 등이 있습니다.

디버거

Immediate(즉시 실행) 창

코딩 지원을 포함한 새로운 Immediate(즉시 실행) 창을 소개합니다. 이 실행 창을 통해 프로그램이 중단점에서 중지될 경우 합성 변수를 생성하고, 디버거를 다시 시작하지 않고도 코드를 시험할 수 있습니다.

디버그 세션을 시작할 때 디버그 창 오른쪽 하단, watch 변수 아래에 Immediate(즉시 실행) 창이 표시됩니다. 이 창은 애플리케이션이 일시 중지 상태에 있을 경우에만 입력을 받아들입니다. 일반적으로 중단점에 도달한 경우입니다.

현재 지원되는 전체 코드 완성 기능을 사용하여 유효한 C # 코드를 입력 할 수 있습니다.

새로운 합성 변수를 정의하세요. Rider는 합성 변수 컬렉션의 변수 창에서 해당 값을 추적합니다. 다른 변수와 마찬가지로 합성 변수도 검사, 고정 및 수정이 가능합니다.

사용 가능한 객체를 인수로 사용하여 지원되는 객체의 모든 멤버 함수 혹은 현재 컨텍스트에서 지원되는 모든 정적 함수를 호출할 수도 있습니다. 함수의 실행 경로에 있는 중단점은 일반 호출처럼 실행을 중단합니다. 이러한 호출은 Frames 패널에서 탐색 가능한 함수 평가로 시작하는 스택의 일부를 자체적으로 포함합니다.

변수에 구문을 할당할 필요 없이 구문을 실행하세요. Rider는 $result 자리표시자의 실행 구문에서 마지막으로 반환된 값을 기록합니다. Immediate(즉시 실행) 창은 모든 구문의 기록을 추적합니다.

더 자세한 내용은 Immediate(즉시 실행) 창 – Rider에서 디버그 중 코드 처리하기에서 확인해 주세요.

새로운 액션

디버그가 시작되지 않은 경우에도 새로운 디버거 액션을 사용할 수 있습니다.

이제 디버그를 시작하고 관심 있는 코드의 메서드나 위치로 몇 단계에 걸쳐 이동할 필요가 없습니다. Start Debugging and Run to Here(디버그를 시작하고 여기로 실행) 또는 Start Debugging and Run to Here Non-Stop(디버그를 시작하고 중단 없이 여기로 실행) 액션을 사용하면 Rider에서 중단점을 건너뛰고 해당 위치로 이동합니다.

애플리케이션 디버그를 시작하고 처음부터 실행을 바로 중지하려면 애플리케이션 진입점에 도달한 즉시 Start Debugging and Step Over(디버깅 시작 및 스텝오버) 또는 Start Debugging and Step Into(디버깅 시작 및 스텝인투) 액션을 사용하세요.

이 액션은 메인 메뉴의 Run(실행) | Debugging Actions(디버그 액션)에서 찾을 수 있습니다.

상기 언급된 액션은 .NET 프로젝트 구성/.NET 정적 메서드에만 지원됩니다.

Private Source Link(비공개 소스 링크)

“Private Source Link(비공개 소스 링크)”라는 용어가 익숙한 모든 사용자에게 좋은 소식이 있습니다. 이제 Rider 2020.3은 디버거와 임베디드 디컴파일러 모두에서 비공개 소스 서버를 완벽하게 지원합니다. Rider는 GitHub, GitHub Enterprise, BitBucket 및 Azure DevOps(구 VSTS)에 위치한 소스를 지원합니다.

Rider는 향후 간편한 액세스를 위해 인증 자격 증명 정보를 저장합니다.

기타 디버거 업데이트

  • outref 매개변수를 가진 또는 매개변수 목록에서 out 변수를 선언하는 메서드의 평가를 구현했습니다.
  • IEnumerable 시퀀스의 열거형 속도가 대폭 개선되었습니다.
  • 긴 프레젠테이션의 객체에서 ‘View(뷰)’ 링크가 적절히 표시됩니다.
  • 긴 문자열의 경우 값을 복사할 때 더 이상 잘리지 않으며 평가가 최적화되었습니다.

프로젝트 종속성 다이어그램

새로운 아키텍처 도구는 솔루션에서 프로젝트 종속성을 시각화하고 아키텍처를 탐색하는 데 유용합니다.

다이어그램 탐색

프로젝트 종속성 다이어그램은 Tools(도구) | Architecture(아키텍처) | Show Project Diagram(프로젝트 다이어그램 표시) 또는 솔루션 탐색기의 컨텍스트 메뉴에서 열 수 있습니다. 해당 다이어그램은 솔루션 구조를 따르고 솔루션의 모든 최상위 항목을 표시하는 것으로 시작합니다. 표시할 프로젝트 또는 솔루션 폴더 선택, 크기 변경, 그리드 활성화(필요한 경우 그리드 스냅 옵션) 및 메모 추가로 특정 프로젝트에 어노테이션을 추가할 수 있습니다.

탐색

Ctrl+F(Windows), Cmd+F(macOS)를 사용하여 집중할 프로젝트를 찾을 수 있습니다.
Show Neighbors of Selected Nodes(선택한 노드의 인접 항목 표시) 툴바 버튼은 프로젝트 종속성 다이어그램을 선택한 노드, 직접 종속성 및 프로젝트에 종속된 프로젝트로 필터링합니다.

대규모 프로젝트 종속성 다이어그램의 경우 File Structure(파일 구조) 도구 창(View(보기) | Tool Windows(도구 창) | Structure(구조))을 열고 상위 개요를 사용하여 이동할 수 있습니다.

프로젝트 간 결합 분석

툴바에서 Enable Coupling Analysis(결합 분석 활성화) 아이콘을 클릭하여 다이어그램 분석 및 업데이트를 할 수 있습니다. 링크의 두께, 색상 및 스타일은 프로젝트 간의 결합이 얼마나 긴밀한지에 따라 다를 수 있습니다. 링크를 마우스로 가리키면 Rider에서 정확한 사용 횟수가 포함된 툴팁을 표시합니다. 링크를 클릭하면 종속 코드와 관련한 세부 정보가 수집되어 별도의 도구 창에 표시됩니다.

또한 프로젝트 종속성 다이어그램에서 Show Transitive Dependencies(이행적 종속성 표시)를 사용할 수도 있습니다. 이 기능은 직접 및 간접 프로젝트 종속성을 모두 렌더링합니다.

스냅샷 저장 및 비교

툴바에서 프로젝트 종속성 다이어그램의 스냅샷을 저장하고 현재 솔루션과 비교할 수 있습니다. Tools(도구) | Architecture(아키텍처) | Compare With Saved(저장된 항목과 비교)... 메뉴를 사용해 이전에 저장된 스냅샷을 로드하고 검사하세요. Rider는 다이어그램 간 차이점을 강조 표시합니다.

더 자세한 내용은 Rider 2020.3에서 지원되는 프로젝트 종속성 다이어그램에서 확인해 보세요.

다이어그램 내보내기

툴바에서 다이어그램을 이미지로 내보내고 문서에 포함할 수 있습니다.

게임 개발

Unity

Rider 2020.3은 Burst 분석, 셰이더 지원 및 유닛 테스트 관련 업데이트와 몇 가지 유용한 수정 사항과 함께 Unity 지원을 위한 또 다른 훌륭한 릴리스를 제공합니다.

Unity의 [MenuItem] 속성으로 표시된 메서드 옆의 아이콘을 클릭하면 Rider는 Unity가 IDE에서 바로 해당 메서드를 호출하도록 지시합니다.

Rider의 스마트한 셰이더 지원은 코드 분석 시 shader_feature 및 target 등 pragma의 정의 심볼을 자동으로 사용하도록 업그레이드되었습니다. 상태 표시줄의 새로운 컨텍스트 표시기는 포함된 위치에서 정의된 심볼을 기반으로 셰이더를 분석합니다.

Burst 컨텍스트 분석은 새로운 Code Vision 표시기 및 잘못된 SharedStatic 사용 위치 경고 기능을 통해 개선되었습니다. 또한 Alt+Enter 메뉴를 사용하여 [BurstDiscard] 속성을 빠르게 추가할 수 있습니다.

새로운 컨텍스트 작업을 활용하면 업데이트와 같이 성능이 중요한 메서드 분석을 보다 잘 제어할 수 있습니다. 이제 Rider에서 메서드를 자주 호출되는 메서드로 처리하지 않도록 요청하거나 비용이 높은 메서드 강조 표시를 중단하도록 요청할 수 있습니다. 또는 임의의 메서드에서 새로운 성능 컨텍스트를 시작할 수도 있습니다.

유닛 테스트에도 신규 업데이트가 몇 가지 추가되었습니다. [Explicit] 속성 및 매개변수화된 테스트 기능 등이 지원됩니다. 또한 단일 테스트 실행 시 편집 및 재생 모드의 테스트를 모두 실행할 수 있습니다.

Unity 로그 뷰어 도구 창에 몇 가지 유용한 UI 개선 사항이 추가되었습니다. 특히 마지막으로 게임을 플레이 모드로 전환한 시간 또는 게임의 AppDomain이 마지막으로 다시 로드된 시간을 기준으로 필터링하는 기능이 있습니다.

Unity 에디터에 연결되지 않은 경우 무한으로 표시되는 “새로고침 솔루션” 메시지를 수정하고 중복 이벤트 메시지를 제거하는 새로운 빠른 수정 등의 여러 이슈도 수정되었습니다. 또한 플레이어 프로젝트에 대한 잘못된 C# 언어 제안도 해결했습니다. 자세한 내용은 변경 로그에서 확인하세요.

Unreal Engine용 Rider 조기 테스트 버전

Unreal Engine용 Rider는 아직 공개 테스트 버전 단계에 있으며 2021년 Rider의 일부로 출시 될 예정입니다. 공식 릴리스 전까지 테스트 버전을 무료로 체험해 보실 수 있습니다.

Unreal Engine용 Rider는 UnrealHeaderTool과 완벽한 통합을 제공하여 다양한 Unreal Engine 특유의 코드 문제를 에디터에서 바로 파악할 수 있도록 지원합니다. Unreal Engine 프로젝트 작업 시 편집 중인 파일에서 UnrealHeaderTool을 자동으로 실행하고 다른 검사와 마찬가지로 오류나 경고를 표시합니다.

UnrealHeaderTool 통합 적용 사례 시청하기

이제 HLSL 셰이더 파일에서 제어 흐름 분석의 모든 기능이 지원됩니다. 이 기능은 도달할 수 없는 코드, 초기화되지 않은 변수, 중복 제어 흐름 이동 및 조건부 브랜치 등을 경고합니다. 메인 Rider의 경우 2020.3 버전에서 동일한 분석 기능을 Unity 셰이더용으로 사용할 수 있습니다.

Unreal Log에 필터가 추가되어 Unreal Engine용 Rider에서 Verbosity(중복) 및 Category(카테고리) 필터링을 지원하며 타임스탬프를 표시하거나 숨김 처리할 수 있습니다. 또한 Unreal Log 패널에 메시지가 너무 많을 경우 UI 멈춤 현상이 발생하는 이슈가 수정되었습니다.

UnrealLink/RiderLink 플러그인을 통해 JetBrains Rider와 Epic Games Unreal Editor 간 고급 통합이 가능합니다. 이 플러그인은 JetBrains Marketplace에서 호스팅되며 제품 빌드와는 별도로 업데이트할 수 있습니다.

F# 지원

F# 5 기능

새로운 문자열 보간 구문에 대한 지원을 선보입니다. 이제 $ 심볼을 문자열에 표시하여 보간된 문자열로 처리하고, 문자열 리터럴 내부에 자리표시자를 추가할 수 있습니다. 자리표시자용 “입력된 보간” 구문(%s%d)도 지원됩니다.

이번 릴리스에는 nameof 키워드 지원도 추가되어 F#의 심볼 대부분을 이름으로 변환할 수 있습니다.

마지막으로 open type 선언도 지원됩니다. open type 선언을 활용하면 모든 유형을 “열고” 유형 내부에 저장된 정적 콘텐츠를 가져올 수 있습니다.

기타 기능 및 개선 사항

이제 빠른 수정 및 컨텍스트 액션을 사용하여 유형 및 인터페이스 구현에서 누락된 재정의를 생성할 수 있습니다. 아이디어와 초기 구현에 도움을 주신 Matt에게 감사를 전합니다!

코드 가독성 개선을 위한 구문 강조 표시 툴팁이 새롭게 추가되었습니다. 멋지게 구현하는 데 도움을 주신 Saul에게도 감사를 전합니다.

let 바인딩 유형 어노테이션을 위한 새로운 컨텍스트 액션도 있습니다. Matt에게 다시 한 번 특별한 감사를 전합니다.

ReSharper 백엔드에서 제공하는 분석기의 심각도를 구성하는 기능도 추가되었습니다. 아직 대부분의 경고/오류 표시는 FCS에 의해 생성됩니다.

새로운 분석기 및 빠른 수정:

  • 람다를 간소화하거나 기본 제공되는 함수 분석기로 대체할 수 있습니다.
  • Redundant applications(중복 애플리케이션) 분석기(예: 무시할 항목이 없는 경우 중복된 무시 호출 제거)
  • 코드 스타일을 개선하는 Redundant patterns(중복 패턴) 분석기.
  • 네임스페이스를 모듈로 변환하는 빠른 수정.

입력 지원:

  • 메서드 호출에서 Enter 동작 개선.
  • 새로운 “Surround with Quotes(따옴표로 둘러싸기)” 지원.

이제 모듈/유형 이름과 일치하도록 파일 이름을 변경하는 액션이 지원됩니다.

디버거는 비동기 워크플로에서 지역 변수를 더 잘 추적합니다.

UI/UX 개선 사항

새로운 시작 화면

시작 화면이 더욱 선명하고 현대적으로 개편되었습니다. 기능은 여전히 동일하지만 훨씬 정돈된 모습입니다. 여전히 프로젝트를 관리하고, 튜토리얼을 시작하여 Rider와 관련한 새로운 내용을 학습하고, 새 솔루션을 생성하고, 기존 솔루션을 열거나 VCS 솔루션을 가져올 수 있습니다.

Solution Explorer(솔루션 탐색기)에서 검색

“진정한” 검색이 Solution Explorer(솔루션 탐색기) 뷰에 추가되었습니다! 이제 접힌 노드에서도 파일, 폴더, 프로젝트, 참조, 분석기, 가져오기 및 패키지를 포함한 솔루션 트리의 모든 노드를 탐색하고 모든 검색 쿼리의 사용 위치를 알려줍니다. 키보드 단축키 또는 툴바의 아이콘을 사용하여 하나씩 살펴볼 수 있습니다. 검색 필드를 열려면 Ctrl+F 단축키 또는 툴바의 돋보기 아이콘을 사용하세요.

탭을 드래그 앤 드롭

프로젝트에서 작업하는 동안 여러 탭을 열려는 경우, 이제 파일 탭을 드래그 앤 드롭하여 에디터를 가로 또는 세로로 분할할 수 있습니다.

오른쪽 분할에서 열기

Open in Right Split(오른쪽 분할에서 열기) 액션(View(보기) | Open in Right Split(오른쪽 분할에서 열기) 또는 Shift+Enter)이 도입되어 파일을 열 때 에디터를 수직으로 분할합니다. 이 액션은 Explore(탐색) 뷰 또는 파일이 선택된 경우 Recent Files(최근 파일), Search Everywhere(전체 검색), Navbar와 같은 탐색 팝업에서 호출하세요.

고정된 탭

고정된 탭에 새로운 아이콘이 추가되었습니다. 그 아이콘을 클릭하면 파일 고정이 해제됩니다. 고정되거나 고정 해제된 다른 파일 위로 탭을 드래그 앤 드롭하여 고정 및 고정 해제할 수도 있습니다. 사용자가 많은 탭을 열어 놓는 경향이 있는 경우 고정된 모든 탭을 한 행으로 유지할 수 있습니다. 이 기능을 사용하려면 Preferences(환경 설정)/Settings(설정) | Editor(에디터) | General(일반) | Editor Tabs(에디터 탭)으로 이동해 Show pinned tabs in a separate row(고정된 탭을 별도의 행에 표시) 체크박스를 선택하세요.

툴팁에 구문 강조 표시

툴팁 팝업 창에 구문 강조 표시가 구현되어 콘텐츠를 보다 쉽게 읽고 이해할 수 있습니다.

미리보기 탭

이제 클릭 한 번으로 미리보기 탭에서 파일을 열 수 있습니다. 미리보기 탭에서 파일을 열 때 파일의 이름은 이탤릭체로 표시됩니다. 파일을 편집하기 시작하면 미리보기가 중단되고 일반 파일로 바뀝니다. 이 기능을 활성화하려면 Project(프로젝트) 뷰에서 톱니바퀴 아이콘을 클릭하고 Enable Preview Tab(미리보기 탭 활성화)을 선택하세요.

Touch Bar의 Build 액션

macOS 사용자를 위해 Touch Bar에 Build(빌드) 액션을 추가했습니다.

버전 관리

이제 Rider에서 바로 변경 내용을 스테이징할 수 있습니다. + 아이콘을 클릭하여 Commit(커밋) 뷰의 새 Staged 노드에 파일을 추가합니다. 여백 또는 Diff 뷰에서 변경 사항을 스테이징할 수도 있습니다. 이 기능을 활성화하려면 Preferences(환경 설정)/Settings(설정) | Version Control(버전 관리) | Git으로 이동하여 Enable staging area(스테이징 영역 활성화) 체크박스를 선택하세요. 자세한 내용은 블로그 게시물을 읽어보세요.

새로운 Git 탭을 Search Everywhere(전체 검색) 대화상자에 추가했습니다. 이제 Search Everywhere 대화상자에서 커밋 해시와 메시지, 태그, 브랜치를 검색할 수 있습니다.

브랜치 작업에 몇 가지 개선 사항이 추가되었습니다. 이제 Rider에서 현재 선택한 브랜치에 사용 가능한 모든 액션을 표시합니다. Merge into Current(현재 브랜치로 병합)Rebase Current on Selected(현재 브랜치를 선택 브랜치로 리베이스) 액션은 각각 Pull into Current Using Merge(병합을 사용하여 현재 브랜치로 풀)Pull into Current Using Rebase(리베이스를 사용하여 현재 브랜치로 풀)로 이름이 변경되었습니다.

기타 VCS 업데이트:

  • 이제 VCS 메뉴는 현재 사용 중인 버전 관리 시스템의 이름과 일치하도록 변경됩니다.
  • 패치는 Git 형식으로 생성됩니다.

플러그인

Dynamic Program Analysis(DPA)

이제 Dynamic Program Analysis 플러그인을 .NET Core 애플리케이션용 macOS 및 Linux에서 사용할 수 있으므로 Windows에만 제한되지 않습니다. 이 플러그인은 .NET Core 3.0 이상을 대상으로 하는 애플리케이션에 사용할 수 있습니다.

이제 디버거가 실행 중인 프로세스에 연결된 경우 DPA 플러그인으로 메모리 할당 분석이 가능합니다.

Azure DevOps

Azure DevOps 플러그인을 통해 새 서버 작업 공간을 생성하거나 기존 작업 공간을 가져올 수 있습니다.

dotCover

dotCover 플러그인을 사용하면 Windows, macOS 및 Linux에서 .NET 5를 대상으로 하는 애플리케이션 커버리지 분석을 수행할 수 있습니다.

Unit Tests Coverage(유닛 테스트 커버리지) 창에서 대상 프레임워크별로 커버리지 결과를 필터링할 수 있습니다.

코드 에디터에서 dotCover를 통해 제공되는 강조 표시 기능은 플러그인 설정 또는 'Configure highlighting level(강조 표시 수준 구성)' 팝업 창에서 사용 설정이 가능합니다.

이제 연속 테스트 세션이 트리거될 경우 빌드해야 할 프로젝트를 정의할 수 있습니다. 이 기능으로 연속 테스트 세션의 속도가 개선됩니다.

dotTrace

이제 성능 프로파일러를 활용하여 Windows, macOS 및 Linux에서 .NET 5 애플리케이션 프로파일링을 수행할 수 있습니다.

느린 메서드를 더 빠르게 확인할 수 있는 호출 트리 시각화 도구인 플레임 그래프가 성능 프로파일러에 추가되었습니다.

이전에는 dotTrace의 독립 실행형 버전에서만 사용 가능했던 호출 트리 접기 기능이 Rider용 dotTrace 플러그인에도 도입되었습니다. 이 기능은 사용자 모듈 및 어셈블리에 속하지 않는 호출 체인을 접어서 호출 트리 분석을 간소화하는 데 유용합니다.

Rider용 Azure Toolkit

이제 Rider에서 Azurite 스토리지 에뮬레이터를 사용할 때 대기열 스토리지를 탐색할 수 있습니다. 메시지 추가, 메시지 콘텐츠 보기 등의 작업이 가능합니다.

테이블 스토리지 에뮬레이터를 갖춘 새로운 Azurite 3.9 알파 버전 실행에 필요한 초기 지원도 추가되었습니다.

Azure Functions 프로젝트에서 실행/디버그 구성이 프로젝트 컨텍스트 메뉴에 표시되어 보다 쉽게 액세스할 수 있습니다. 또한 Azure Explorer 도구 창의 컨텍스트 메뉴가 개편되어 자주 사용하는 액션을 더 빠르게 실행할 수 있습니다.

Rider용 Azure Toolkit

  • Amazon Elastic Container Registry에 대한 기본 지원.
  • .NET Core 3.1 람다 함수의 로컬 디버그 지원(SAM CLI 버전 1.4.0 이상 필요).
  • 크게 향상된 S3 버킷 목록의 로딩 속도.
  • 이제 플러그인 사용을 위한 최소 버전은 Rider 2020.1입니다. 2019.3 지원은 중단되었습니다.
  • 자세한 내용은 Marketplace에서 확인해 주세요.

Markdown

이제 Markdown 도구의 미리보기 UI와 UX가 한층 더 개선되었습니다. Preferences(환경 설정) | Settings(설정) | Editor(에디터) | Code Style(코드 스타일) | Markdown에서 Markdown 서식을 사용자 지정할 수 있습니다. 에디터의 우측 상단에 있는 Auto-Scroll Preview(미리보기 자동 스크롤) 버튼을 누르면 미리보기 창과 에디터의 스크롤을 동기화할 수 있습니다. 또한 Mermaid.js 지원도 추가하였습니다.

코드 에디터

인레이 힌트

인레이 힌트는 강력한 기능이지만 가능한 한 환경을 깔끔하고 정돈된 상태로 유지해야 합니다. 두 가지 장점을 모두 활용하기 위해 인레이 힌트의 "Push-to-Hint" 메커니즘이 새롭게 도입되었습니다.

Push-to-Hint 가시성 모드에서 인레이 힌트가 기본적으로 표시되지 않습니다. 인레이 힌트는 Ctrl 키를 길게 누르면 표시되고, Ctrl 키를 놓으면 바로 숨김 처리됩니다.

매우 세분화된 설정을 제공하므로 Rider에서 항상 활성화해야 할 힌트, 푸시 중 표시해야 할 힌트, 별로 중요하지 않은 힌트를 지정할 수 있습니다. 각 힌트 유형에 ‘Visibility(가시성)’ 설정을 사용하세요.

또 다른 개선 사항은 묵시적 유형의 형 변환 힌트입니다. 이러한 형 변환은 데이터 손실 또는 성능 저하를 초래할 수 있으므로 이제 Rider는 묵시적 형 변환이 발생하는 위치를 표시합니다.

파일 헤더

파일 헤더 템플릿은 Preferences/Settings(환경 설정/설정) | Editor(에디터) | File Header Template(파일 헤더 템플릿)에서 지정 가능합니다. 이 템플릿을 저작권 고지, 회사 정보, 현재 사용자 이름 등을 추가하는 데 활용할 수 있습니다.

코드 스타일 및 코드 서식 지정

오랫동안 기다려온 기능이 추가되었습니다. 바로 코드 에디터에서 서식 지정 설정을 탐지하고 구성하는 기능입니다. 코드 조각을 선택하고 Alt+Enter를 누른 다음 Format Selection(서식 선택) / Configure(구성) 또는 Format Selection(서식 선택) / Detect Formatting settings(서식 지정 설정 탐지)를 선택하세요. Rider는 특정 라인에 영향을 미치는 모든 설정 목록이 포함된 창을 표시합니다. 디폴트 값과 다른 값은 강조 표시되며 "Only show changed values(변경된 값만 표시)" 옵션을 사용하여 다른 값을 확인할 수도 있습니다.

더 자세한 내용은 Rider의 코드 서식 지정 규칙 자동 탐지에서 확인해 주세요.

서식 지정 엔진에 보다 세분화된 설정을 계속 추가하고 있습니다. 이번 릴리스에 추가된 기능은 다음과 같습니다.

  • 프로퍼티 패턴 정렬 설정을 통해 Rider에서 간편한 패턴은 한 줄에 배치하도록 지시하고 긴 패턴의 줄 바꿈 방식을 지정할 수 있습니다. 또한 프로퍼티 패턴을 열로 정렬하는 설정도 있습니다.
  • 이제 프로퍼티 또는 이벤트 접근자 주변에 빈 줄을 추가할 수 있습니다.
  • Visual Basic .NET의 경우 단항 연산자 +/- 뒤에 공백을 추가하는 옵션이 제공됩니다.

Preferences/Settings(환경 설정/설정) | Editor(에디터) | Code Style(코드 스타일) | C# | Syntax Style(구문 스타일)에서 선호하는 구문 스타일의 디폴트 값을 defaultdefault(T) 중 선택하는 옵션이 추가되었습니다.

.EditorConfig 지원 업데이트도 몇 가지 있습니다.

  • .editorconfig로 내보내기의 새로운 “Spaces around ‘=’(= 주변 공백)” 매개변수. 기존 파일에서 이 값은 자동 탐지되며 새 파일에서도 수동 설정이 가능합니다. 기본값은 ‘true’로 설정됩니다.
  • Roslyn 프로퍼티 읽기 지원: file_header_templates, dotnet_sort_system_directives_firstdotnet_separate_import_directive_groups.

이제 Tab 키를 사용하여 현재 코드 줄의 들여쓰기를 조정할 수 있습니다. 이 기능을 사용하려면 Tab 키를 Emacs Tab 액션에 지정하세요.

Avalonia 지원

코드 분석

WPF와 유사한 모든 프레임워크와 마찬가지로 코드 분석은 “Possible ‘System.NullReferenceException’”“Class/Property {...} is obsolete: Use {...}”를 포함한 .axaml 파일과 C# 코드 비하인드에 대한 적절한 빠른 수정을 사용하여 다양한 일반적인 코드 검사를 지원합니다.

일반적인 WPF 검사 외에도 “Path to resource is case-sensitive(리소스 경로에 대소문자 구분)” 또는 “ColumnDefinitions tag can be convert to attribute(ColumnDefinitions 태그는 속성으로 변환 가능)” 검사 등의 수많은 Avalonia 전용 검사가 있습니다. 예시 중 두 번째 검사인 “ColumnDefinitions tag can be convert to attribute(ColumnDefinitions 태그는 속성으로 변환 가능)”의 경우 ColumnDefinitions="*,Auto,*" 속성의 컨텍스트 액션을 통해 해당 태그를 <Grid.ColumnDefinitions> 태그로 다시 변환할 수 있습니다.

Avalonia 바인딩의 $self, $parent, ^# 구문에 대한 적절한 지원과 $parent[] 배열의 색인에 대한 적절한 유효성 검사가 추가되었습니다.

CompiledBindingx:CompileBindings 확장을 위한 확장된 지원도 있습니다. Rider는 DataType이 필요하다는 사실을 이해하고 바인딩에 이를 지정하라는 메시지를 코드에 표시합니다.

“Create from usage(사용 위치에서 생성)” 빠른 수정은 모든 종류의 Avalonia 프로퍼티에 사용할 수 있습니다.

Avalonia XAML 지원에는 CSS와 유사한 스타일링 시스템에 대한 이해가 포함됩니다.

인레이 힌트는 현재 보고 있는 코드를 더 잘 이해하는 데 유용합니다.

코드 완성

모든 XAML 키워드, 모든 종류의 마크업 확장, x:Name, Style 프로퍼티, StyleInclude에 대한 Source 프로퍼티 등에 코드 완성과 매개변수 정보를 이용할 수 있습니다.

탐색

컴파일된 바인딩 데이터 유형, 바인딩된 프로퍼티, Avalonia 제어 유형 및 x:Name 선언으로 쉽게 이동할 수 있습니다. Rider는 또한 XAML에서 스타일 setter 프로퍼티를 포함한 디컴파일된 외부 코드 및 참조된 xmlns 네임스페이스로 바로 이동할 수 있습니다.

Find Usages(사용 위치 검색)

Find Usages(사용 위치 검색) 기능을 이용하면 메서드 바인딩, x:Name 속성, Style 클래스 및 setter, 모든 종류의 프로퍼티의 사용 위치를 모두 쉽게 찾을 수 있습니다.

리팩터링

이제 Rename(이름 변경) 및 Safe Delete(안전한 삭제) 리팩터링은 Avalonia XAML 코드에서 모든 사용 위치를 인식하고 그에 따라 업데이트합니다.

계층 및 코드 구조

Avalonia XAML 코드의 계층 및 구조를 확인할 수 있습니다.

웹 개발

Blazor 지원

Blazor 지원을 계속 추가하고 있습니다. 이 반복 작업의 목적은 제네릭 유형 매개변수와 사용 위치에서 해당 유형 추론을 지원하고 솔루션을 열 때 성능 저하를 없애는 것이었습니다. 수정된 이슈의 전체 목록은 공개 버그 트래커를 참조하세요.

Tailwind CSS 지원

Rider가 이제 Tailwind CSS를 더 생산적으로 작업할 수 있도록 도와줍니다. Preferences(환경 설정) / Settings(설정) | Plugins(플러그인)에서 Tailwind CSS 플러그인을 설치하면 IDE가 Tailwind 클래스를 자동 완성하고, 마우스오버 시 CSS 결과의 미리보기를 표시하며, tailwind.config.js 파일을 사용하여 구성한 사용자 지정을 지원합니다.

사용 위치에서 React 구성 요소 생성

코드에 해결되지 않은 React 구성 요소가 있으신가요? 캐럿을 배치하고 Alt+Enter을 누른 후 목록에서 Create class/function component(클래스/함수 구성 요소 생성)을 선택하세요. Rider에서 관련 코드 구문을 생성합니다.

기타 주요 개선 사항:

  • JavaScript 및 TypeScript 파일의 경우 탐색 표시줄에서 현재 파일의 특정 코드 요소로 이동할 수 있습니다(자세한 정보).
  • CSS 및 HTML 템플릿 리터럴 서식 지정 개선(꽤 지엽적인 기능이지만 관련 이슈가 많은 표를 얻었습니다 – 자세한 정보).
  • pnpm의 완전한 지원(자세한 내용).

Rider 2020.3에서 제공하는 모든 웹 개발 관련 개선 사항을 자세히 알아보려면 WebStorm의 새로운 기능을 확인해 주세요.

데이터베이스 지원

MongoDB용 SQL

이제 SQL을 사용하여 MongoDB 데이터베이스를 쿼리할 수 있습니다! 이 기능을 실현하기 위해 JetBrains는 자체 JS-SQL 변환기를 만들었습니다.

SELECT 쿼리만 작동하며 작업 구문은 JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMITOFFSET입니다. 지원 항목에 관한 전체 글은 여기에서 확인해 주세요.

Couchbase 지원

새로운 데이터베이스가 JetBrains 가족으로 합류하는 것은 언제나 기쁜 일입니다. 새로운 멤버, Couchbase를 소개합니다! 단, Rider는 Couchbase Analytics 서비스가 아닌 Couchbase Query 서비스를 지원한다는 점에 유의하세요.

Azure AD 인증

이제 Azure AD를 사용하여 데이터베이스에 로그인할 수 있습니다.

Rider 2020.3에서 제공하는 모든 데이터베이스 관련 개선 사항을 자세히 알아보려면 DataGrip의 새로운 기능을 확인하세요.

기타 업데이트

유닛 테스트

Alt+Enter 메뉴를 통해 코드 에디터에서 특정 대상 프레임워크에 대한 유닛 테스트를 바로 시작할 수 있습니다.

이제 Unit Test Session(유닛 테스트 세션) 탭에서 유닛 테스트 실행 결과를 내보낼 수 있습니다.

Xamarin

“정보 프로퍼티 목록” 파일을 사용해 iOS 프로젝트 구성에 시간을 소모하는 분을 위해 모든 플랫폼에서 Xamarin.iOS 프로젝트 Info.plist를 위한 다양한 기능을 갖춘 새로운 에디터를 제공합니다. 이제 이 파일을 여는 데 Xcode를 열지 않아도 됩니다.

기타

  • 실행 구성은 파일로 저장되며 이제 Run Configurations(실행 구성) 폴더의 솔루션 아이템에 저장됩니다. 이는 Rider에서 사용자 지정 폴더의 실행 구성을 적절히 활용하는 데 도움이 됩니다.
  • 이제 실행 구성 템플릿을 파일로 저장하여 VCS를 통해 공유할 수 있습니다.
  • 또한 Search Everywhere(전체 검색) 검색 필드에 간단한 수학 표현식을 평가하는 기능이 추가되었습니다.
  • IDE 테마를 Windows 및 macOS의 OS 설정과 자동으로 동기화할 수 있습니다. Settings(설정) | Appearance & Behavior(모양 및 동작) | Appearance(모양) | Theme(테마)에서 Sync with OS(OS와 동기화) 옵션을 활성화하면 됩니다.
  • 과도한 검사 계산의 비활성화를 통해 솔루션 전체 오류 분석 기능이 약 25% 개선되었습니다.