최신 고성능 코드 에디터인 Zed는 점차 인기를 얻고 있으며, VS Code의 대안으로 주목받고 있습니다. 이 글은 Zed를 사용하여 Ruby 개발 환경을 구축하는 방법을 안내하며, 특히 Ruby LSP(Language Server Protocol) 통합 및 발생 가능한 문제 해결에 중점을 둡니다. VS Code에서 Ruby LSP를 사용해 온 개발자들을 위해 현재 Zed에서 부족한 기능에 대한 대안도 함께 제시합니다.
Zed에서 Ruby 지원은 공식 Ruby 확장 프로그램을 통해 활성화됩니다. 기본 언어 서버는 Solargraph이나, Ruby LSP를 선호한다면 설정에서 명시합니다. ruby-lsp-rails 등 추가 기능도 활용 가능하며, 설정 변경 시 에디터 재시작이 필요할 수 있습니다.
진단 기능은 Ruby LSP가 오류를 표시하는 중요한 기능이나, 현재 Zed는 pull diagnostics 구현 중입니다. 따라서 RuboCop 사용 시 RuboCop 언어 서버를 진단 기능에 한해 보조적으로 활용하는 방법을 제시합니다. Ruby LSP 진단 비활성화 후 rubocop을 언어 서버 목록에 추가하며, 순서가 포맷팅에 영향을 줄 수 있습니다.
Ruby LSP의 onTypeFormatting 기능은 블록 인자 입력 시 커서 위치 오류를 유발할 수 있어 비활성화가 권장됩니다.
설정은 전역 또는 프로젝트별(.zed/settings.json)로 관리 가능하며, 프로젝트 설정이 전역 설정을 덮어씁니다.
VS Code의 Code Lens 같은 테스트 실행 링크 기능은 Zed에서 미지원이나, 작업(Tasks) 기능을 통해 유사 기능을 구현할 수 있습니다. .zed/tasks.json 설정 예시를 제공합니다. 언어 서버 문제 해결을 위한 고급 디버깅 방법도 언급됩니다.
현재 Zed의 Ruby LSP 지원에서 부족한 기능으로는 Code Lens, 디버거(베타 외), Snippets 등이 있으며, 이는 확장 프로그램 또는 Zed 자체의 미구현 때문입니다. ERB, 테스트 토글, Hotwire, Sorbet 관련 유용한 확장 프로그램도 소개됩니다.
결론적으로, Zed 에디터는 Ruby LSP 통합을 통해 Ruby 개발을 위한 강력한 환경을 제공할 잠재력을 가지고 있습니다. 현재 일부 기능의 제약사항이 있지만, RuboCop 활용 진단 기능, 작업 설정 등의 워크어라운드를 통해 충분히 생산적인 개발 워크플로우를 구축할 수 있습니다. Zed와 Ruby LSP의 지속적인 개발을 통해 향후 더욱 완벽한 Ruby 개발 경험을 기대할 수 있습니다.