ReSharper Ultimate 2020.1의 새로운 기능

ReSharper Ultimate 2020.1은 C# 정수값의 데이터 흐름 분석 도구를 새롭게 선보입니다. 또한 null 가능 참조 타입 기능에 대한 향상된 지원과 신규 C++20 기능이 추가되었습니다. XAML 및 Unreal Engine 지원의 개선 사항과 탐색에 추가된 일부 신규 기능도 놓치지 마세요. 그뿐 아니라, 이제 Localization Manager에서 주석을 추가할 수 있습니다. 디컴파일러에서는 C# 7.x 및 8.0 기능이 한층 다양하게 지원됩니다.

다운로드

30일 무료 평가 이용 가능

C# 정수값의 데이터 흐름 분석

C# 정수값의 데이터 흐름 분석

ReSharper의 이번 버전에는 애플리케이션에서 C# 정수값의 사용 위치를 추적하는 새로운 유형의 코드 분석 기능이 도입되었습니다. 이 새로운 유형의 분석은 모든 int 지역 변수의 값이 어떻게 변하는지 추적하고, 그러한 변수에 대한 모든 공통 연산의 정확성을 검증하여 쓸모없거나 오류가 있는 코드를 탐지합니다. 즉, 다음을 경고합니다.

  • 관계형/상등 연산자가 항상 true 또는 false 결과를 도출
  • int 값을 확인하는, 경험적으로 도달할 수 없는 switch 케이스
  • 1 곱하기, 0 더하기 등과 같은 의미 없는 산술 연산
  • 잠재적인 int 오버플로
  • 잠재적인 0으로 나누기

또한 분석의 정확성을 높이기 위해 int 유형의 유형 멤버 및 매개변수와 함께 사용하는 두 가지 새로운 JetBrains.Annotations 속성인 [NonNegativeValue][ValueRange(from, to)]를 추가했습니다. 이러한 속성은 특정 int 멤버의 값이 런타임에서 어떻게 달라질 수 있는지 지정합니다.

C# 지원

C# 지원

C# 8 언어 기능에 대한 지원을 계속 추가 하고 있습니다. 그동안에는 null 가능 참조 타입(NRT)을 지원하기 위해 C# 언어 지원의 많은 부분을 새롭게 바꾸어 코드 분석, 리팩터링 및 ReSharper Build 등의 기타 기능을 준비해왔습니다. ReSharper 2020.1에서는 코드 분석 기능이 null 가능 참조 타입과 관련된 컴파일 경고를 보고하고 대부분의 경고에 대한 빠른 수정을 제공합니다.

또한 몇가지 새로운 검사 및 빠른 수정도 추가되었습니다.

  • null 가능 참조 타입과 관련하여 중복 유형 매개변수 제한 조건을 탐지합니다.
  • 가능한 경우 메서드의 sync 오버로드 대신 async 오버로드를 탐지하고 사용합니다.
  • typeof(SomeType).Name 구문 대신 nameof 표현식을 사용하여 현재 유형의 이름을 가져옵니다.

성능 개선

이번 릴리스에 ReSharper 아키텍처 변경 사항이 다양하게 추가되었습니다. 이제 Visual Studio 프로세스 외부에서 모든 ReSharper 핵심 기능을 실행하고자 하는 목표에 더욱 가까워졌습니다. 모든 변경은 내부적으로 적용되어 ReSharper 2020.1 릴리스 빌드의 UI/UX상 변화는 눈에 띄지 않습니다.

ReSharper를 별도의 프로세스로 이전하는 과정의 최신 소식을 놓치셨다면 이번 기회를 통해 진행 상황을 확인하세요.

탐색 업데이트

Navigation(탐색) 기능에 작지만 유용한 업데이트가 있습니다. 이번 업데이트는 ReSharper 작업 시 마우스와 키보드를 주로 사용하는 모든 사용자에게 도움이 됩니다.

  • 마우스 중간의 스크롤 버튼을 클릭하여 Go to Declaration(선언으로 이동) 액션을 실행할 수 있습니다.
  • Go to File(파일로 이동) 결과 목록에서 Ctrl+Enter를 누르면 Solution Explorer(솔루션 탐색기) 창의 파일이 강조 표시됩니다.
  • 파일 검색 시 <1>Go to File(파일로 이동) / <1>Go to Everything(모든 항목으로 이동)의 전체 경로를 활용할 수 있습니다.
향상된 XAML 지원

향상된 XAML 지원

2020.1 버전에서는 WPF, Xamarin.Forms, UWP, 및 Avalonia XAML이 포함된 XAML 지원에 수많은 개선 및 수정이 이루어졌습니다. 

더욱 향상된 바인딩의 데이터 컨텍스트 추론 및 심볼 확인 기능을 확인해 보세요.

  • d:BindingContext가 사용될 경우
  • Xamarin.FormsPicker.ItemDisplay
  • Xamarin.FormsRelativeSource 바인딩
  • ScrollViewer 제어의 템플릿 바인딩
  • ItemsSource가 중첩된 요소로 사용될 경우
  • TreeView.ItemContainerStyle

UWP 프로젝트에는 다음 지원이 추가되었습니다. 

  • 조건부 XAML 마크업
  • CustomResource 바인딩 

추가 수정 사항에는 다음 지원이 포함됩니다.

  • 사용자 지정 XML 네임스페이스 스키마 정의에서 Uniform Resource Name(통합 리소스 이름)(URN) 사용
  • 리소스 이름에 슬래시 심볼 추가
  • Avalonia에 대한 x:Static 지시문
유닛 테스트 업데이트

유닛 테스트 업데이트

ReSharper 2020.1 버전부터 유닛 테스트 세션을 내보내거나 가져올 수 있습니다. 이에 따라 코드에서 무언가를 변경하고 두 브랜치에 대해 동일한 유닛 테스트를 실행/적용하고자 할 때 팀, 컴퓨터 또는 브랜치 간에 유닛 테스트 세션을 공유할 수 있습니다.

또한 ReSharper의 새로운 버전으로 업그레이드 한 후에도 이미 생성되어있던 유닛 테스트 세션은 계속 유지되어, 열려있거나 잠겨있는 세션을 잃고 싶지 않을때 유용합니다.

Localization Manager 주석

Localization Manager 주석

사용자 요청으로 도입된 신규 기능을 살펴보세요! 이제 그리드에 주석 행이 새롭게 추가되었습니다. 리소스 파일에서 가져온 모든 값에 대한 주석을 그리드 내부에서 바로 남길 수 있습니다(또는 기존 주석 편집도 가능합니다). 그뿐 아니라 주석 내보내기 및 가져오기도 가능합니다. 주석을 사용하지 않거나 현재 주석 기능이 필요하지 않다면 Show/Hide comments(주석 표시/숨김) 아이콘을 클릭하여 숨길 수 있습니다.

또한 몇 가지 성능 개선을 통해 그리드의 로딩 및 필터링 속도를 높이고, UI 멈춤 현상을 줄였으며 훨씬 부드러운 스크롤을 지원합니다.

한편 주요 UX 개선 사항은 다음과 같습니다.

  • 오른쪽에서 왼쪽으로 적는 언어 지원 개선
  • 텍스트 에디터 및 리팩터링 대화상자에서 특정 열로 이동 시 정확성 향상
  • 코드 완성 및 대화상자의 검사 기능 개선
코드 서식 지정

코드 서식 지정

코드 서식 지정 기능에서 C# 코드 스타일의 후행 쉼표를 포함하는 새로운 설정을 제공합니다. 이 설정은 ReSharper | Options(옵션) | Code Editing(코드 편집) | C# | Code Style(코드 스타일) | Trailing comma(후행 쉼표)에 있으며 StyleCop SA1413 검사와 호환 가능합니다(일부 코너 케이스 제외).

C++20 지원

더욱 향상된 C++20 지원

C++20 표준은 곧 공식 승인을 받을 예정이며 ReSharper C++에서도 최신 기준에 대한 지원을 추가로 제공합니다. 이제 제한된 유형의 플레이스홀더, 축약형 함수 템플릿 및 열거형 선언 사용을 비롯한 언어 기능이 새롭게 지원됩니다. 또한 ReSharper C++은 C++20 템플릿 구문이 포함된 람다 선언을 업데이트하는 빠른 수정 및 간편한 열거형 선언 사용을 위한 리팩터링을 제공합니다.

게임 개발

게임 개발용 추가 기능

ReSharper C++ 2020.1 버전은 Unreal Engine 지원 업데이트로 이름 변경 리팩터링을 개선하고 가상 파일 경로가 포함된 SpatialOS GDK 및 USF에 대한 지원을 새롭게 선보입니다. 또한 ReSharper C++에서도 Use auto(자동 사용) 검사를 제외하고 콘솔 변수 및 로그 카테고리에 대한 이름 생성 규칙을 따름으로써 Unreal Engine 가이드라인을 철저히 준수합니다.

ReSharper C++ 2020.1 버전은 HLSL 조기 지원을 제공합니다. 비록 조기 지원이지만 기본 코드 강조 표시부터 스마트 코드 완성, 빠른 탐색 등에 이르는 다양한 기능이 포함되어 있습니다.

ReSharper C++의 새로운 기능

다음 중요 호출

dotTrace dotUltimate의 Next Important Call(다음 중요 호출)

이제 Next Important Call(다음 중요 호출) 액션을 활용하여 호출 트리를 탐색할 수 있습니다. dotTrace에서 Ctrl+Shift+오른쪽 화살표를 누르면 추가 분석을 위해 연관성이 가장 높은 노드로 이동합니다(예: 실행 시간이 높은 노드).

이 기능은 dotTrace Standalone 버전(성능 뷰어 및 타임라인 뷰어), Visual Studio, JetBrains Rider에서 제공됩니다.

dotTrace 2020.1의 새로운 기능

Nullable 참조 유형 지원

dotPeek의 Nullable 참조 유형 지원

이번 릴리스에서는 C# 언어 기능 지원이 향상되었습니다.

  • 디컴파일러에서 null 가능 참조 타입(NRT)이 지원됩니다. 단 메서드 본문이 아닌 선언에서만 사용할 수 있습니다.
  • 인터페이스기본 멤버Auto-Implemented Property Field-Targeted(자동 구현 속성 필드 대상) 속성을 디컴파일하는 기능이 추가되었습니다. 
  • tuple 구성 요소 이름의 디컴파일 기능이 개선되었습니다.

dotPeek 2020.1의 새로운 기능

다운로드

30일 무료 평가 이용 가능