ReSharper 2021.2 버전은 C# 코드 분석 및 nullable 참조 타입 지원을 위한 빠른 수정이 포함된 새로운 검사를 제공하며, 수동으로 작성된 코드 파일에 사용할 수 있는 다양한 기능을 이제 소스 생성 파일에서도 사용할 수 있습니다. 또한 ReSharper 2021.2 버전은 Assembly Explorer(어셈블리 탐색기)에서 단일 파일 애플리케이션 지원, Dynamic Program Analysis에서 이슈 처리 개선, 레코드, 확장 메서드 및 catch 변수에 대한 향상된 이름 지정 규칙을 제공합니다.
30일 무료 평가 이용 가능
변수 값을 스왑하는 데 임시 변수를 사용하시나요? 그보다 더 나은 방법이 있습니다! ReSharper 2021.2의 새로운 Swap via deconstruction(구조 분해를 통한 스왑) 빠른 수정을 사용하여 코드를 업데이트할 수 있습니다!
코드의 할당 개수는 감소시키고 처리량은 늘리세요! 빈 배열 생성을 Array.Empty<T>
로 대체할 수 있습니다.
새 Type[0]
를 할당하는 경우 ReSharper는 Type.EmptyTypes
를 사용하여 메모리 사용 현황을 효율적으로 개선하도록 제안합니다.
특정한 EventArgs
가 필요하지 않은 경우 new EventArgs()
를 EventArgs.Empty
로 대체할 수 있다는 점을 ReSharper가 알려줍니다.
기타 개선 사항:
.editorconfig
의 generated_code
프로퍼티를 사용하여 파일이나 폴더를 생성된 코드로 표시하고 처리 시 배제합니다. switch
문과 switch
식에 대한 코드 분석 성능이 향상되었습니다. nullable 참조 타입을 활성화한 후 코드 베이스에 nullable 경고 억제가 많이 발생하나요?
ReSharper는 더 이상 필요하지 않으며 안전하게 제거 가능한 억제(!
)를 알려줍니다.
새로운 컨텍스트 액션을 사용하면 범위 내에서 모든 nullable 경고 억제를 검색할 수 있습니다. 이후 Find Results(결과 찾기) 도구 창에서 억제의 필요 여부를 다시 평가할 수 있습니다.
null 값 가능성 변경을 위한 새로운 리팩터링이 도입되었습니다! 해당 리팩터링은 nullable 어노테이션(?
)을 추가하거나 제거할 때 빠른 수정, Refactor This(다음을 리팩터링) 액션 또는 내부 리팩터링을 통해 이용할 수 있습니다.
ReSharper는 null 값 가능성을 표시하는 어노테이션을 업데이트하고 변경 사항을 코드 베이스에 적용하도록 제안합니다.
JetBrains.Annotations 속성 및 nullable 참조 타입을 사용할 경우 해당하는 빠른 수정이 포함된 몇 가지 새로운 검사가 지원됩니다.
JetBrains.Annotations 속성이 NRT 구문 및 컴파일러 지원 속성으로 업데이트됩니다! 예를 들어, ReSharper는 [CanBeNull] string
을 string?
으로 업데이트할 수 있습니다.
ReSharper가 [NotNull] string
또는 [ItemCanBeNull] List<string?>
등의 불필요한 JetBrains.Annotations 속성을 알려줍니다. 물론 코드 업데이트를 위한 빠른 수정도 제공됩니다.
타입 어노테이션 구문이 허용되지 않는 경우 빠른 수정이 포함된 새 검사가 컴파일러 지원 어노테이션을 추가합니다. 예시:
[JetBrains.Annotations.NotNull] T param
-> [DisallowNull] T param
(where T: class?
) [JetBrains.Annotations.CanBeNull] T
-> [System.Diagnostics.MaybeNull] T
(C# 8에서는 T?
구문이 허용되지 않는 경우) ReSharper에 새로운 검사 및 빠른 수정이 추가되어 [DisallowNull]
, [AllowNull]
, [MaybeNull]
및 [NotNull]
등의 컴파일러 지원 어노테이션을 사용하는 데 도움이 됩니다.
새로운 검사는 불필요한 컴파일러 어노테이션(예: [AllowNull]
이 nullable 타입에 적용되는 경우)을 탐지하며 빠른 수정을 통해 제거합니다.
nullable 참조 타입 구문을 사용할 수 있는 경우 ReSharper는 해당 구문을 사용하도록 제안합니다.
살펴볼 만한 다른 추가 개선 사항도 있습니다.
자세한 내용은 ReSharper 및 Rider 2021.2의 C# nullable 참조 타입 관련 새로운 기능 블로그 게시물에서 확인하세요.
소스 제너레이터를 사용하여 지루하고 반복적인 개발 업무를 줄이고 컴파일 시간에 코드를 생성할 수 있습니다. ReSharper 2021.2에서는 사람이 작성한 코드 파일에 지원되는 여러 기능을 소스 생성 파일에도 이용할 수 있습니다. 에디터 지원 및 디버거가 개선되었으며, 솔루션 전체 오류 분석(SWEA) 및 리팩터링에 대한 지원이 추가되었습니다.
생성된 코드의 경우 에디터와 마커 표시줄에 억제 및 오류가 표시됩니다.
이제 솔루션 전체 오류 분석(SWEA) 시 소스 제너레이터로 생성된 파일이 포함됩니다. 프로젝트에서 생성된 파일에 오류가 있는 경우 즉시 발견하여 오류로 이동할 수 있습니다.
소스 생성 파일을 포함하는 새 옵션을 사용하여 이 동작을 켜거나 끌 수 있습니다. 해당 동작은 ReSharper | Options(옵션) | Code Inspection(코드 검사) | Settings(설정) | Enable solution-wide analysis(솔루션 전체 분석 활성화)에 기본적으로 활성화되어 있습니다.
소스 생성 파일에서 리팩터링을 실행할 수 있습니다. Rename(이름 변경) 리팩터링을 사용하여 생성된 프로퍼티의 이름을 변경합니다. 또한 ReSharper는 수동으로 작성된 코드에서도 관련 심볼의 이름을 변경합니다.
마찬가지로 Change Signature(시그니처 변경)을 사용하면 변경 후 생성되는 코드의 컴파일 가능 여부를 확인할 수 있습니다.
Find Usages(사용 위치 찾기)를 통해 상속자를 검색하고, Ctrl+클릭 및 Navigate To(다음으로 이동) 등을 사용하여 생성된 코드에서 수동으로 작성된 코드로 이동할 수 있습니다.
이벤트, 필드 및 프로퍼티 등의 클래스 멤버가 적절히 강조 표시되도록 의미 강조 표시가 활성화되었습니다. 모든 인레이 힌트가 적절한 위치에 표시됩니다.
디버그 중 ReSharper 자체 데이터 팁이 표시됩니다. 이는 더욱 강력한 디버그 지원 및 검색, 프로퍼티 강조 표시 등의 기능을 제공합니다.
이제 ReSharper는 소스 제너레이터가 VB.NET으로 생성한 코드를 지원합니다.
이전 릴리스에서는 ASP.NET 경로 템플릿 지원이 구현되었습니다. 2021.2 버전에서는 이 방향성은 유지하되 HttpClient
URI 문자열에 대한 더 나은 개선을 제공합니다.
HttpClient
를 사용할 경우 코드 완성 기능은 [Route]
, [Http{Method}]
또는 [AcceptVerbs]
속성 어노테이션이 추가된 컨트롤러의 액션으로 변경 가능한 모든 URI를 제안합니다. 탐색에 유용한 기능이 추가되었습니다.
레코드, 확장 메서드 및 catch 변수에 대한 고급 규칙을 지정하는 것이 유용한 경우가 있습니다. 이번 릴리스부터 해당 규칙을 구성할 수 있습니다.
Pico 괄호(들여쓰기) 스타일을 선호하실 경우 해당 스타일을 사용할 수 있습니다. ReSharper | Options(옵션) | Code Editing(코드 편집) | C# | Formatting Style(서식 지정 스타일) | Braces Layout(괄호 레이아웃) 페이지의 Brace Layout(괄호 레이아웃) 탭에 Pico 스타일이 옵션으로 추가되었습니다.
일부 케이스의 디폴트 서식 지정 설정이 Visual Studio 디폴트 설정과 일치하도록 변경되었습니다.
새로운 Inline Function(함수 인라인화) 리팩터링을 사용하면 함수 호출을 함수 본문으로 빠르게 바꿀 수 있습니다. ReSharper C++는 필요한 변환을 수행하고, 모든 이름 충돌 오류를 처리하며 결과 코드의 서식을 다시 지정합니다.
ReSharper C++ 2021.2 버전은 예기치 않은 데이터 손실이나 성능 이슈를 초래할 수 있는 묵시적 타입 변환에 대한 인레이 힌트를 삽입합니다. 이제 ReSharper C++는 코드에서 묵시적 변환이 발생하는 위치를 알려줍니다.
이제 DPA는 각 이슈에 대해 두 가지 값(최댓값과 현재 값)을 저장합니다. 이 방법은 거짓 음성을 피하는데 도움이 됩니다. 이전에는 이슈가 해결되었기 때문이 아니라 시작 조건(프로그램 실행 시간 단축, 필수 기능이 실행되지 않는 등)이 변경되었기 때문에 이슈가 임계값 이하로 떨어지면 이슈 목록에서 사라지는 일이 발생할 수 있었습니다.
The embedded decompiler can now decompile single-file apps. NET Core 3.1, .NET 5 및 곧 출시될 .NET 6 SDK의 단일 파일 형식이 지원됩니다. 어셈블리 탐색기를 사용하면 평소와 마찬가지로 단일 파일 앱 내에서 번들로 제공되는 어셈블리를 탐색할 수 있습니다.
이번 릴리스에서 메모리 할당의 분석 방식이 한층 개선되었습니다. 두 개의 새 탭이 Memory Allocation(메모리 할당) 뷰에 추가되었습니다.
대형 뷰에서 작업하는 Razor 개발자는 에디터에서 지연이 발생할 경우 CPU 집약적 지원 및 자동 제안을 끌 수 있습니다. ReSharper | Options(옵션) | Environment(환경) | Editor(에디터) | Behavior(동작) | Razor | Allow CPU-intensive typing assist(CPU 집약적 입력 지원 허용)에서 해당 설정을 확인할 수 있습니다.
InspectCode 도구에 상당한 수준의 변경 사항이 추가되었습니다. 2021.2 버전부터 InspectCode에서 분석을 시작하기 전 자동으로 NuGet 패키지를 복구하고 솔루션을 빌드합니다. 해당 동작을 원치 않을 경우 --no-build
옵션을 사용하여 NuGet 패키지 복구 및 솔루션 빌드를 비활성화하세요.
30일 무료 평가 이용 가능