RubyMine 2020.2의 새로운 기능

코드 문제를 검토하는 새로운 방법, 27가지 새로운 인텐션 액션, Liquid 지원, GitHub pull 요청에 대한 완벽한 지원 및 Ruby, Rails, JS, 데이터베이스 도구를 위한 새로운 기능이 다양하게 준비되었습니다.

코드 인사이트

코드 문제를 검토하고 수정하는 새로운 방법

코드 문제를 검토하고 수정하는 새로운 방법

현재 파일의 이슈 수를 표시하는 새로운 위젯이 추가되었습니다. 이 위젯을 클릭하면 해당 이슈 목록이 있는 도구 창이 열립니다. 여기에서 이슈가 포함된 코드로 이동하거나 도구 창에서 바로 이슈를 해결할 수 있습니다.

자세히 알아보기

Liquid 템플릿 언어

Liquid 템플릿 언어에 대한 기본 지원

Liquid 템플릿 언어에 대한 기본 지원

RubyMine 2020.2에는 Liquid 템플릿 언어에 대한 기본 지원이 포함됩니다. IDE는 구문에 문제가 있는지 표시하고 자주 사용하는 구문을 삽입할 수 있도록 라이브 템플릿을 제공하며 코드 스타일 설정에 지정된 요구사항에 따라 코드 서식을 다시 지정합니다.

Liquid 지원에 대해 자세히 알아보기

새로운 스마트 인텐션 액션

코딩 시간을 단축하세요!

RubyMine 2020.2에는 새로운 인텐션 액션이 많이 포함되어 Alt+Enter를 사용해 코드를 빠르게 최적화할 수 있습니다.

삼항 연산자 및 if-else 연산자 뒤집기

삼항 연산자 및 if-else 연산자 뒤집기

Invert 'if-else'('if-else' 반전) 액션을 사용하면 if-else 연산자를 뒤집어 조건을 무효화하고 브랜치를 전환할 수 있습니다. 삼항 연산자의 경우 동일한 방식으로 작동하는 Flip '?:'('?:' 뒤집기) 인텐션 액션이 있습니다.

중첩 된 'if' 문과 bool 표현식 간 전환

중첩된 'if' 문과 bool 표현식 간 전환

Merge nested 'if'(중첩된 'if' 병합) 액션을 사용하여 중첩된 구문을 bool 표현식으로 병합하세요. 이 액션을 실행하려면 표현식의 바깥쪽 if에 캐럿을 배치하세요.

Split into multiple 'ifs'(여러 개의 'if'로 분할)는 반대 액션을 수행하며 부울 연산자에 캐럿을 배치하여 사용할 수 있습니다.

자세히 알아보기

'else/if' 및 'elsif' 문 간 전환

'else/if' 및 'elsif' 문 간 전환

Merge 'else if'('else if' 병합)Split 'elsif'('elsif' 분할) 인텐션 액션을 사용하면 elsif 문을 중첩된 else/if 브랜치로 분할하거나 그 반대로 병합할 수 있습니다.

순차적 'if' 병합/분할

순차적 'if' 병합/분할

Merge/split sequential 'if's(순차적 'if' 병합/분할) 액션을 elsif 또는 if 키워드상에서 사용할 수 있습니다. 이 액션은 두 브랜치 내의 코드가 정확히 동일한 경우 둘을 병합할 것을 제안합니다. 그런 다음, RubyMine이 || 연산자를 사용하여 2개의 조건을 결합하고 필요한 경우 괄호를 추가합니다. Split into multiple 'if'(여러 개의 'if'로 분할) 액션은 반대로 작동합니다.

네임스페이스 확장 또는 평면화

네임스페이스 확장 또는 평면화

이 인텐션 액션은 :: 범위 해결 연산자가 포함된 행을 중첩 모듈로 확장하고 그 반대로도 작동합니다. Flatten namespace(네임스페이스 평면화) 액션은 그 위에 있는 모듈을 평면화합니다.

해시를 키별로 정렬

해시를 키별로 정렬

이 인텐션 액션을 사용해 해시를 키별 알파벳순으로 정렬하세요. 이 액션은 서로 다른 키 유형을 가진 해시에서도 작동합니다. 이 경우 키는 유형별로 그룹화된 후 정렬됩니다.

자세히 알아보기

규칙 명시 괄호 추가/제거

규칙 명시 괄호 추가/제거

Add clarifying parentheses(규칙 명시 괄호 추가) 인텐션 액션은 이항식 및 삼항식에서 작동합니다. 표현식을 평가하는 방법을 명확히 하기 위해 연산자의 우선순위에 의존하는 복잡한 표현식에 괄호를 추가합니다. Remove unnecessary parentheses(불필요한 괄호 제거)를 실행할 수도 있습니다.

자세히 알아보기

숫자 사이의 밑줄 추가/제거

숫자 사이의 밑줄 추가/제거

Add underscores(밑줄 추가) 액션은 가독성을 높이기 위해 큰 수에 밑줄을 추가합니다. 지원되는 유형은 정수/부동/8진수(3자리마다 밑줄 추가) 및 16진수/2진수(4자/자리마다 밑줄 추가)입니다.

밑줄이 포함된 숫자에서는 Remove underscores(밑줄 제거) 액션을 실행할 수 있습니다.

새 지역 변수 삽입

새 지역 변수 삽입

이 인텐션 액션을 사용하면 캐럿이 표현식에 배치될 때 새 지역 변수를 삽입할 수 있습니다.

지역 변수 인라인화

지역 변수 인라인화

이 인텐션 액션은 한 번만 사용되는 변수가 남아 있는 경우 리팩터링을 할 때 유용합니다.

블록 주석 및 줄 주석 간 전환

블록 주석 및 줄 주석 간 전환

이제 블록 주석을 줄 주석으로 또는 그 반대로 변환할 수 있습니다. 단, 블록 주석의 필요에 따라 이러한 액션은 줄의 시작 부분에서 시작하는 주석에만 사용할 수 있습니다.

코드 에디터

접힌 if/while/for 문의 가독성 향상

접힌 if/while/for 문의 가독성 향상

if, while, for 등의 접힌 구문에서 이제 RubyMine은 첫 번째 줄에 사용된 조건 또는 변수를 표시합니다. 이 접근 방식으로 해당 구문을 펼쳐 살펴봐야 하는지 여부를 쉽게 파악할 수 있습니다.

에디터 내 RDoc/YARD 문서 주석 렌더링

에디터에서 RDoc 또는 YARD 문서를 읽으려면 특히 참조 링크 및 이미지와 상호작용해야 할 때 일일이 확인해야 하는 모든 태그 때문에 성가실 수 있습니다. 이러한 이유로 에디터에서 바로 문서를 렌더링할 수 있는 방법을 추가하였습니다.

이 기능은 Preferences(환경 설정)/Settings(설정) | Editor(에디터) | General(일반) | Appearance(모양) | Render documentation comments(문서 주석 렌더링)에서 활성화할 수 있습니다.

Heredoc 주입

Heredoc 주입

이제 RubyMine은 원본 서식과 들여쓰기를 유지하면서 여러 줄 문자열을 정의할 수있는 heredoc 주입을 지원합니다. 이 기능을 HTML 또는 SQL과 같은 코드 조각을 포함시킬 때 사용해보세요.

자세히 알아보기

향상된 메서드 간 탐색

향상된 메서드 간 탐색

이제 인텐션 액션을 실행하거나 여백의 아이콘을 클릭하여 상위 및 재정의 메서드 사이를 탐색할 수 있습니다.

Ruby

시작값 생략 범위 지원

시작값 생략 범위 지원

언제나 그렇듯이 RubyMine은 최신 Ruby 버전을 지원합니다. 예를 들어 RubyMine 2020.2 버전에서는 Ruby 2.7에 도입된 시작값 범위 생략이 지원됩니다.

표준 라이브러리 메서드의 코드 완성 향상

표준 라이브러리 메서드의 코드 완성 향상

이제 RubyMine은 다양한 표준 라이브러리 메서드(Array#sort_by, Hash#each 및 기타 여러 메서드 포함)에 대해 더욱더 정확한 코드 완성을 제안합니다.

이름 지정된 매개변수를 번호 지정된 매개변수로 변환하거나 그 반대로 변환

이름 지정된 매개변수를 번호 지정된 매개변수로 변환하거나 그 반대로 변환

이제 이름 지정된 매개변수를 Ruby 2.7에 도입된 번호 지정된 매개변수로 쉽게 변환할 수 있습니다. 캐럿을 이름 지정된 매개변수 위에 놓고 Alt+Enter를 누른 다음 Convert named parameters to numbered(이름 지정된 매개변수를 번호 지정된 매개변수로 변환) 인텐션 액션을 선택하세요. Convert numbered parameters to named(번호 지정된 매개변수를 이름 지정된 매개변수로 변환) 액션은 반대의 작업을 수행합니다.

자세히 알아보기

attr_accessor/reader/writer를 인스턴스 변수에 추가

attr_accessor/reader/writer를 인스턴스 변수에 추가

새로운 인텐션 액션을 사용하면 속성 accessor, reader, writer를 인스턴스 변수에 쉽게 추가할 수 있습니다. 이렇게 하려면 캐럿을 변수에 배치하고 Alt+Enter를 누르세요.

Rails

lazy 키 확장

lazy 키 확장

이 인텐션 액션은 lazy 키(lazy lookups)를 사용하는 Rails 애플리케이션에서 키를 전체 형식으로 자동 확장합니다. 컨트롤러에 lazy 키가 있는 경우 여러 옵션이 있을 수 있으므로 인텐션에서 어떤 lazy 키로 확장할지 묻는 메시지를 표시할 수 있습니다.

Git

GitHub pull 요청에 대한 완벽한 지원

더 이상 브라우저와 IDE 사이를 전환할 필요가 없습니다. 이제 모든 pull 요청 워크플로를 RubyMine 내에서 완료할 수 있습니다!

2020.2를 사용하면 pull 요청을 탐색, 할당, 관리 및 병합하고, 타임라인 및 인라인 주석을 확인하고, 주석 및 검토를 제출하고, 변경 내용을 수락할 수 있습니다.

GitHub pull 요청 지원 자세히 알아보기

향상된 Git 액션 대화상자

Merge, Pull 및 Rebase Git 대화상자의 시각적 일관성이 향상되고 깔끔해졌습니다. 이 새로운 디자인에서는 어떤 Git 명령어가 실행될지 빠르게 확인할 수 있습니다.

또한 Pull 대화상자에 –rebase 옵션을 추가하고 Merge 대화상자에 –no-verify 옵션을 추가했습니다.

JavaScript 및 TypeScript

JavaScript용 새로운 스마트 인텐션

JavaScript용 새로운 스마트 인텐션

새로운 스마트 인텐션(Alt+Enter)을 사용하면 일부 액션을 더 빠르게 수행할 수 있습니다. 예를 들어 이제 숫자 색인이 있는 for 루프를 forEach 배열 메서드로 빠르게 변환할 수 있습니다. 에디터에서 바로 주석을 렌더링할 수 있어 모든 방해 요소가 최소화되므로 JavaScript 및 TypeScript 파일에서 문서 주석을 살펴보기도 수월해졌습니다.

JavaScript 프로젝트에서 Prettier를 기본 서식 지정 도구로 설정

JavaScript 프로젝트에서 Prettier를 기본 서식 지정 도구로 설정

기본 서식 지정 도구가 아닌 Prettier를 사용해 코드를 깔끔하게 정돈하고 싶으신가요? 이번 업데이트로 이 작업이 예전보다 훨씬 간편해졌습니다. 간단히 새로운 On code reformat(코드 서식을 다시 지정할 때)이라는 체크박스를 선택하기만 하면 사용자가 .js, .ts, .jsx, .tsx 파일의 서식을 다시 지정할 때마다 IDE에서 Prettier를 사용합니다. 기타 파일 유형도 쉽게 추가할 수 있습니다.

자세히 알아보기

동급 최고의 Vue 지원 경험

동급 최고의 Vue 지원 경험

Nuxt.js 지원, Vue용 코드 스타일 설정, TypeScript 프로젝트의 Vue 관련 개선 및 기타 수많은 기능이 작년에 추가되었습니다. 지금까지 진행된 RubyMine의 Vue 지원 중 단연 최고 수준입니다!

자세히 알아보기

데이터베이스 도구

셀 값을 별도의 에디터에서 작업

셀 값을 별도의 에디터에서 작업

이제 셀에 큰 값이 있으면 해당 값을 별도의 패널에서 보거나 편집할 수 있습니다. 오른쪽 툴바를 사용하여 소프트랩 모드를 전환할 수도 있습니다.

새로운 부울 값용 UI

새로운 부울 값용 UI

이제 더 사용자 친화적으로 부울 값을 확인하고 편집할 수 있는 방법이 생겼습니다. true 값은 다른 모든 값과 구별되도록 글머리 기호로 표시됩니다.

편집:

  • 스페이스 키를 누르면 이전과 마찬가지로 값이 전환됩니다.
  • f, t, d, n, g 또는 c를 입력하면 해당 값(false, true, default, null, generated, computed)이 입력됩니다.
  • 다른 문자를 입력하면 가능한 모든 값이 있는 드롭다운 목록이 열립니다.

기타 변경 내용

  • 2020.1 버전에 도입된 ML 지원 코드 완성은 코드 완성 제안의 관련성을 개선하는 데 효과적인 것으로 입증되었습니다. 그래서 2020.2에서 기본적으로 활성화하기로 했습니다.
  • Search Everywhere(전체 검색)에 검색 결과가 새로운 방식으로 표시됩니다. 이 방식에서는 검색어와의 관련성에 따라 항목이 정렬됩니다.
  • RubyMine 2020.2는 Linux 또는 Windows 파일 시스템에 있는 프로젝트로 작업할 수 있도록 WSL2에 설치된 Git을 지원합니다.
  • 이제 여러 도구에 대한 코드 커버리지 보고서를 생성하여 HTML로 내보낼 수 있습니다.
  • SQL 파생 언어인 Google BigQuery가 기본 지원됩니다. RubyMine은 Google BigQuery를 사용하는 경우 해당 쿼리를 올바르게 강조 표시하고 코딩 지원을 제공할 수 있습니다.
  • 이제 코드 완성에서 상위 클래스 또는 모듈의 다른 메서드를 재정의하는 메서드의 전체 유형 이름을 표시합니다. 이에 따라 제안된 메서드의 출처를 더 쉽게 파악할 수 있게 되었습니다.
  • 이제 Ruby 2.7로 Run Anything(무엇이든 실행)에서 IRB 콘솔을 시작할 수 있습니다.
  • 이제 Gemfile에서의 코드 완성은 최신 로컬 버전의 gem만 표시합니다.
  • Array.to_h(), Dir.each() 등의 스텁 메서드에 잘못된 수의 매개변수를 전달하려고 하면 RubyMine에서 경고를 표시합니다.
  • 번호 지정된 매개변수 내 모든 람다에 대해 "ordinary parameter is defined"(일반 매개변수가 정의되었습니다)라는 경고가 추가되었습니다.
  • 활성화된 레코드 관계 체인에서 not 호출에 대한 유형 지원이 추가되었습니다. 이제 where 메서드에 인수가 제공되지 않으면 RubyMine에서 not을 코드 완성으로 제안합니다.
  • 접근성이 개선되어 이제 사용자가 스크린 리더를 사용하도록 설정한 경우 RubyMine에서 접근성 기능을 자동으로 활성화합니다.