ReSharper Ultimate 2019.3’의 새로운 기능

ReSharper Ultimate 2019.3에는 새로운 Localization Manager(로컬라이제이션 관리자) 및 Type Name(유형 이름) 힌트가 도입되었으며 C# 8, C++ 20 및 Unreal Engine에 대한 지원이 훨씬 향상되었습니다. 탐색, 코드 스타일, 유닛 테스트가 향상되었으며 이제 ReSharper 및 dotTrace용 명령줄 도구가 Linux 및 macOS에서 작동합니다.

다운로드

30일 무료 평가 이용 가능

로컬라이제이션 관리자

로컬라이제이션 관리자

새로운 Localization Manager(로컬라이제이션 관리자)를 사용하면 솔루션에서 수많은 .resx 파일로 작업을 더 효율적으로 수행할 수 있습니다. .resx 파일에 있는 모든 것을 단일 그리드로 표시하므로 애플리케이션 또는 웹사이트 로컬라이제이션의 현재 상태를 관찰하고 모든 문화권에서 누락된 리소스 값을 빠르게 찾을 수 있습니다.

사용자는 다음 작업을 수행할 수 있습니다.

  • 현지화된 리소스를 추가, 편집, 이름 변경, 검색, 인라인화, 이동 및 안전하게 삭제할 수 있습니다.
  • 현지화된 값이 누락된 모든 리소스를 검색할 수 있습니다.
  • 지금 당장 필요 없는 지역을 숨길 수 있습니다.
  • 누락된 문화의 .resx 파일을 만들 수 있습니다.
  • 셀의 문제점에 대한 자세한 설명이 나온 툴팁을 확인할 수 있습니다.

ReSharper | Windows 또는 Solution Explorer(솔루션 탐색기)의 컨텍스트 메뉴에서 Localization Manager를 확인해 보세요.

자세한 내용은 Localization Manager로 간편해진 로컬라이제이션을 참조하세요.

훨씬 향상된 C# 8 지원

훨씬 향상된 C# 8 지원

새로운 ReSharper 릴리스는 C# 8을 훨씬 더 잘 처리합니다. 현재 다음의 기능이 포함되어 있습니다.

  • notnull 제약 조건을 포함하여 Nullable Reference 유형에 대한 이해 향상
  • 대상 유형의 switch 표현식
  • 기본 인터페이스 메서드 조기 지원
  • 빠른 수정과 함께 제공되는 “Local function can be static”(지역 함수가 정적일 수 있음)이라는 새로운 힌트
  • 솔루션 내 파일, 프로젝트 또는 모든 프로젝트에서 nullable 주석 및 경고를 지원하는 새로운 빠른 수정 기능
  • EnumeratorCancellation 속성을 async 반복자의 CancellationToken 매개변수에 추가하는 새로운 빠른 수정 기능

또한 코드 검사, “Type or type member is never used”(유형 또는 유형 멤버가 사용되지 않음)가 2개의 별도 옵션으로 분리되었습니다. 하나는 유형에 대한 검사인 “Type is never used”(유형이 사용되지 않음), 다른 하나는 유형 멤버에 대한 검사인 “Type member is never used”(유형 멤버가 사용되지 않음)입니다.

코드 생성

코드 생성

Generate(생성) 액션은 C# 8을 자세히 이해하고 있으며 다음 기능을 통해 사용자의 학습을 도와줍니다.

  • 열거형 값을 철저하게 검사하는 새로운 빠른 수정 기능인 Add missing arms(누락된 arm 추가)
  • switch 표현식에서 유형 패턴을 생성하는 새로운 빠른 수정 및 컨텍스트 액션
  • 상등/관계 멤버/비교자를 생성할 때 Nullability 고려

또한 C# 및 VB.NET에 대한 상등 멤버 또는 상등 비교자를 생성할 때 System.HashCode를 사용하여 GetHashCode를 구현하는 새로운 옵션이 있으므로 코드를 더 깔끔하게 만들 수 있습니다.

코드 서식 지정

코드 스타일

이 릴리스에서는 사용자가 오랫동안 기다려온 요청 사항을 하나 더 제공합니다. 이제 C# 이름 지정 설정에서 EditorConfig에서 읽기 및 EditorConfig로 내보내기를 지원합니다.

이 커다란 변화 외에도 코드 스타일을 더 강력하게 제어할 수 있는 몇 가지 소소한 변경 내용도 있습니다.

  • 이니셜라이저 표현식의 유형이 명백하고 명확한 경우에만 명시적 유형 대신 var를 사용하려는 사용자들을 고려하여 이제 ReSharper는 더 “명확한” 사례를 탐지합니다. 또한 Roslyn 동작에 맞는 “호환성” 모드도 있습니다.
  • StyleCop 및 Roslyn과 호환되는 새로운 코드 스타일 옵션이 제공되어 동일한 그룹의 다른 연산자와 중첩된 연산자 그룹에 대해서만 우선순위를 명시하는 괄호를 추가할 수 있습니다. 예를 들어 && 또는 || 중 무엇이 우선하는지 기억 나지 않는 경우 이 옵션을 사용하면 괄호로 우선순위를 명시할 수 있습니다.
  • Comment Code(코드에 주석 추가)에서 이제 기본적으로 주석에 들여쓰기를 추가합니다. 이 기능을 끄려면 “Place comments at first column when commenting out code”(코드에 주석을 추가할 때 첫 번째 열에 주석 배치)라는 새로운 설정을 사용하면 됩니다.
  • Autodetect indent size and value(들여쓰기 크기 및 값 자동 탐지) 설정이 켜져 있을 때 들여쓰기를 설정하는 옵션 페이지에 적절한 알림이 표시됩니다.
  • C# 서식 지정 도구 옵션 페이지에는 Configure formatting(서식 구성)Autodetect formatting(서식 자동 탐지) 기능을 설명하는 알림 툴팁도 있습니다.
크로스 플랫폼 ReSharper 명령줄 도구

크로스 플랫폼 ReSharper 명령줄 도구

사용자들이 Linux에서 호스팅되는 CI에서 ReSharper 명령줄 도구를 실행할 수 있는지 JetBrains에 문의하는 경우가 종종 있었습니다. 오랫동안 저희의 대답은 “아니요. 불가능합니다.”였지만 모든 Windows 전용 부분을 제거하기 위해 열심히 노력한 결과 Linux 및 macOS용 Mono 런타임으로 모든 것을 옮길 수 있게 되었습니다. 걱정하지 마세요. Windows 기반 .NET Framework는 여전히 사용된답니다.

ReSharper 명령줄 도구를 Linux와 macOS에서도 사용할 수 있게 되었다는 기쁜 소식을 알려 드립니다. Windows가 아닌 운영 체제에서도 아무 제약 없이 강력한 ReSharper 코드 분석 기능을 사용할 수 있습니다.

유형 이름 힌트

유형 이름 힌트

ReSharper 2019.1에서 소개한 Parameter Name(매개변수 이름) 및 Code Annotations(코드 주석) 힌트가 마음에 드셨기 바랍니다. 이번 릴리스에서는 여기에서 더 나아가 Type Name Hints(유형 이름힌트)를 마련했습니다. 이러한 힌트는 다음 위치에서 사용할 수 있습니다.

  • 람다의 매개변수
  • 패턴 매칭 및 Turple 구조 분해를 포함한 모든 var 사용 위치
  • LINQ 구문 내의 범위 변수
  • 메서드 호출 체인의 줄 끝
탐색 및 사용 위치 검색

탐색 및 사용 위치 검색

코드에서 특정 참조가 사용되는 위치를 알고 싶을 때가 흔히 있습니다. 오랫동안 참조의 유형 또는 유형 멤버가 있는 모든 위치는 해당 참조에서 “Find dependent code”(종속 코드 검색) 액션을 실행하여 찾을 수 있었습니다. 그러나 여기에는 항상 제한 사항이 있었습니다.

2019.3 릴리스부터는 그러한 제한 중 몇가지를 없앴습니다.

  • Find dependent code가 이제 NuGet 참조에서 작동하며 단지 프로젝트가 아닌 전체 솔루션을 대상으로 실행됩니다.
  • Consuming APIs에서 “Navigate to”(다음으로 이동) 액션을 확장합니다. 이 기능은 특정 유형의 객체를 받는 모든 메서드를 해당 매개변수에 나열하려는 경우 도움이 될 수 있습니다.
  • Find dependent code(종속 코드 검색)Find results(결과 검색) 창에 새로운 필터가 추가되었습니다.
  • 이제 소스 심볼 패키지가 있는 NuGet 패키지의 외부 소스를 탐색할 수 있습니다.
유닛 테스트 업데이트

유닛 테스트 업데이트

Unit Testing(유닛 테스트) 도구 창은 이미 충분히 우수하여 사용자가 기대하는 대부분의 기능을 포함합니다. 그러나 유닛 테스트 목록 표시 방법을 사용자 지정하는 방식은 여전히 더 다양하게 추가할 수 있다고 JetBrains는 생각했습니다.

  • Unit Test Explorer(유닛 테스트 탐색기)Unit Test Session(유닛 테스트 세션) 도구 창에서 새로운 고급 Group by(기준별 그룹 지정) 기능을 사용하여 사용자 지정 그룹을 만들 수 있습니다. 또한 추가된 Duration(기간) 요소를 사용하여 유닛 테스트를 실행하는 데 걸리는 시간을 기준으로 그룹화할 수 있습니다.
  • 유닛 테스트가 2개 이상이고(요즘 흔한 사용 사례) 그 중 일부는 표시하고 싶지 않은 경우 Unit Test Session 도구 창에서 대상 프레임워크별로 유닛 테스트를 필터링할 수 있습니다.
식별자 강조 표시 업데이트

식별자 강조 표시 업데이트

식별자 강조 표시 기능이 완전히 새롭게 작업되었습니다. 코드 강조 표시(Tools(도구) | Options(옵션) | Fonts and Colors(글꼴 및 색상)에서 사용 가능)를 통해 더 정밀하게 표시할 수 있는 다양한 색상 설정을 이용할 수 있습니다. 새로운 색상 설정은 다음과 같습니다.

  • 모든 언어의 엔티티 색상에 대한 일반 섹션
  • C# 색상 전용 설정
  • 다양한 언어 구문에 대한 새로운 색상 설정
기타 기능

기타 기능

  • 새로운 NUnit 검사에서 매개변수화된 유닛 테스트의 개별 매개변수 및 조합된 유닛 테스트를 포함합니다.
  • Parameter Info(매개변수 정보) 팝업을 Tuple에 사용할 수 있습니다.
  • Xamarin 지원에는 x:DataTypeClass 속성 지원과 같은 몇가지 중요한 수정 사항이 적용되었습니다.
  • 새 줄을 삭제하고 새 줄 앞을 삭제하는 코드 입력 지원 기능은 이제 토큰을 분리하거나 서식 규칙에서 요구할 때 공백을 남깁니다.
C++20 지원

C++20 지원

C++20이 모든 기능을 완비하여 C++ 개발자들이 오랫동안 기다려온 다양한 혜택을 제공하기 위해 내년에 공식적으로 출시됩니다. ReSharper C++ 2019.3은 해당 기능 중 이미 많은 부분을 지원하며 추가 분석 및 통찰력 기능으로 지원을 강화합니다.

첫째, 이제 ReSharper C++는 괄호로 묶인 값 목록에서 집계 초기화를 할 수 있고 일부 경우 함수 템플릿을 사용하여 추가 ADL 수행해야 한다는 사실을 압니다.

Concepts가 ReSharper C++ 파서에서 지원될 뿐만 아니라 Rename(이름 변경) 리팩터링 및 Find Usages(사용 위치 검색)도 제공됩니다. 또한 코드 분석 기능 덕분에 Concepts 관련 오류에 대한 자세한 정보도 표시됩니다. 예를 들어 Concepts의 요구 사항이 충족되지 않아 오버로드 해결에 실패하면 툴팁에 모든 세부 정보가 표시됩니다. 한편 ReSharper 2019.3에서는 오버로드 해상도 오류에 대한 세부 정보를 보여주는 툴팁에 색상도 추가했습니다.

최근 올리기 시작한 C++20 및 ReSharper C++에 관한 여러 블로그 게시물에서 새로운 언어 기능과 ReSharper C++에 적용된 항목에 대해 알아볼 수 있습니다.

Unreal Engine 4 지원

Unreal Engine 4 지원

ReSharper C++는 사용자가 Unreal Engine 프로젝트를 개발 중임을 탐지하면 동작을 UE4에 맞게 조정합니다.

UCLASSes용 "new" 접두어 템플릿은 적절한 팩토리 함수 호출(가비지 컬렉터에서 생성된 오브젝트를 등록하는 호출)로 확장됩니다. 또 해당하는 이름을 라이브 템플릿이 제공되어 USTRUCT/UCLASS/UENUM/UENUMCLASS를 빠르게 생성할 수 있습니다.

Unreal Engine의 스마트 포인터(TSharedPtr, TSharedRef, TWeakPtr, TUniquePtr)는 이제 std::shared_ptr/std::unique_ptr과 유사하게 ReSharper C++에서 처리됩니다. 이는 매개변수 정보, 코드 분석, 접미어 코드 완성과 같은 기능이 스마트 포인터에서 작동함을 의미합니다.

마지막으로, UE4 프로젝트의 성능이 약간 개선되었습니다. 예를 들어 UE4 에디터에서 "Refresh Visual Studio Project"(Visual Studio 프로젝트 새로 고침)을 실행한 후에 멈추는 문제가 수정되었습니다.

ReSharper C++의 새로운 기능을 참조하세요.

macOS 및 Linux에서 명령줄 프로파일러 지원

macOS 및 Linux에서 명령줄 프로파일러 지원 dotUltimate

명령줄 프로파일러가 macOS 및 Linux에서 마침내 지원됩니다. dotTrace.sh는 그에 대응하는 Windows 도구와 동일한 기능을 가지며 .tar.gz 아카이브 및 NuGet 패키지로서 배포됩니다.

dotTrace 2019.3의 새로운 기능을 참조하세요.

dotCover 개선 사항 dotUltimate

dotCover 2019.3은 다음과 같은 몇가지 개선 사항을 제공합니다.

  • 모든 운영 체제에서 Unity 2018.3 이상을 지원합니다. Unity 테스트에서 커버리지 분석을 수행하려면 JetBrains Rider를 사용해야 합니다.
  • Microsoft Fake를 지원합니다.
  • Rider 및 Visual Studio에서, 그리고 dotCover 콘솔 도구로 생성된 보고서에서 중첩된 네임스페이스별로 커버리지 결과를 그룹화할 수 있습니다.

dotCover 2019.3의 새로운 기능을 참조하세요.

다운로드

30일 무료 평가 이용 가능