Zed 에디터의 Ruby 개발 환경 지원

Ruby | Zed Code Editor Documentation

작성자
jeff
발행일
2025년 08월 30일

핵심 요약

  • 1 Zed의 Ruby 확장 기능은 ERB 파일 지원과 Solargraph, Ruby-LSP 등 다양한 언어 서버를 통합하여 강력한 Ruby 개발 환경을 제공합니다.
  • 2 언어 서버는 Gemfile, 시스템 PATH, 또는 자동 설치를 통해 유연하게 활성화되며, `use_bundler` 설정을 통해 실행 환경을 세밀하게 제어할 수 있습니다.
  • 3 통합된 `rdbg` 디버그 어댑터, Minitest 및 RSpec을 위한 커스텀 테스트 태스크, `erb-formatter`를 통한 ERB 템플릿 포맷팅으로 개발 생산성을 극대화합니다.

도입

Zed 에디터는 Ruby 개발자를 위한 포괄적인 지원을 Ruby 확장 기능을 통해 제공합니다. 이 확장은 단순한 Ruby 코드 편집을 넘어 ERB 파일 지원을 포함하며, 개발 생산성을 높이기 위한 다양한 언어 서버 및 개발 도구를 통합합니다. 본 문서는 Zed에서 Ruby 개발 환경을 설정하고 활용하는 방법에 대한 상세한 지침을 제공하며, 여러 언어 서버와 디버깅, 테스트 및 포맷팅 기능에 대한 개요를 다룹니다.

Zed의 Ruby 언어 서버 지원

Zed의 Ruby 확장 기능은 여러 언어 서버를 지원하여 코드 완성, 진단, 코드 액션 등의 기능을 제공합니다. 주요 지원 언어 서버는 다음과 같습니다.

  • Solargraph: 기본적으로 활성화되어 있으며, 진단 및 포맷팅 기능을 설정으로 활성화할 수 있습니다.
  • Ruby-LSP: Solargraph와 함께 주요 언어 서버로 선택할 수 있으며, initialization_options를 통해 포매터나 린터 등을 구성할 수 있습니다.
  • Rubocop: Ruby를 위한 정적 코드 분석기 및 린터로, 위반 감지 및 자동 수정 기능을 제공합니다. safeAutocorrect 옵션으로 안전하지 않은 자동 수정을 제어할 수 있습니다.
  • Sorbet: Ruby를 위한 정적 타입 검사기로, 점진적 타입 시스템을 활용합니다.
  • Steep: Ruby Signature (RBS) 파일을 활용하는 또 다른 정적 타입 검사기입니다.

언어 서버 활성화 및 구성

언어 서버는 다음 순서에 따라 활성화됩니다.

  1. 프로젝트의 Gemfile에서 발견될 경우 bundle exec를 통해 사용됩니다.
  2. Gemfile에 없을 경우 시스템 PATH에서 실행 파일을 찾습니다.
  3. 두 위치 모두 없을 경우, Ruby 확장 기능이 전역 Gem으로 자동 설치합니다.

use_bundler 설정을 false로 지정하여 Gemfile 검색을 건너뛰고 시스템 실행 파일을 강제로 사용할 수 있습니다.

json { "lsp": { "<SERVER_NAME>": { "settings": { "use_bundler": false } } } }

언어 서버 전환 예시

  • Ruby-LSP 활성화 및 Solargraph/Rubocop 비활성화: "language_servers": ["ruby-lsp", "!solargraph", "!rubocop", "..."]
  • Rubocop 활성화: "language_servers": ["ruby-lsp", "rubocop", "!solargraph", "..."]

Solargraph 및 Ruby-LSP 설정

Solargraph의 포맷팅 및 진단은 기본적으로 비활성화되어 있으므로, initialization_options를 통해 활성화할 수 있습니다. Ruby-LSP 또한 initialization_options를 통해 formatterlinters와 같은 기능을 구성할 수 있으며, 프로젝트별 설정도 가능합니다.

Tailwind CSS 통합

Ruby 및 ERB 파일에서 Tailwind CSS 언어 서버를 사용하려면 includeLanguagesclassRegex 설정을 추가해야 합니다. 이를 통해 ERB 파일의 HTML 속성이나 class: 키 뒤의 Ruby/ERB 문자열에서 Tailwind CSS 클래스 자동 완성을 지원합니다.

테스트 및 디버깅

  • 테스트: tasks.json 파일을 통해 Minitest, RSpec 등 다양한 테스트 프레임워크에 대한 사용자 정의 태스크를 설정하여 에디터 내에서 테스트를 실행할 수 있습니다.
  • 디버깅: rdbg 디버그 어댑터는 debug Gem을 사용하여 Ruby 코드 디버깅을 지원합니다. 현재 파일 디버깅이나 Rails 서버 디버깅과 같은 설정을 debug.json에 추가할 수 있습니다.

ERB 템플릿 포맷팅

erb-formatter Gem을 활용하여 ERB 템플릿을 포맷팅할 수 있도록 HTML/ERB 언어에 대한 외부 포매터를 설정할 수 있습니다.

결론

Zed 에디터는 Ruby 개발자를 위해 포괄적이고 유연한 개발 환경을 제공합니다. 다양한 언어 서버 지원을 통해 코드 작성 및 분석의 효율성을 높이며, 세밀한 설정을 통해 개발자의 특정 요구사항에 맞춰 환경을 최적화할 수 있습니다. 또한, 통합된 테스트 및 디버깅 기능, ERB 템플릿 포맷팅, 그리고 Tailwind CSS와 같은 추가적인 도구와의 연동은 Zed를 Ruby 개발을 위한 강력한 플랫폼으로 만듭니다. 이러한 기능들은 Ruby 개발 워크플로우를 간소화하고 생산성을 향상시키는 데 크게 기여할 것입니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!