Zed 에디터에서 Ruby LSP 설정 및 활용 가이드

Setting up Zed with Ruby LSP | Andy Waite

작성자
jeff
발행일
2025년 03월 31일

핵심 요약

  • 1 Zed 에디터에서 공식 Ruby 확장 프로그램을 통해 Ruby LSP를 설정하고 활용하는 방법을 상세히 설명합니다.
  • 2 Ruby LSP의 진단(linting), onTypeFormatting 비활성화, 전역/로컬 설정 관리 등 주요 구성 요소를 다룹니다.
  • 3 Zed의 Tasks 기능을 활용한 테스트 실행 및 VS Code 대비 미지원 기능과 해결책을 제시합니다.

도입

최신 고성능 코드 에디터인 Zed는 최근 인공지능 분야의 급속한 발전과 함께 Anthropic과의 긴밀한 협력을 통해 주목받고 있습니다. 이 글은 VS Code 사용자들에게 익숙할 수 있는 Ruby LSP(Language Server Protocol)를 Zed 에디터에서 효과적으로 설정하고 활용하는 방법을 안내합니다. 특히 Ruby 개발 환경을 Zed로 전환하려는 사용자들에게 필요한 Ruby 확장 프로그램 설치부터 LSP 구성, 문제 해결 방안까지 포괄적인 정보를 제공합니다.

Zed 에디터에서 Ruby 개발 환경을 설정하는 과정은 다음과 같습니다.

1. Ruby 지원 설정

  • 공식 Ruby 확장 프로그램 활성화: Zed의 zed: extensions 메뉴를 통해 Vitaly Slobodin이 개발한 공식 Ruby 확장 프로그램을 활성화합니다. 이 확장 프로그램은 Rust로 작성되었으며, Zed의 공식 문서에서 관련 정보를 확인할 수 있습니다.

2. Ruby LSP 구성

  • 기본 언어 서버 변경: Zed는 기본적으로 Solargraph를 Ruby 언어 서버로 사용하지만, Ruby LSP를 선호하는 경우 Zed 설정(settings.json)에서 다음과 같이 변경할 수 있습니다. json { "languages": { "Ruby": { "language_servers": ["ruby-lsp"] } } }
  • 문제 확인: Ruby 파일 열기 후 debug: open language server logs 명령을 통해 Ruby LSP가 정상 작동하는지 확인합니다.
  • 진단(Linting) 활성화: Zed의 풀 진단(pull diagnostics) 지원으로 진단 기능이 정상 작동합니다.
  • onTypeFormatting 비활성화: Ruby LSP의 알려진 문제(블록 인자 | 입력 시 커서 위치 오류)를 해결하기 위해 onTypeFormatting 기능을 비활성화할 수 있습니다. json { "lsp": { "ruby-lsp": { "initialization_options": { "enabledFeatures": { "onTypeFormatting": false } } } } }

3. 전역 vs 로컬 설정

  • 프로젝트별 설정: .zed/settings.json 파일을 통해 프로젝트별 설정을 관리할 수 있습니다. 이는 RuboCop 또는 Standard와 같은 린팅/포맷팅 도구의 다양한 구성에 유용합니다.

4. 테스트 실행

  • Tasks 기능 활용: Zed는 LSP의 Code Lens 기능을 지원하지 않지만, 강력한 Tasks 기능을 사용하여 유사한 테스트 실행 환경을 구축할 수 있습니다. .zed/tasks.json 파일에 다음 예시와 같이 태스크를 추가할 수 있습니다. json [ { "label": "test $ZED_RELATIVE_FILE:$ZED_ROW", "command": "bundle exec rails", "args": ["test", ""$ZED_RELATIVE_FILE:$ZED_ROW""], "tags": ["ruby-test"] } ]

5. 고급 LSP 문제 해결

  • RPC 메시지 확인: debug: language server logs 창에서 RPC 메시지 기능을 활성화하여 언어 서버의 요청 및 응답을 상세히 확인할 수 있습니다.

6. 미지원 기능 및 대안

  • Zed의 LSP 구현: 일부 Ruby LSP 기능은 VS Code 확장 프로그램의 사용자 정의 동작에 의존하거나 Zed의 LSP 사양 구현이 아직 미흡하여 지원되지 않을 수 있습니다.
  • 디버거: rdbg 지원을 위한 PR이 진행 중입니다.
  • 스니펫: Ruby 확장 프로그램에 스니펫 추가 PR이 진행 중입니다.
  • ERB 린팅/포맷팅: Herb(린팅) 및 erb-formatter(포맷팅)를 활용할 수 있습니다.
  • 테스트 토글: zed-test-toggle 확장 프로그램을 사용할 수 있습니다.
  • Sorbet 지원: Ruby 확장 프로그램 v0.9.0부터 내장 지원됩니다.

결론

Zed 에디터는 Ruby LSP와의 통합을 통해 강력한 Ruby 개발 환경을 제공하며, 특히 AI와의 협업 기능을 강점으로 내세우고 있습니다. 비록 VS Code와 비교하여 일부 기능이 아직 미흡하지만, 지속적인 개발과 커뮤니티 기여를 통해 빠르게 발전하고 있습니다. 이 가이드를 통해 Ruby 개발자들이 Zed의 잠재력을 최대한 활용하고, 필요한 경우 문제 해결 및 대체 기능을 통해 효율적인 개발 워크플로우를 구축할 수 있기를 기대합니다. Zed는 현대적인 Ruby 개발 환경을 위한 매력적인 대안이 될 것입니다.

댓글 0

댓글 작성

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

아직 댓글이 없습니다

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