ReSharper 2024.2의 새로운 기능

ReSharper 2024.2에서는 ref struct 인터페이스 구현, 새로운 \e 이스케이프 시퀀스 및 params 제어자 리팩터링과 같은 C# 13 기능에 대한 조기 지원을 포함해 .NET 9 Preview SDK 지원을 제공합니다. C++ 지원에는 C++23 기능, 툴팁에 추가된 타입 레이아웃 정보 및 개선된 Unreal Engine 프로젝트 지원이 포함됩니다. 이번 릴리스에는 한국어, 중국어 및 일본어로의 첫 현지화, 성능 향상을 위한 비동기식 입력, 향상된 언어 모델을 통한 AI Assistant 개선, 에디터 내 코드 제안 및 새로운 Explain with AI(AI로 설명) 기능이 포함됩니다.

다운로드

30일 무료 평가판 이용 가능

.NET 9 Preview SDK 지원

ReSharper 2024.2에서는 이스케이프 문자, params 제어자 리팩터링, ref struct 인터페이스와 같은 C# 13 기능에 대한 조기 지원을 포함해 .NET 9 Preview SDK 지원을 제공합니다.

C# 지원

ReSharper의 최신 릴리스에서는 C# 12 기능 지원이 강화되어 기본 생성자가 지원되고, 컬렉션 표현식과 배열 생성 및 컬렉션 타입 변환을 위한 컨텍스트 액션이 개선되었습니다. 여기에 더해서 ReSharper 2024.2부터 C# 13의 조기 지원이 추가되어 ref struct 인터페이스 구현, 새로운 \e 이스케이프 시퀀스 및 params 제어자 리팩터링을 사용할 수 있습니다.

이번 업데이트에는 다음도 포함됩니다.

  • 구조체 타입의 동등성 분석 개선
  • 분기하는 구문에서 중복을 줄이기 위한 Extract common code(공통 코드 추출) 검사.
  • ToString() 서식 지정자 코드 완성에서 문화권 형식으로 미리보기.
  • 취약한 C 스타일의 형 변환을 명시적인 타입 어노테이션으로 대체하는 형 변환식 분석.

ReSharper 및 Rider 2024.2에 도입된 C# 지원에 대한 최신 업데이트를 알아보려면 이 블로그 게시물을 확인하세요.

C++ 지원

C++ 지원에서 주목할 만한 개선 사항은 다음과 같습니다.

  • 다차원 첨자 연산자, #elifdef#elifndef 전처리기 지시문과 [[assume]] 속성과 같은 추가적인 C++23 기능을 지원합니다.
  • 툴팁과 빠른 문서 팝업에 이제 크기, 정렬, 오프셋 및 안쪽 여백 등 클래스와 클래스 필드의 타입 레이아웃에 관한 세부 정보가 표시됩니다.
  • Unreal Engine 프로젝트에서 ReSharper는 구조체 특성을 인식하여 구조체에 필요한 메서드가 있는지 확인하고 누락된 경우 이를 빠르게 생성합니다. 새로운 검사가 누락된 기본 클래스 메서드 호출을 탐지합니다.
  • 파일의 이름을 변경할 때 관련된 파일과 타입의 이름도 변경하는 옵션이 Rename(이름변경) 리팩터링에 추가됩니다.
  • 코드 분석 개선 사항에는 Clang-Tidy 18 업데이트와 IWYU pragma 지원이 포함됩니다.

ReSharper C++ 2024.2의 새로운 기능에서 C++ 업데이트에 대해 자세히 알아보세요.

현지화

ReSharper 2024.2에서 한국어, 중국어, 일본어 현지화를 처음으로 선보입니다! 이 단계에서는 부분적으로 현지화된 UI, 코드 검사, 도구 창 및 알림을 사용할 수 있습니다. ReSharper를 현지화하려면, ReSharper에서 Options(옵션) | Environment(환경) | General(일반) | Localization(현지화) | Interface language(인터페이스 언어)로 이동한 다음 드롭다운 목록에서 원하는 옵션을 선택하세요.

또는 Extension Manager(확장 프로그램 관리자)에서 현지화 플러그인을 설치할 수도 있습니다. 방법은 여기에서 확인할 수 있습니다.

성능

비동기식 입력 활성화

비동기식 입력은 ReSharper를 Visual Studio와 별개의 프로세스에서 실행되도록 만들어 ReSharper 성능을 개선하기 위한 노력의 일환입니다. ReSharper 2024.2는 이 중요한 변경 사항이 적용되는 첫 번째 버전입니다. 내부 테스트 결과에 따르면 비동기식 입력을 사용하면 입력 경험이 더 원활해집니다. 이슈 트래커를 통해 여러분의 생각을 공유해 주세요.

AI Assistant

업데이트된 모델과 컨텍스트 컬렉션

작업에 따라 기존의 GPT 3.5 및 GPT 4 모델이 GPT-4o 및 Google Bison 모델로 업그레이드되었습니다. 또한, 이 새로운 모델을 통해 AI 코드 완성과 AI 채팅을 위한 컨텍스트 컬렉션이 업데이트되어 더 관련성 높은 결과가 제공됩니다.

Ask AI

이제는 더 이상 AI에게 질문이 있을 때마다 AI 채팅을 열지 않아도 됩니다. 간단하게 Ask AI(AI에게 묻기)를 호출하고 질문하면 됩니다.

애디터 내 코드 제안 및 생성

이제 XML 문서를 생성하거나 빈 메서드를 구현할 수 있는 경우, JetBrains AI의 힌트를 클릭 한 번으로(또는 Alt+Enter를 눌러) 확인할 수 있습니다. 즉, 이러한 옵션을 액션 목록에서 수동으로 검색할 필요가 없습니다.

또한, AI가 답변할 때 사용자를 채팅으로 리디렉션하지 않고 에디터 내에서 바로 답합니다. 손쉽게 답변을 검토하고 필요 시에는 재생성하거나 더 나은 결과를 위해 제자리에서 추가 세부 정보를 지정할 수도 있습니다.

AI 코드 완성의 UI/UX 개선

AI 제안의 표시 방식도 개선되어 ReSharper의 AI 여러 줄 코드 완성 제안과 다른 요소가 더 쉽게 구분됩니다. 또한 Shift+Tab을 눌러 결과를 재생성할 수 있습니다.

Rename(이름 변경) 및 Extract method(메서드 추출) 시 AI가 이름 제안

비슷한 심볼이 많은 대형 솔루션에서는 변수와 메서드에 이름을 지정하는 일이 특히 어려울 수 있습니다. 다행히도 메서드의 이름을 변경할 때 AI가 가장 적절한 이름을 제안해 줍니다.

디버그와 DPA에 사용 가능한 Explain with AI(AI로 설명)

이제 현재의 컨텍스트를 벗어나지 않고도 디버그 세션 중에 만나는 예외라면 무엇이든 AI에게 설명해 달라고 요청할 수 있습니다. 예외 옆의 버튼을 누르기만 하면 채팅 내에 설명이 표시됩니다.

또한 동적 프로그램 분석(DPA)에서 식별된 메모리 할당 및 데이터베이스와 관련된 문제도 AI Assistant가 모두 설명할 수 있습니다. DPA에서 문제가 탐지되면, Explain with AI(AI로 설명) 버튼을 누르세요. 코드를 인식하는 AI가 문제의 컨텍스트를 분석하고 설명을 제공한 다음 가능한 수정 방법을 제시합니다. 현재는 메모리와 데이터베이스와 관련된 문제에만 이 기능을 사용할 수 있습니다.

dotMemory

dotUltimate

개선된 인스턴스 검색

Instances(인스턴스) 뷰에 새로운 필터 옵션이 추가되었습니다.

  • 문자열 값으로 검색: 필터 필드에 문자열 값을 입력하면 dotMemory가 일치하는 문자열을 강조 표시합니다. 이를 통해 특정 문자열 인스턴스를 그 내용에 따라 쉽게 찾을 수 있습니다.
  • 문자열 값에 정규식 지원: 정규식을 사용하여 고급 검색을 실행할 수 있습니다. 예를 들어 ^nAsso.{5,}ID$nAssociatedObjectID.nAssociatedObjectID와 일치합니다.
  • 객체 주소로 검색: 이제 메모리 주소를 사용하여 객체 인스턴스를 검색할 수도 있습니다. 이는 특정 객체를 직접 추적할 때 유용합니다.

dotMemory 프로파일러의 개선 사항과 관련된 자세한 내용은 여기에서 확인하세요.

dotTrace

dotUltimate

최신 성능 프로파일링 도구에는 다음이 포함됩니다.

  • 개선된 성능으로 더욱 빨라진 Timeline(타임라인) 스냅샷 처리.
  • 모든 플랫폼에 적용된 dotTrace 뷰어의 새로운 렌더링 엔진.
  • macOS 및 Linux용 독립실행형 버전에 Options(옵션) 창 추가.
  • Windows에서 Timeline(타임라인) 스냅샷에 커널 이벤트가 누락된 문제 수정.
  • 다양한 사소한 개선 사항 및 버그 수정.

dotTrace 프로파일러의 개선 사항과 관련된 자세한 내용은 여기에서 확인하세요.

디컴파일러

일반적인 개선 사항

  • 람다 매개변수: 선택적인 매개변수-배열 형태의 매개변수가 포함된 람다의 디컴파일이 지원되어 디컴파일링된 코드의 가독성과 정확도가 개선되었습니다.
  • 람다상의 속성: 이 도구에서 람다 식에 포함된 속성의 처리가 개선되어 모든 관련 메타데이터가 디컴파일링된 출력에서 정확하게 반영됩니다.
  • 보호된 어셈블리: 보호된 어셈블리를 디컴파일링할지 여부를 지정하는 기능이 추가되어 코드를 더욱 포괄적으로 탐색할 수 있습니다.

빌드 구성 탐지

Assembly Explorer(어셈블리 탐색기) 도구 창이 이제 어셈블리 빌드 구성을 탐지하고 표시하여 어셈블리의 컴파일링 컨텍스트에 관한 더 명확한 인사이트를 제공합니다.

외부 소스 처리

  • SrcSrv 및 SourceLink가 포함된 PDB: 디컴파일러가 이제 SrcSrv 및 SourceLink가 모두 포함된 PDB 파일에서 소스로의 이동을 지원합니다.
  • 전처리기 지시문: 디컴파일러가 타깃 프레임워크나 연결된 어셈블리의 Portable PDB의 전처리기 지시문(예: NET6_0_OR_GREATER)을 올바르게 인식하므로 코드가 정확하게 표시됩니다.
  • Open in Browser(브라우저에서 열기) 액션: 이제 특정 타입의 저장소에 있는 소스 코드나 NuGet 패키지 또는 어셈블리의 저장소로 이동할 수 있습니다.