RubyMine 2021.3의 새로운 기능

번들로 포함된 RBS 타입 시그니처, 타입 검사 및 RBS 파일에 대한 새로운 검사 기능, 원격 개발 워크플로 지원, UX 개선 등 다양한 기능을 제공합니다.

Ruby 및 RBS

번들로 포함된 RBS 타입 시그니처

이 버전에는 RBS 시그니처가 번들로 제공됩니다. RBS 시그니처가 있으면 RubyMine에서 실시간 타입 검사, 더 정확한 탐색, 검색 및 리팩터링 등과 같은 향상된 코드 지원을 제공할 수 있습니다.

RBS 파일에 대한 새로운 검사

이번 릴리스에서는 RBS 파일에 대한 12가지 새로운 검사를 추가했습니다. RubyMine은 RBS 코드에서 스타일 문제, 사용되지 않는 엔티티, 상속 문제, 부분 선언의 불일치 등을 검사합니다.

RubyMine에서 기본 제공되는 철자 검사기가 이제 RBS 파일에서도 작동합니다.

RBS 기반 매개변수 정보

Parameter Info(매개변수 정보) 팝업(Ctrl+P)에는 메서드 매개변수의 이름과 타입이 표시됩니다. 이제 이 팝업에서 해당하는 RBS 시그니처의 타입 정보(있는 경우)가 사용됩니다.

RBS 파일에 대한 저작권

프로젝트에 저작권으로 보호하려는 RBS 파일이 포함될 수 있습니다. 이때 각 파일에 개별적으로 저작권 표시를 추가하는 대신, 자동으로 RBS 파일의 시작 부분에 저작권 정보를 추가할 수 있습니다.

저장 시 RuboCop 실행

이제 파일이 변경될 때마다 파일 서식을 다시 지정하도록 RuboCop을 구성할 수 있으며 변경 사항은 자동 또는 수동으로 저장됩니다. 이 기능을 사용하려면 Preferences(환경 설정)/Settings(설정)에서 Rubocop을 검색하고 Run ‘rubocop -a’ on save(저장 시 'rubocop -a' 실행) 체크박스를 선택합니다.

타입 검사

RBS 기반 타입 검사를 위한 검사 기능 확장

대입된 값과 RBS에서 가져온 필요 타입 간의 불일치를 찾아낼 수 있도록 여러 가지 새로운 검사를 추가했습니다.

이러한 검사는 상수 타입, 인스턴스 및 클래스 변수, 메서드 및 블록 매개변수, 반환 값, yield 호출에 전달된 인수, 전역 변수를 확인합니다. Preferences(환경 설정)/Settings(설정) | Editor(에디터) | Inspections(검사) | Ruby에서 이러한 검사를 찾을 수 있습니다.

Sorbet 조기 지원

RubyMine은 이제 .rbi 파일의 시그니처를 포함하여 Sorbet 타입 시그니처를 인식합니다. 메서드 인수와 반환 값에 대한 타입 불일치 검사가 Sorbet을 기반으로 작동합니다.

컨텍스트 메뉴에서 Go To(이동) | Type Signature(타입 시그니처)/Associated Declaration(관련 선언) 액션을 사용하여 해당 Ruby 및 RBI 파일 사이를 이동할 수 있습니다. Ctrl+Alt+Home 단축키를 사용할 수도 있습니다.

원격 개발

원격 개발 워크플로 지원

초기 버전의 원격 개발 워크플로가 RubyMine에서 지원됩니다. 이를 통해 전 세계 어디서나 RubyMine 백엔드를 실행하는 원격 시스템에 연결할 수 있습니다. 모든 처리는 강력한 원격 시스템에서 이루어지며 로컬 시스템에 있는 것처럼 원활하게 프로젝트 작업을 수행할 수 있습니다.

사용자 경험

성능 개선 사항

이번 릴리스에서는 코드 에디터의 성능 개선을 위해 노력했습니다. 파일 열기, 입력, 코드 완성 호출, 빠른 수정 적용과 같은 작업이 이제 더 빠르게 작동합니다.

평균적인 크기의 프로젝트 파일에서는 큰 차이를 느끼지 못하더라도 대용량 파일(2,000줄 이상의 코드)로 작업할 때는 차이가 훨씬 분명해집니다.

Bookmarks(북마크) 도구 창

이 버전에서는 북마크의 기능을 새롭게 정비했습니다. 사용자 지정 이름으로 북마크를 만들고 노드로 그룹화할 수 있습니다. 모든 북마크를 이제 새로운 Bookmarks(북마크) 도구 창(Alt+2)에서 찾을 수 있습니다.

Run(실행) 도구 창 분할

이제 Run(실행) 도구 창을 가로 또는 세로로 분할할 수 있습니다. 이 기능은 여러 구성이 실행 중이고 결과를 동시에 확인하려는 경우에 유용할 수 있습니다.

원하는 탭을 강조 표시된 영역으로 끌어다 놓기만 하면 됩니다. 도구 창 분할을 해제하려면 탭을 원래 위치로 드래그하거나 상단 창을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 Unsplit(분할 해제)을 선택하세요.

Show Usages(사용 위치 표시)의 소스 미리보기

이제 사각형 아이콘을 클릭하여 Show Usages(사용 위치 표시) 창(Ctrl+Alt+F7)에서 소스 코드 미리보기를 켤 수 있습니다.

VCS

원격 브랜치에서도 작동하는 Checkout and Rebase onto Current(체크아웃하고 현재 브랜치에 리베이스)

Checkout and Rebase on Current(체크아웃하고 현재 브랜치에 리베이스) 액션을 사용하면 선택한 브랜치를 체크아웃하고 현재 체크아웃된 브랜치상에서 리베이스할 수 있습니다. 지금까지 이 기능은 로컬 브랜치에만 사용할 수 있었습니다. 이번 버전부터는 원격 브랜치에도 이 액션을 적용하는 기능이 추가되었습니다.

새로운 Changes(변경 내용) 도구 창

이 버전부터 RubyMine은 커밋 간의 차이와 커밋 데이터를 에디터 왼쪽에 있는 별도의 Changes(변경 내용) 도구 창에 표시합니다.

이 새로운 도구 창을 열려면 버전 관리 시스템의 Log(로그)으로 이동하여 리비전을 마우스 오른쪽 버튼으로 클릭한 다음 컨텍스트 메뉴에서 Compare with local(로컬과 비교)을 선택합니다.

새로운 Push All up to Here(여기까지의 내용을 모두 푸시) 액션

선택한 커밋까지의 모든 커밋을 푸시할 수 있는 새로운 액션이 추가되었습니다. 이 액션은 일부 커밋은 내보낼 준비가 되었지만 다른 커밋은 아직 진행 중인 경우에 유용할 수 있습니다.

웹 및 프레임워크

향상된 HTML 코드 완성

HTML 파일에서 코드 완성이 작동하는 방식이 개선되었습니다. 이전에는 HTML 파일의 완성 제안이 < 문자를 입력할 때만 표시되었습니다. 이 버전부터는 태그 이름이나 약어를 입력할 때 HTML 파일에 대한 완성 제안도 볼 수 있습니다.

에디터에서 npm 패키지 업데이트

이제 에디터에서 바로 npm 패키지를 최신 버전으로 업데이트할 수 있습니다. package.json 파일을 열고 업데이트하려는 패키지 버전에 캐럿을 놓은 후, Alt+Enter를 누른 다음 Update ‘package name’ to the latest version('패키지 이름'을 최신 버전으로 업데이트)을 선택합니다.

HTTP 클라이언트 개선 사항

바이너리 응답, gRPC 요청, 사용자 지정 파일 또는 디렉터리로의 출력 리디렉션, 텍스트 및 JSON 스트림 지원, 그리고 HTTP 요청 식별자 지원을 추가했습니다.

Space

IDE에서 병합 요청 및 코드 검토

Space에 있는 프로젝트의 경우, 이제 IDE에서 바로 병합 요청 및 코드 검토를 생성할 수 있습니다. 이러한 작업을 호출하려면 Code Reviews(코드 검토) 도구 창의 상단 툴바에서 + 아이콘을 클릭합니다.

파일을 본 것으로 표시

코드 검토에서 아직 검토하지 않은 파일은 파란색 점으로 표시됩니다. 따라서 Space 프로젝트에서 코드 검토를 수행할 때 변경 내용을 놓칠 일이 없습니다.

표시된 항목을 열면 점이 자동으로 사라집니다. 해당 변경 내용을 나중에 검토하려면 컨텍스트 메뉴에서 Mark as Not Viewed(보지 않은 것으로 표시)를 선택할 수 있습니다.

데이터베이스 도구

버전 관리 시스템의 데이터베이스

이제 실제 데이터 소스에서 DDL 데이터 소스를 생성하고, DDL 데이터 소스를 사용하여 실제 데이터 소스를 매핑하며, 어느 방향으로든 이들 데이터 소스를 비교하고 동기화할 수 있습니다.

집계

일정 범위의 셀에 대해 Aggregate(집계) 뷰를 표시하는 기능을 추가했습니다. 뷰를 보려는 셀 범위를 선택한 다음 마우스 오른쪽 버튼으로 클릭하고 Show Aggregate View(집계 뷰 표시)를 선택하기만 하면 됩니다.

새 데이터베이스 Diff 창

이제 새 데이터베이스 Diff 창을 사용하여 두 스키마 또는 객체를 비교할 수 있습니다. 해당 항목을 선택하고 Ctrl+D를 누르기만 하면 됩니다.

첫 번째 행이 헤더임을 자동 탐지

이 버전부터 CSV 파일을 열거나 가져올 때 RubyMine에서 첫 번째 행이 헤더이고 열 이름을 포함하고 있음을 자동으로 탐지합니다.

기타 개선 사항

  • 이제 스크린 리더를 사용하여 프로젝트를 만들 수 있습니다(IDEA-185260).
  • 도구 창 위젯 팝업(IDEA-278151) 및 마우스를 가져갈 때 나타나는 빠른 문서 팝업(IDEA-274143)을 비활성화했습니다.
  • Go To Declaration or Usages(선언 또는 사용 위치로 이동) 팝업 호출 문제를 수정했습니다(IDEA-272536).
  • 보이스오버 포커스와 관련된 몇 가지 문제를 해결했습니다(IDEA-273021).
  • 타입 검사, 일치하지 않는 인수 검사 및 매개변수 정보 액션이 이제 재정의된 메서드의 super 호출에 대해 작동합니다.
  • 다른 매개변수 사이에 있는 RBS 나머지 매개변수(가변 길이 매개변수라고도 함)에 대한 지원을 추가했습니다.
  • 이제 새 여백 아이콘을 사용하여 RBS 파일에서 오버로드된 메서드 사이를 탐색할 수 있습니다.
  • 새 RBS 파일을 만들 때 파일 이름에 :: 기호를 사용하여 주변 모듈을 포함하는 파일을 만들 수 있습니다.
  • 이제 Class#method 서식을 사용하여 Search(검색) | Search(심볼)에서 메서드를 찾을 수 있습니다.
  • RubyMine은 이제 싱글턴 인스턴스 변수 및 속성을 지원하며 해당 항목에 타입 검사와 힌트를 제공합니다.
  • VCS 설정 구조가 더 명확해졌습니다.
  • .js.d.ts 파일 매핑과 관련된 여러 문제를 수정하고 해당 파일 사이를 탐색하기 위한 여백 아이콘을 추가했습니다.
  • npm, ESLint, Mocha 및 Jest에 대한 Node.js 원격 인터프리터 지원을 추가했습니다.
  • JavaScript 파일의 색인 생성 시간을 20% 줄였습니다.
  • 이제 에디터에서 원격 ES6 모듈을 다운로드할 수 있습니다. 가져오기 경로에 캐럿을 배치한 다음 Alt+Enter를 누르고 Download module(모듈 다운로드)을 선택하면 됩니다.
  • 기본 제공 터미널이 Windows의 새로운 ConPTY API를 지원합니다. 이를 터미널의 백엔드로 사용하면 winpty를 기반으로 하는 이전 구현에서 사용자들이 겪었던 몇 가지 문제를 해결하는 데 도움이 됩니다. 또한 터미널에서 24비트 색상도 지원됩니다.
  • 이 버전에서는 기본 제공 터미널에 대한 선행 입력 지원을 추가했습니다. 이제 터미널이 텍스트 수정을 예측할 수 있으며 이 부분을 약간 다른 글꼴로 즉시 표시합니다. 지연 시간이 있음에도 불구하고 IDE가 로컬 시스템에서와 같이 문자를 빠르게 표시할 수 있으므로 이 기능은 원격 시스템에서 작업할 때 유용할 수 있습니다.