RubyMine 2023.3의 새로운 기능

향상된 AI Assistant 지원, Rails 애플리케이션 및 엔진에 대한 사용자 지정 경로, Rails 7.1의 엄격한 locals에 대한 코드 분석 기능, RBS의 추가 선언, 디버거 타입 렌더러 업데이트, 서버 모드의 RuboCop, Brakeman 코드 검사 등.

AI Assistant 정식 출시

JetBrains의 AI Assistant가 이제 JetBrains IDE에서 생산성을 높이기 위한 여러 가지 새롭고 향상된 기능으로 정식 출시되었습니다.

AI-generated name suggestions

AI로 생성된 이름 제안 지원

이제 Ruby 코드의 지역 변수 및 매개변수에 대해 AI가 생성한 이름 제안을 사용할 수 있습니다. 이 액션은 Rename(이름 변경) 리팩터링을 인라인으로 사용할 때 이용할 수 있습니다. 이름 제안을 사용하려면 Settings(설정) | Tools(도구) | AI Assistant에서 Provide AI-generated name suggestions(AI로 생성된 이름 제안 제공) 체크박스를 선택하세요.

AI assistant context

향상된 Ruby 컨텍스트

Ruby 컨텍스트와 LLM이 코드베이스를 분석하는 방식을 계속해서 개선하고 있습니다. 이러한 변경 사항은 AI Assistant가 문서를 생성하고, Ruby 코드를 설명하고, 파일 내용을 인식하는 방식 등에 영향을 미칩니다.

유닛 테스트 생성

유닛 테스트 생성

AI Assistant를 사용하면 Ruby 또는 Rails 애플리케이션에서 public 메서드에 대한 테스트를 쉽게 생성할 수 있습니다. 테스트할 메서드를 선택하고 macOS에서는 ⌥ + Enter를, Windows에서는 Alt + Enter를 누릅니다. 컨텍스트 메뉴에서 AI Actions(AI 액션)을 선택한 다음, Generate Unit Tests(유닛 테스트 생성)를 선택합니다.

JetBrains AI Service 구독을 하는 경우 RubyMine의 AI Assistant를 추가 기능으로 사용할 수 있습니다.

Rails

Custom paths for Rails

Rails 애플리케이션 및 엔진을 위한 사용자 지정 경로

Rails 애플리케이션 및 엔진에서 사용자 지정 경로를 사용하는 경우, RubyMine이 이를 인식합니다. IDE는 app, app/controllersapp/models와 같은 디폴트 경로 외에도 구성 시 프로젝트의 다른 위치도 인식합니다. 이를 통해 기본 구조를 재정의하면서도 RubyMine의 코드 분석 기능을 활용할 수 있습니다. 사용자 지정 경로를 설정하려면 Settings(설정) | Languages & Frameworks(언어 및 프레임워크)| Rails | Paths(경로)로 이동합니다.

Rails 경로 자동 가져오기

Rails 경로 자동 가져오기

Rails 애플리케이션 내에서 사용자 지정 경로를 자동으로 감지하는 새로운 옵션을 구현했습니다. 프로젝트를 열 때마다 RubyMine은 백그라운드에서 Rails 경로 구성을 가져오려고 시도합니다.

Code insight for elements outside default location

디폴트 위치 외에 저장된 모델, 컨트롤러 및 메일러에 대한 코드 분석 기능

탐색 및 타입 지원과 같이 즐겨 사용하는 모든 코드 분석 기능이 이제 모델, 컨트롤러 및 메일러가 디폴트 디렉터리 외부에 있더라도 작동합니다.

Strict locals

Rails 7.1 엄격한 locals를 위한 코드 분석 기능

이제 RubyMine은 엄격한 locals에 대한 해결, 코드 완성, Find Usages(사용 위치 찾기), Rename(이름 변경) 및 탐색 기능을 지원합니다.

타입 추론

Type provision for self-type bindings

블록 내 사용자 지정 self 타입에 대한 타입 제공

이제 RubyMine에서는 RBS에서 Ruby로 블록 self 타입의 사용자 지정을 지원합니다. 이 기능은 DSL에 유용하며 RubyMine이 DSL을 인식하는 데 도움을 주어 코드 분석 능력을 향상시킵니다.

Annotation to specify self-type of blocks

블록의 self 타입을 지정하는 사용자 지정 어노테이션

이제 YARD와 유사한 주석을 활용하여 블록 내에서 직접 블록의 self 타입을 명시적으로 나타낼 수 있습니다.

Extra declarations from RBS

RBS의 추가 선언 지원

Ruby 파일에 RBS의 추가 선언이 없는 경우 이를 인식하기 위한 기본 지원을 구현했습니다. 이를 통해 코드 완성과 기타 RubyMine 기능에서 이러한 선언이 계속 표시되므로, 리플렉션을 광범위하게 사용하는 프로젝트에 특히 유용합니다. 이 기능은 클래스, 모듈, 상수, 메서드 및 변수에 사용할 수 있습니다.

디버거

Debugger type renderers

디버거 타입 렌더러 업데이트

타입 렌더러에 변경 사항을 적용하기 위해 더 이상 디버거를 다시 시작할 필요가 없습니다. 간단히 Apply(적용) 버튼을 클릭하기만 하면 RubyMine이 이를 즉시 다시 로드합니다.

도구 및 라이브러리

Rubocop server mode

서버 모드의 RuboCop

RubyMine은 서버 모드에서 자동으로 RuboCop 실행을 지원합니다. 이 기능이 작동하려면 다음 요구 사항이 충족되어야 합니다.

  • Linux 또는 MacOS
  • 로컬 Ruby MRI 2.3 이상
  • RuboCop 1.31 이상
Brakeman

Brakeman 코드 검사

이제 RubyMine 내에서 Brakeman의 인사이트를 사용자 친화적인 형식으로 편리하게 확인할 수 있습니다. Brakeman의 문서, 신뢰도 지표 등에 쉽게 액세스하여 보안 문제를 즉시 해결하세요. brakeman gem이 설치되어 있는지 확인한 다음, Code(코드) | Analyze Code(코드 분석) | Run inspection by name(이름별로 검사 실행)으로 이동하여 분석을 실행합니다.

rspec-parameterized

rspec-parameterized를 사용한 매개변수화된 spec

RubyMine은 인식, 해결 및 코드 완성 제안을 포함하여 RSpec::Parameterized 구문에 대한 포괄적인 지원을 제공합니다. 또한 테스트 경험을 향상시키기 위해 실행/디버그 구성을 구현했습니다.

let_it_be support

let_it_be를 사용한 픽스처 선언

let_it_be 블록을 사용하여 RSpec 테스트에 픽스처 선언에 대한 지원을 추가했습니다. 여기에는 변수 확인, 구문 강조 표시, before_all에 대한 do 블록 삽입의 자동 처리 등의 기능이 포함됩니다. 이 기능을 사용하려면 test-prof gem을 설치해야 합니다.