2022.1은 품질에 중점을 둔 버전으로, 특히 Blazor 개발 및 C# 지원을 위한 많은 개선과 버그 수정을 제공합니다.
30일 무료 평가 이용 가능
We continue to improve support for C# 10, particularly global usings. 컨텍스트 액션으로도 사용할 수 있는 두 가지 새로운 리팩터링을 구현했습니다.
Extract Global Using(global using 추출)을 이용하면 프로젝트에서 global using의 개념을 도입할 수 있습니다. 일반 using
지시문에서 이를 호출할 수 있으며, ReSharper는 지정된 GlobalUsings.cs
파일로 이를 추출하도록 제안합니다(이 파일이 프로젝트에 아직 없으면 생성됨). 더 이상 필요하지 않은 일반 using
은 프로젝트의 파일에서 제거됩니다.
global using
을 일반 using
으로 리팩터링하려는 경우 Inline Global Using(gloabl using 인라인화) 리팩터링을 사용하면 도움이 될 수 있습니다. 이 리팩터링은 global using
에서 호출 시 GlobalUsings.cs
에서 global using을 제거하고 필요한 경우 프로젝트의 파일에 그에 해당하는 using
문을 추가합니다.
global using 기능은 Find Usages(사용 위치 찾기) 및 확장 메서드에 대한 코드 분석에서 지원됩니다.
We’ve looked into the approaching C# 11 and supported generic attributes.
[MemberNotNull]
및 [MemberNotNullWhen]
어노테이션이 이제 null 가능 참조 타입을 사용하지 않는 프로젝트에서 지원됩니다. 이제 엔드포인트 지원이 ASP.NET Core 6 최소 API 및 규칙 기반 라우팅에 대해 작동합니다. 여기에는 탐색, 코드 분석 및 코드 완성이 포함됩니다.
다음은 Razor 및 Blazor에 적용된 가장 주목할 만한 기능 및 수정 사항입니다.
[EditorRequired]
속성에 대한 지원을 추가했습니다. 필요한 매개변수를 지정하지 않고 Blazor 구성 요소를 사용하는 경우에도 그에 해당하는 검사와 빠른 수정을 사용할 수 있습니다. .razor
파일에서 코드 정리가 실행되는 방식을 개선했습니다. 이제 코드 정리가 모든 @using
선언을 제거하지 않습니다. Code Cleanup(코드 정리) 및 Formatting(서식 지정)과 관련된 Alt+Enter 메뉴의 모든 항목을 재구성했습니다. Format selection(선택항목 서식 지정), Cleanup selection(선택항목 정리) 및 Apply syntax style(구문 스타일 적용)이 하나의 Reformat and Cleanup(서식 다시 지정 및 정리) 항목으로 결합되어 하나의 진입점으로 액세스 할 수 있습니다.
이러한 변경 사항 외에도 이제 구문 스타일 설정을 Configure code style(코드 스타일 구성) 및 Autodetect code style settings(코드 스타일 설정 자동 탐지) 액션에서 사용할 수 있습니다. Preview code style(코드 스타일 미리보기) 패널에는 구문 스타일의 변경 결과도 표시됩니다.
The Unreal Engine testing framework is now supported. ReSharper C++는 Unreal Engine 유닛 테스트를 발견하고, 해당 테스트 또는 전체 테스트를 실행하거나 디버그하도록 에디터의 각 테스트 옆에 그에 해당하는 액션 표시기를 추가합니다. Unit Test Sessions(유닛 테스트 세션) 창에서 테스트 결과를 검토하고 실패한 테스트, 전체 테스트 또는 특정 테스트를 다시 실행할 수 있습니다.
이제 ReSharper C++가 묵시적 생성자 호출을 더 잘 처리하여, 다음을 포함한 다양한 경우에 사용 위치를 찾고 호출된 생성자로 이동할 수 있습니다.
make_unique/make_shared
) 및 Unreal 전용(MakeShared/MakeUnique
) 스마트 포인터 생성 함수. emplace
유사 컨테이너 메서드.static_cast
및 C 스타일 형 변환 표현식. ReSharper C++ 2022.1은 또한 emplace
유사 함수가 잘못된 인수로 호출될 때 오버로드 경고를 표시합니다.
소스 제너레이터의 지원 성능을 분석한 결과, 컴파일러에서 소스 생성 문서를 가져올 때 요청 사이의 지연을 늘리기로 결정했습니다.
이에 따라 소스 제너레이터는 컴파일러보다 먼저 실행되지 않고 총 CPU 작업량이 줄어듭니다. 정확한 성능 향상은 Visual Studio의 전체 줄 코드 완성과 같은 다른 기능도 제너레이터를 트리거하는지 여부에 따라 다릅니다.
We’ve fixed a number of performance issues already and laid the groundwork for more. 여기에는 고객의 성능 스냅샷 처리, 사내 프로파일링 세션, 향후 성능 저하에 대한 자동 검사가 구현될 경우에 대비한 데이터 수집이 포함됩니다.
"out of process" 모드는 작업 진행 중입니다. Please refer to the newest update in our issue tracker.
InspectCode 도구는 Static Analysis Results Interchange Format(정적 분석 결과 교환 형식)(SARIF)과 호환되는 출력 파일을 생성할 수 있습니다.
명령줄 도구가 이제 Alpine Linux를 지원합니다.
System.Private.CoreLib
와 같이 XML 문서 파일의 이름과 이름이 다른 어셈블리를 포함하여 플랫폼 어셈블리에 대한 XML 문서 주석을 표시합니다. XML 문서의 경로가 이제 디컴파일된 파일의 헤더에 표시됩니다. [TypeForwardedTo]
속성)을 지원합니다. Locate in Metadata(메타데이터에서 찾기) 액션은 전달된 유형, 어셈블리 및 모듈 참조, 및 리소스에도 작동합니다. 이제 dotTrace는 Windows(.NET Core, .NET 5+)와 macOS 및 Linux(.NET Core 3.0+, .NET 5+)에서 Microsoft.Data.SqlClient
공급자의 SQL Server 이벤트를 지원합니다.
이제 특수 아이콘을 애플리케이션 창으로 끌어다 놓기만 하면 이미 실행 중인 애플리케이션에 프로파일러를 연결할 수 있습니다.
이제 주석을 사용하여 커버리지 분석에서 특정 줄이나 코드 블록을 제외할 수 있습니다. 이를 위해 몇 가지 옵션을 사용할 수 있습니다.
// dotcover disable
var i = 1;
var j = 10;
// dotcover enable
/* dotcover disable */ var i = 1; /* dotcover enable */
var i = 1; // dotCover disable this line
// dotcover disable next line
var j = 100;
이러한 옵션을 작동시키려면 JetBrains.dotCover.MSBuild NuGet
패키지를 참조해야 합니다. 이는 프로젝트에 런타임 종속성으로 포함되지 않는 개발 전용 종속성입니다.
.sqlproj
파일에서 ReSharper의 기능을 방해하는 문제를 수정했습니다. 30일 무료 평가 이용 가능