Rider 2022.2에는 시작 성능 및 솔루션 전체 분석 엔진에 대한 최적화와 함께 전반적인 성능 개선이 포함되어 있습니다. C# 11 기능에 대한 지원이 확장되어 필수 멤버, checked 사용자 정의 연산자, raw 문자열, list 패턴을 포함합니다. 이 릴리스에서는 작업 중인 모든 솔루션에 동일한 창 레이아웃 설정을 적용할 수 있습니다. 또한 Unreal Engine 지원에는 New Unreal Module(새 Unreal 모듈) 및 New Unreal Plugin(새 Unreal 플러그인)의 두 가지 새로운 액션과 디버그 시 라이브러리 심볼을 가져오기 위해 심볼 서버를 지정하는 기능이 도입되었습니다.
Rider의 Windows 백엔드를 .NET 6 런타임으로 마이그레이션했습니다. 이제 .NET 6 런타임을 사용하여 지원되는 모든 운영 체제(Windows, macOS, Linux)에서 백엔드 서비스를 실행합니다. .NET 6 런타임 자체의 최적화 덕분에 Rider의 전체 성능이 2022.1 버전에 비해 향상되었습니다.
이 변경 사항에 따라 Rider를 설치한 후 Windows에서 기본 이미지를 생성하기 위해 NGen을 CrossGen 유틸리티로 대체했습니다. CrossGen은 .NET 런타임과 함께 작동하고 크로스 플랫폼이기 때문에 Rider가 솔루션을 더 빠르게 시작하고 열 수 있습니다.
Rider는 설치 중에 CrossGen을 실행하지 않으며, 사용자가 Rider를 처음 시작할 때만 실행합니다. 즉, 첫 번째 실행은 약간 더 오래 걸릴 수 있지만 모든 후속 실행은 더 빨라집니다.
솔루션을 처음 열 때('콜드 스타트업') 솔루션이 더 빨리 시작되고 Rider에는 솔루션에 대한 정보가 없습니다. 콜드 스타트업 시에는 모든 프로젝트가 두 번 로드됩니다. 먼저, IDE가 프로젝트를 로드하여 각 프로젝트에 대한 정보를 가져온 다음 'NuGet restore'(NuGet 복원)을 실행하고 모든 준비가 끝나면 두 번째로 프로젝트를 로드합니다.
이번 버전에서는 Rider가 NuGet 패키지를 복원하는 데 필요한 정보만 가져오도록 첫 번째 프로젝트 로드 단계를 최적화했습니다. 내부에서 측정한 결과에 따르면 새로운 구현 방식이 약 40% 더 빠릅니다.
이번 릴리스에서는 Solution-Wide Analysis(솔루션 전체 분석) 모드 사용으로 메모리 트래픽(메모리 할당 수)과 메모리 소비 측면 모두에서 Rider의 메모리 사용량을 크게 최적화했습니다.
Solution-Wide Analysis 엔진은 메모리를 사용하여 솔루션의 문제 목록 및 타입/멤버의 사용 정보를 저장하여 솔루션 전반의 사용량 보고를 수행합니다('public member is never used'(public 멤버가 전혀 사용되지 않음) 등의 코드 검사). 사용 데이터는 '최신'이어야 하므로 사용자가 코드를 편집하는 동안 지속적으로 업데이트되어야 하며 디스크로 오프로드할 수 없습니다. 이로 인해 솔루션에 타입 및 타입 멤버가 많이 포함된 경우, 상당한 양의 메모리가 사용될 수 있습니다. 그래서 저희는 메모리에 저장된 데이터를 검토하여 데이터를 중복 제거/정규화할 수 있는 패턴을 찾았습니다. 또한 작업 세트를 더욱 줄이기 위해 특수 컬렉션 타입을 활용했습니다. 이러한 최적화를 통해 메모리 소비가 5~10배 향상되고 Solution-Wide Analysis(솔루션 전체 분석) 로드 속도가 빨라졌습니다.
이 릴리스에서는 C# 11 테스트 버전의 몇 가지 추가 기능을 지원합니다.
C# 11에서 class
, struct
및 record
타입에 필수 멤버 목록을 선언하는 기능이 추가되었습니다. 이러한 항목은 필수로 간주되고, 타입의 인스턴스를 초기화하는 동안 초기화되어야 하는 모든 프로퍼티와 필드의 목록입니다. 타입은 기본 타입에서 이러한 목록을 자동으로 상속하여 상용구와 반복적인 코드를 제거하는 원활한 환경을 제공합니다.
Rider는 class
, struct
또는 record
타입 내 멤버에 대한 required
키워드를 인식할 뿐만 아니라 required
키워드에 대해 다음의 추가 지원도 제공합니다.
required
키워드가 있습니다. required
제어자가 Preferences(환경 설정)/Settings(설정) | Editor(에디터) | Code Style(코드 스타일) | C# | Syntax Style(구문 스타일)
페이지의 Modifiers order(제어자 순서)에 추가되었습니다. 타입의 객체를 생성했지만 아직 멤버를 초기화하지 않은 경우에 적용되는 새로운 Add initializer for required members(필수 멤버에 대한 이니셜라이저 추가) 빠른 수정을 추가하여 객체에서 누락된 모든 required
멤버가 자동으로 생성됩니다. 사용자는 의미 있는 데이터로 멤버의 값을 채우기만 하면 됩니다.
checked
사용자 정의 연산자를 이용하면 산술 오버플로가 유효한 개념인 타입에서 작동하는 사용자 정의 연산자를 만들 수 있습니다. Rider는 모든 컴파일러 오류 및 경고를 표시합니다. checked
사용자 정의 연산자를 완전히 지원하기 위해 몇 가지 검사와 컨텍스트 액션이 추가되었습니다.
unchecked/checked 컨텍스트에서 checked
연산자가 사용된 경우 이 연산자를 고려하도록 Unchecked/checked context is redundant(unchecked/checked 컨텍스트가 불필요함) 검사를 업데이트했습니다.
사용자 정의 연산자 집합이 있고 그 중 일부에 이미 checked 버전이 있는 경우, Rider는 checked 연산자가 전체 집합에 전달되도록 도와줍니다. The operator does not have a matching checked operator while other operators do(이 연산자에는 일치하는 checked 연산자가 없지만 다른 연산자에는 있음)라는 새로운 검사를 통해 아직 checked
연산자가 없는 연산자를 알려주고 checked 버전이 자동 생성되도록 하는 빠른 수정을 제안합니다.
코드 베이스에서 아직 checked
연산자를 사용하지 않았지만 추가하려고 하는 경우, Create matching checked operator(일치하는 checked 연산자 만들기)라는 새로운 컨텍스트 액션이 매우 유용할 것입니다. 이 액션은 모든 사용자 정의 연산자에서 사용할 수 있으며 한 번의 클릭으로 Alt+Enter 메뉴에서 바로 checked 버전의 연산자를 생성합니다.
C# 11은 'raw' 문자열 개념을 도입하여 다른 언어나 텍스트 형식을 C# 코드에 포함하는 기능을 개선합니다.
Rider는 컴파일러 오류, 올바른 구문 분석 및 """
구문에 대한 색상 강조 표시, 큰따옴표 쌍, 보간된 문자열({{.. .}}
구문) 내의 자리 표시자를 포함해 기본적인 'raw' 문자열을 지원합니다.
C# 11은 언어에서 사용 가능한 패턴 모음을 계속 확장하고 있습니다. 이번에는 C#에서 배열, 문자열 및 List<T>
같은 컬렉션 등의 list 구조에서 일치 작업을 수행할 수 있도록 지원합니다.
Rider 2022.2는 오류 검사, 코드 완성 및 코드 분석을 통해 list 패턴을 완벽하게 지원합니다. 또한 기존 코드 및 추가 리팩터링 액션에서 list 패턴을 사용하도록 제안하는 코드 검사를 추가하는 작업이 진행되고 있습니다.
>>>
오버로드 지원을 포함하여 새로운 부호 없는 오른쪽 시프트 연산자(>>>
)를 완벽하게 지원합니다. Span<char>
및 ReadOnlySpan<char>
타입 값에 대해 문자열 상수를 바로 패턴 일치시킬 수 있게 됨에 따라 Rider 2022.2에서는 Span<char>
값을 문자열 인스턴스의 대체로서 단순하게 사용할 수 있도록 합니다. .NET 6은 C# 9 최상위 구문을 사용하여 새로운 프로젝트 템플릿을 도입했습니다. 최상위 구문은 Program
클래스 또는 public static void Main(string[] args)
메서드 선언을 단순화합니다. 그러나 때로는 명시적 시작 class Program
이 필요하거나, 이것을 사용하는 것이 더 바람직합니다. 이에 Rider 2022.2에서는 이전 스타일로의 변환을 실행할 수 있도록 To explicit 'Program' class(명시적 'Program' 클래스로)라는 새로운 컨텍스트 액션이 추가되었습니다.
동시에 기존 Program
시작 클래스가 있고 최상위 구문으로 마이그레이션하려는 경우, 새로운 Convert to top-level code(최상위 코드로 변환) 컨텍스트 액션을 이용할 수 있습니다.
INotifyPropertyChanged
지원 업데이트 이번 릴리스에서는 INotifyPropertyChanged
지원을 새롭게 손보았습니다. 더 이상 외부 어노테이션에 의존하지 않고 일반적인 INotifyPropertyChanged
API를 탐지하므로 더 많은 MVVM 프레임워크와 INotifyPropertyChanged
기본 클래스가 자동 지원됩니다. 이번 버전에서는 INotifyPropertyChanged
알림에 대해 가장 간결한 구문을 사용할 수 있게 해주는 SetField
메서드가 전송됩니다.
이제 타입 또는 파일의 모든 프로퍼티에 대한 property change(프로퍼티 변경) 알림을 추가할 수도 있습니다.
리팩터링을 더 쉽게 찾을 수 있도록 가장 많이 사용되는 리팩터링을 검토하여 현재 컨텍스트에 따라 표시되는 관련 컨텍스트 액션을 Alt+Enter 메뉴에 도입했습니다.
선택한 코드에서 Alt+Enter 메뉴를 호출하면 Extract method(메서드 추출) 컨텍스트 액션이 표시되도록 추가했습니다.
Change Signature(시그니처 변경), Transform Parameters(매개변수 변환), Convert to extension method(확장 메서드로 변환) 및 Convert Property To Method(프로퍼티를 메서드로 변환) 리팩터링은 멤버 시그니처에 대한 컨텍스트 액션으로 모두 이용할 수 있습니다.
nameof
연산자 사용에 대한 추가 제안 Rider 2022.2는 WPF 프로젝트에서 DependencyProperty
등록을 인식하고 nameof
연산자를 사용하여 해당 CLR 프로퍼티 이름을 캡처하도록 제안합니다. 기본 제공 라이브 템플릿도 문자열 리터럴 대신 nameof
를 내보내도록 업데이트되었습니다.
Rider는 멤버 또는 타입 이름과 같은 일부 코드 엔티티의 이름을 지정하는 데 사용되는 코드에서 특정 문자열 리터럴의 특별한 의미를 인식하지 못하는 경우가 많습니다. 이러한 경우를 위해, 문자열 리터럴을 포함하는 컨텍스트에서 코드 엔티티를 참조할 수 있는 식별자와 함께 문자열 리터럴에 대한 새로운 Capture element name(요소 이름 캡처) 컨텍스트 액션을 도입했습니다.
Structural Search and Replace (SSR)(구조 검색 및 바꾸기) 패턴의 빠른 수정을 이제 파일, 폴더, 프로젝트 또는 전체 솔루션 범위에 적용할 수 있습니다. 이는 사용자 지정 패턴, Rider 기본 제공 코드 검사 및 SSR을 기반으로 한 수정에 적용됩니다.
Rider 2022.2는 코드에서 일부 대입 패턴을 탐지하고 패턴 일치를 통해 더 관용적인 C# 코드를 제안합니다.
Rider 2022.2는 ?:
표현식의 일부 is
패턴을 더 간결한 ??
표현식의 as
로 바꾸어 임시 변수를 효과적으로 제거할 수 있습니다.
작업 중인 모든 솔루션에 동일한 창 레이아웃 설정을 적용하는 방법을 구현했습니다. 예를 들어 도구 창을 오른쪽으로 이동하면 모든 솔루션에 해당 위치가 적용됩니다.
Rider를 처음 사용하는 경우 이 동작이 기본적으로 적용됩니다. 그렇지 않으면 Windows | Layout Settings(레이아웃 설정) | Use the Same Layout for All Projects(모든 프로젝트에 동일한 레이아웃 사용)
를 선택하여 메인 메뉴에서 이를 활성화할 수 있습니다.
이번 릴리스에서는 솔루션 구성이 표시되는 방식을 새롭게 설계했습니다. Unity, Unreal Engine 또는 Xamarin과 같은 프로젝트에는 종종 많은 구성, 대상 및 플랫폼이 있습니다. 이전에는 이러한 모든 엔티티의 조합으로 인해 Solution Configurations(솔루션 구성) 메뉴에 수많은 항목이 생성되었습니다. 2022.2 릴리스부터 구성, 대상 및 플랫폼의 정확한 조합을 선택하기 위해 더 이상 긴 목록에서 항목을 찾을 필요가 없습니다. 원하는 조합을 선택할 때까지 각 매개변수 타입을 하나씩 클릭하기만 하면 됩니다.
메인 툴바의 혼란을 줄이기 위해 솔루션 구성 목록을 빌드 아이콘의 드롭다운 메뉴(녹색 망치)로 이동했습니다. 수렴한 피드백과 통계에 따르면 사용자들이 솔루션 구성을 자주 변경하지 않아 툴바에 별도의 위젯을 유지할 필요가 없는 것으로 나타났습니다. 그러나 구성이 필요한 경우 녹색 망치 아이콘 옆에 있는 드롭다운 삼각형에서 사용할 수 있습니다. 그러면 지금까지 사용하던 동일한 목록이 열립니다.
솔루션 구성을 다시 툴바로 이동하려면 목록에서 Show Configuration on Toolbar(툴바에 구성 표시)를 선택하면 됩니다.
Unity, Unreal Engine 또는 Xamarin 프로젝트에서는 솔루션 구성이 많이 사용되기 때문에 이러한 프로젝트를 작업할 때에는 솔루션 구성 목록이 여전히 툴바에 있습니다.
커뮤니티 피드백을 수렴하여 기본 툴바에서 Run/Debug(실행/디버그) 위젯의 너비를 변경할 수 있도록 했습니다. 툴바에 Run/Debug(실행/디버그) 위젯을 확장할 수 있는 공간이 있는 경우, 위젯 아이콘의 왼쪽 모서리를 끌어 크기를 조정할 수 있습니다. 즉, 원하거나 필요할 때 위젯을 위한 공간을 더 많이 만들 수 있습니다.
macOS에서 열려 있는 모든 프로젝트 창을 하나로 병합하고, 각각의 창을 하나의 탭으로 전환하여 작업 공간을 구성하는 기능이 도입되었습니다. 이 액션을 사용하려면 Window(창) | Merge All Project Windows(모든 프로젝트 창 병합)로 이동하세요.
Rider의 시작 화면에 Cloning repository(저장소를 복제하는 중) 진행률 표시줄이 표시되는 방식을 업데이트했습니다. 이제 Projects(프로젝트) 목록에 바로 표시되므로 더 명확하고 사용하기 쉽습니다.
이제 코드 완성 팝업의 케밥(세로 점 3개) 버튼에서 Code Completion Settings(코드 완성 설정)에 바로 액세스하여 환경 설정을 구성할 수 있습니다.
.NET Multiplatform App UI(.NET MAUI) 지원의 조기 테스트 버전을 도입했습니다. 이번 릴리스에서는 Android 및 iOS 플랫폼을 대상으로 하는 프로젝트를 지원합니다. 실행 구성을 사용하여 프로젝트를 실행 및 디버그하고 애플리케이션을 대상 기기에 배포할 수 있습니다. macOS, Mac Catalyst, Blazor Hybrid 및 WinUI는 아직 완전히 지원되지 않습니다.
Learn more: macOS Environment Setup for MAUI Development
프로젝트 수준에서 Safe Delete(안전한 삭제) 리팩터링을 구현했습니다. Delete 키를 사용하거나 Solution Explorer(솔루션 탐색기)에서 프로젝트에 Refactor This(다음을 리팩터링) 액션을 사용하여 이를 호출할 수 있습니다. Rider는 선택한 프로젝트의 사용 위치를 검색합니다. 사용 위치가 있는 경우 충돌이 표시되고, 그렇지 않은 경우 프로젝트가 삭제되고 Rider가 남아 있는 참조 또는 가져오기를 제거합니다. 이러한 확인 없이 프로젝트를 제거하는 옵션도 있습니다. Safe Delete(안전한 삭제) 대화상자가 표시될 때 Search for usages(사용 위치 검색) 옵션을 선택 해제하면 Rider가 이 검색을 실행하지 않습니다.
Rider 2022.2를 사용하면 필터링된 솔루션을 훨씬 쉽게 사용할 수 있습니다. 이제 결과 솔루션에서 프로젝트, 프로젝트 세트, 솔루션 폴더, 경우에 따라 모든 프로젝트까지 필터링할 수 있습니다. 이렇게 하려면 프로젝트의 컨텍스트 메뉴, 솔루션 폴더 또는 Solution Explorer(솔루션 탐색기) 뷰의 루트 솔루션 노드에서 Solution Filter(솔루션 필터) | Remove project(프로젝트 제거) 액션을 사용하세요. 필터링으로 어떤 프로젝트가 제외되었는지 확인하려면 Solution Explorer(솔루션 탐색기) 뷰에서 Show All Files(모든 파일 표시) 모드를 활성화하고 컨텍스트 메뉴에서 Solution Filter(솔루션 필터) | Add Project(프로젝트 추가) 액션을 사용하세요.
이러한 기본적 작업 외에도 Rider는 이제 Load Direct Project Dependencies(직접 프로젝트 종속성 로드) 및 Load Entire Project Dependency Tree(전체 프로젝트 종속성 트리 로드)의 두 가지 고급 액션을 제공합니다. 이를 사용하면 Rider가 대상 프로젝트의 모든 종속성을 확인하고 필요한 프로젝트 세트를 로드하므로, 필터링된 솔루션 작업을 빠르게 시작할 수 있습니다.
Assembly Explorer(어셈블리 탐색기)에 ReadyToRun(R2R) 및 NGen 어셈블리가 더 효과적으로 표시됩니다.
ngen
또는 R2R
라벨이 각 어셈블리 이름 옆에 표시됩니다. 게임 로직을 사용하여 새 모듈을 만들려면 폴더 추가, 폴더에 Build.cs
파일 추가, 모듈을 초기화하는 클래스 만들기, .uproject
및 Target.cs
파일 업데이트 등 많은 작업이 필요합니다. 이제 Rider에 이러한 작업을 자동화하는 데 도움을 주는 액션인 Add(추가) | New Unreal Module(새로운 Unreal 모듈)이 제공됩니다.
Unreal Editor에서 새로운 플러그인을 만들어 본 적이 있다면 이 새로운 액션이 익숙할 것입니다. 이제 Rider에서 바로 다양한 유형의 플러그인을 만들 수 있습니다. Add(추가) | New Unreal Plugin(새 Unreal 플러그인) 액션을 실행하면 새 플러그인에 필요한 모든 파일이 생성됩니다.
디버그할 때 로컬 시스템에서 라이브러리 심볼을 항상 사용할 수 있는 것은 아닙니다. 이 경우 심볼 서버를 사용할 수 있습니다. Windows의 Rider에서 이제 선택한 심볼 서버를 사용하도록 디버거를 구성할 수 있습니다.
Rider는 이제 Unreal Engine 자동화 테스트 프레임워크의 Spec 테스트를 지원합니다. DEFINE_SPEC
매크로 또는 BEGIN_DEFINE_SPEC
및 END_DEFINE_SPEC
매크로 뒤에 Define
메서드에 정의된 테스트 세트가 있는 경우, Rider가 이를 정확히 검색하므로 Unit Tests(유닛 테스트) 뷰에서 이를 실행하고 관찰할 수 있습니다.
Rider는 이제 Emplace
유사 함수 호출(예: TArray<..>::Emplace
)이 객체 생성을 의미한다는 것을 이해하므로, 잘못된 인수가 생성자로 전달되는 것을 경고합니다. 인수를 입력하는 동안 매개변수 이름 힌트와 매개변수 정보를 볼 수 있습니다. Emplace
호출에서 직접 생성자 정의로 이동할 수도 있고, 그 반대도 가능합니다.
Mathf
메서드의 반환 값이 사용되도록 하기 위한 검사를 추가했습니다. 에디터에 커버리지 요약 표시기를 추가했습니다. dotCover 플러그인에 의해 생성된 빨간색 및 녹색 강조 표시가 너무 혼란스러운 경우에 도움이 될 수 있습니다. 새 도구는 훨씬 더 차분한 느낌입니다. Inspections(검사) 위젯에서 방패 모양의 아이콘을 찾으세요. 색상과 채우기는 현재 문서의 코드 커버리지를 반영하며 이를 클릭하면 적용되지 않은 구문을 탐색할 수 있습니다.
이제 Rider에는 메모리 프로파일링 도구인 dotMemory가 기본 제공됩니다. 주요 기능은 아래와 같습니다.
dotMemory 플러그인은 스냅샷 수집을 허용하지 않으며 2022.2 릴리스의 Windows에서만 작동합니다.
이제 문서 헤더를 기반으로 Markdown 파일에서 목차를 쉽게 생성할 수 있습니다. 새로운 이 액션은 Alt+Insert 단축키를 누르거나 마우스 오른쪽 버튼으로 클릭하여 호출 가능한 Insert(삽입) 및 Generate(생성) 팝업 메뉴에서 사용할 수 있습니다. Rider는 현재 캐럿 위치에 목차를 삽입하고 <!-- TOC -->
태그로 둘러싸므로 이후 동일 메뉴를 호출하여 목차를 업데이트할 수 있습니다.
더 이상 프로파일링 프로세스를 시작하기 위해 Unity 에디터를 다시 시작할 필요가 없습니다. 이제 프로파일러를 실행 중인 Unity 프로세스에 연결하거나 분리할 수 있습니다.
JetBrains는 Rider에서 Angular 14를 지원하기 위해 여러 가지 노력을 기울였습니다. 이번 릴리스에 추가된 가장 중요한 사항은 Angular 독립실행형 구성 요소 지원입니다. Rider 2022.2는 standalone: true
로 표시된 구성 요소, 지시문 및 파이프를 올바르게 인식합니다.
Rider 2022.2는 더욱 향상된 Vue 3 지원을 제공합니다. 예를 들어, Rider는 이제 v-if/else
지시문의 타입 좁히기를 이해합니다. 또한 Vue 팀이 추천하는 상태 관리 솔루션이자 전역 저장소로 작동하는 Pinia 지원도 개선되었습니다. Pinia 라이브러리를 사용하면 Vue에서 코드 완성 및 문제 해결 기능이 지원되므로, 저장소에 정의된 상태 프로퍼티 및 액션으로 이동할 수 있습니다.
Rider 2022.2 버전은 TypeScript 4.7과 번들로 제공되며, moduleSuffixes
및 Node.js의 ESM 등 새로운 언어 기능을 지원합니다. tsconfig.json
파일에서 module
이 node16
또는 nodenext
로 설정된 경우, .js
확장자가 import 문에 자동으로 삽입됩니다. 또한 Rider는 package.json
파일의 typesVersions
필드도 지원합니다.
자세히 알아보기: WebStorm 2022.2의 새로운 기능
F#의 Parameter Info(매개변수 정보) 팝업을 새롭게 개선했습니다.
Parameter Info(매개변수 정보)에는 함수의 예상 인수에 대한 정보가 포함되어 있습니다. 이 팝업은 함수 애플리케이션 또는 메서드 호출을 작성할 때 나타나거나, Ctrl+P를 눌러 코드를 읽을 때 볼 수 있습니다.
2022.2 버전부터 Parameter Info(매개변수 정보) 팝업이 커링 처리된 애플리케이션을 지원하고 올바른 메서드 오버로드를 강조 표시합니다. 그 밖에 메서드, 함수 및 매개변수 설명, 매개변수 디폴트 값, 확장 메서드 정보, 및 JetBrains CanBeNull/NotNull
어노테이션도 표시됩니다. 속성에서도 Parameter Info(매개변수 정보)를 볼 수 있습니다.
이제 Fantomas의 전역 또는 지역 dotnet
도구 버전을 사용할 수 있습니다. Rider는 적절한 도구를 자동으로 사용하므로 팀 내에서 Fantomas 버전을 동기화할 수 있습니다.
새로운 빠른 수정인 Change type of binding(바인딩 타입 변경)은 정의된 반환 타입이 표현식의 실제 타입과 다를 때 유용합니다. Special thanks goes to Florian Verdonck for implementing this quick-fix.
You can take a look at the full release notes for more information about F# support in Rider 2022.2.
자세히 알아보기: DataGrip 2022.2의 새로운 기능