ReSharper 2023.1은 C#을 더 효과적으로 지원합니다. 예를 들어, 다양한 유형의 컬렉션 작업을 최적화하고 속도를 높이는 일련의 검사가 제공되고 코드에 null 검사를 보다 유연하게 도입할 수 있습니다. 이번 빌드는 또한 C++20 모듈 업데이트, C++23 기능에 대한 지원을 처음으로 제공, 그리고 매크로 대체 미리보기와 C++에 대한 Call Tracking(호출 추적)을 제공합니다. 또한 유닛 테스트 및 코드 정리 사용자 경험에 대한 개선 사항도 포함되었습니다.
30일 무료 평가 이용 가능
컬렉션의 조회 수를 줄여 다양한 유형의 컬렉션으로 작업할 때 이를 최적화하고 속도를 높이는 빠른 수정이 포함된 일련의 검사를 도입했습니다.
HashSet
또는 ISet
인터페이스를 구현하는 다른 컬렉션에 항목을 추가하기 전에 Contains(item)
0> 검사를 제거합니다. Dictionary
또는 IDictionary
인터페이스를 구현하는 다른 컬렉션에 항목을 추가하기 전에 ContainsKey(key)
검사를 제거합니다. Dictionary
컬렉션 또는 Dictionary
에서 상속된 컬렉션에 TryAdd(key, value)
를 사용합니다. IDictionary
컬렉션에 TryGetValue(key, out value)
를 사용합니다. 새로운 Syntax style(구문 스타일) 설정을 제공하여 패턴 내에서 not null
검사의 일관된 스타일을 적용할 수 있도록 했습니다. 여기에는 빈 재귀 패턴 구문 { }
와 부정 패턴 not null
의 두 가지 옵션이 있으며 후자가 디폴트 값입니다. ReSharper | Options(옵션) | Code Editing(코드 편집) | C# | Syntax Style(구문 스타일) 페이지에서 언제든지 동작을 조정할 수 있습니다.
not null 패턴을 사용하면 재귀 패턴 { LastName: { } lastName }
과 같이 확인된 값에 대해 변수 이름을 도입할 수 없기 때문에 단점이 있습니다. 동일한 값에 대한 모든 액세스를 통일하기 위해 not null
패턴에 Add pattern variable(패턴 변수 추가) 컨텍스트 액션을 추가하여 동일한 값에 액세스하는 표현식을 찾고(변수 이름이 도입됨) 이 모두를 새로 도입된 이름으로 대체하도록 했습니다.
.NET 6.0 SDK에 null
검사를 위한 새로운 API인 ArgumentNullException.ThrowIfNull
이 도입되었습니다. 이후 코드 분석 엔진은 이 검사 접근 방식을 인식했지만 이 API를 ReSharper에서 생성한 null
검사의 디폴트 스타일로 사용할 수 있는 옵션이 없었습니다. 2023.1 릴리스에서는 ArgumentNullException.ThrowIfNull
패턴을 ReSharper | Options(옵션) | Code Editing(코드 편집) | C# | Null checking(Null 검사)에 추가했습니다.
프로퍼티 패턴 일치를 많이 사용하는 경우, 빠른 수정이 포함된 검사를 사용해 보세요. 코드 흐름에 여러 프로퍼티 패턴이 함께 나타날 때 공통 요소를 추출할 수 있습니다. Extract common property pattern(공통 프로퍼티 패턴 추출) 빠른 수정으로 생성된 코드는 공통 프로퍼티 패턴을 더 높은 수준의 패턴으로 이동하여 코드 반복을 줄이는 데 도움을 줍니다.
C# 개발자는 #region
지시문과 IDE의 코드 접기를 사용하여 코드를 구조화하는 경우가 많습니다. 리팩터링하면 일부 #region
이 비어 있을 수 있으며, 이로 인해 접었을 때 코드를 잘못 오인할 소지가 있을 수 있습니다. 이 새로운 코드 검사를 통해 접힌 상태의 빈 #region
을 식별하고 해당하는 빠른 수정으로 코드를 정리할 수 있습니다.
span.SequenceEqual(“str”)
대체 코드 분석에 span.SequenceEqual("stringLiteral")
을 span is "stringLiteral"
로 대체할 것을 제안하는 코드 검사가 제공됩니다. 함수를 호출하는 것보다 더 깔끔하고 편리한 C# 구문 솔루션입니다.
C#의 람다 식은 타입이 묵시적으로 지정된 매개변수와 추론된 반환 타입을 가질 수 있습니다. 그러나 복잡한 오버로드 해결 상황에서 코드를 명확히 하기 위해 명시적 타입을 추가할 수 있습니다. C# 11부터 람다 식에 대한 반환 타입 사양을 추가하는 것도 가능합니다. 이를 위해 ReSharper 2023.1에 Insert return type specification(반환 타입 사양 추가) 컨텍스트 액션을 도입했습니다. 이 액션은 메서드, 클래스, 파일, 프로젝트 또는 전체 솔루션을 포함한 모든 범위에 적용할 수 있습니다.
C# or/and/not
패턴은 간단한 값 검사에 유용하지만 ||/&&/!
와 같은 기존 표현식보다 인식하기 어려울 수 있습니다. 또한 소괄호가 빠진 경우에 찾기 어려운 버그를 만들어낼 수도 있습니다. 이를 돕기 위해 버전 2023.1에서는 복잡한 패턴 내의 '죽은(Dead)' 검사를 경고하는 새로운 코드 분석을 도입했습니다.
C# 11 목록 패턴에 대한 지원을 지속적으로 개선하고 있습니다. 새로운 Convert to list pattern(목록 패턴으로 변환) 컨텍스트 액션을 사용하면 컬렉션 길이 검사를 목록 패턴 구문으로 전환할 수 있습니다. 이 액션은 컬렉션 길이를 확인할 수 있는 모든 컨텍스트에서 작동합니다.
매크로 위로 마우스를 가져가면 이제 툴팁에서 전체 구문 강조 표시 및 적절한 코드 서식 지정과 함께 매크로 확장을 볼 수 있습니다. 이전과 같이 Substitute macro call(매크로 호출 대체) 컨텍스트 액션을 사용하여 코드에서 바로 매크로 확장을 확인할 수 있지만 즉시 미리보기를 이용하면 매크로 작업이 더 쉬워집니다. 또한 Quick Documentation(빠른 문서) 팝업(Ctrl+Shift+F1)에서 대체 미리보기의 엔티티를 클릭하여 해당 문서를 확인할 수 있습니다.
Call tracking(호출 추적)이 마침내 ReSharper C++에 도입되었습니다! 이제 수신 호출의 계층 구조에서 호출 체인을 보고 탐색할 수 있습니다. 호출 추적 결과 창에서 계층 구조 항목을 두 번 클릭하여 에디터에서 해당 호출로 이동하거나 노드를 확장하여 수신 호출을 확인할 수 있습니다.
Reformat inactive preprocessor branches in file(파일의 비활성 전처리기 브랜치 서식 다시 지정)은 ReSharper 2023.1에 도입되는 새로운 작업 유형입니다. 이 작업을 통해 비활성 전처리기 브랜치의 서식을 다시 지정할 수 있습니다. 단, 한 번에 전체 파일에만 적용할 수 있으며 C# 소스에서만 작동합니다.
항상 false인 전처리기 지시문 #if
뒤에 숨겨진 코드는 이 작업으로 서식을 다시 지정할 수 없습니다. 이 제한을 가장 잘 보여주는 두 가지 예로 #if false ... #endif
및 #define A #if !A ... #endif
구문을 들 수 있습니다.
Session(세션) 및 Explorer(탐색기) 도구 창 내의 유닛 테스트 트리에 적용된 텍스트 검색 필터가 이제 툴바의 Run(실행) 버튼을 사용하여 테스트를 실행할 때 고려됩니다. 검색 조건을 충족하는 노드만 목록에 남고 실행됩니다.
ReSharper가 프로젝트에서 파일 이름 변경을 처리하는 방식을 개선했습니다. 이 빌드부터 솔루션 내에서 파일의 이름을 바꿀 때마다 변경 사항과 일치하도록 모든 관련 심볼(클래스, 인터페이스 등)의 이름을 바꾸기 위한 옵션이 있는 대화상자가 나타납니다.
참조하는 API가 유효하고 변경되지 않는 한 ReSharper 플러그인은 이제 한 버전에서 다음 버전으로 자동 마이그레이션됩니다.
내장된 API 검증 도구는 설치된 플러그인의 바이너리 호환성을 확인하고 실행 가능한 플러그인을 마이그레이션합니다. 또한 플러그인 작성자는 플러그인에서 사용하는 API가 SDK에 더 이상 존재하지 않을 때마다 JetBrains Marketplace를 통해 자동 알림을 받습니다.
ReSharper에서 CSS에 대한 수요가 거의 없기 때문에 이 언어의 최신 버전을 우선적으로 지원하기가 점차 어려워지고 있습니다. 따라서 이 언어를 지원하는 더 나은 방법을 찾을 때까지 CSS 지원을 보류하기로 결정했습니다.
이에 ReSharper 2023.1부터 CSS 지원이 기본적으로 비활성화됩니다. 이 언어를 계속 사용하려면 ReSharper | Options(옵션) | Environment(환경) | Products & Features(제품 및 기능) | 'CSS' 체크박스에서 다시 활성화할 수 있습니다.
ReSharper 및 .NET 도구는 현재 2010년부터 가장 최근인 2022년까지 7개의 주요 Visual Studio 버전을 지원합니다. 2023.1 릴리스부터 가장 오래된 두 버전인 Visual Studio 2010 및 Visual Studio 2012에 대한 지원을 중단하여 지원 버전 수를 줄입니다.
30일 무료 평가 이용 가능