이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

Visual Studio Code에서의 Ruby

Ruby는 단순성과 생산성으로 알려진 동적 오픈 소스 프로그래밍 언어입니다. 표현력이 풍부하고 우아한 구문을 통해 개발자의 행복을 추구하는 것이 Ruby 철학의 일부입니다. 웹 개발에 다양한 프레임워크와 함께 자주 사용되며, 프로토타입 구축 시 빠른 반복을 가능하게 하는 스크립팅에도 활용됩니다.

이 주제에서는 Ruby LSP 확장을 사용하여 Visual Studio Code 내에서 Ruby를 설정하고 사용하는 방법에 대해 자세히 알아봅니다.

Ruby extension banner

설치

버전 관리자를 통해 Ruby 설치

Ruby는 일부 운영 체제(macOS 및 일부 Linux 배포판)에 기본적으로 설치되어 있지만, macOS 및 Linux에서는 rbenv와 같은 최신 Ruby 버전에 액세스하기 위해 버전 관리자를 사용하는 것을 권장하며, Windows에서는 rbenv on Windows를 사용합니다. 플랫폼에 맞는 설치 안내를 따르십시오.

참고: 컴퓨터에 새로운 도구 세트를 설치할 때와 마찬가지로, 플랫폼의 PATH 변수에 업데이트된 도구 세트 위치를 사용하려면 터미널/명령 프롬프트 및 VS Code 인스턴스를 다시 시작해야 합니다.

VS Code에서 Ruby LSP 확장 설치

VS Code 내에서 확장 보기(⇧⌘X (Windows, Linux Ctrl+Shift+X))를 통해 Ruby LSP 확장을 찾아 설치하고 'Ruby LSP'를 검색할 수 있습니다.

Ruby LSP extension in the Extensions view

이 주제에서는 Ruby LSP의 많은 기능을 다루지만, 확장 문서저장소도 참조할 수 있습니다.

설치 확인

설치 후 상태 표시줄의 언어 상태 항목을 확인하여 Ruby LSP 서버의 상태를 확인합니다. 버전 관리자가 구성된 경우 프로젝트에 대한 올바른 Ruby 버전이 표시되어야 합니다. 서버 상태는 '시작 중' 또는 '실행 중'으로 표시되어야 하며, 오류는 표시되지 않아야 합니다.

Ruby LSP language status center

확장은 언어 서버 gem ruby-lsp를 포함하는 사용자 지정 번들을 자동으로 생성하는 .ruby-lsp 폴더를 생성합니다. 별도의 구성은 필요하지 않습니다.

기본적으로 이 확장은 사용 중인 Ruby 버전 관리자를 자동으로 감지하려고 시도하며 올바른 버전과 경로를 사용합니다. 해당 동작을 사용자 지정하려면 사용자 설정에서 다음 구성을 설정하십시오.

{
  "rubyLsp.rubyVersionManager": {
    "identifier": "rbenv"
  }
}

이 확장은 ruby-lsp 언어 서버 gem을 주기적으로 자동으로 업데이트하려고 시도합니다. 강제로 업데이트하려면 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))를 사용하여 Ruby LSP: Update language server gem을 실행하십시오.

문제가 발생하는 경우, 다음 단계는 문제 해결 섹션을 참조하십시오.

주요 기능

탐색 및 IntelliSense

Ruby LSP는 정의로 이동, 호버, 작업 영역 기호, 문서 기호, 완성 및 시그니처 도움과 같은 여러 탐색 및 IntelliSense 관련 기능을 제공합니다.

VS Code에서 소스 코드를 빠르게 이동하는 방법에 대해 자세히 알아보려면 코드 탐색을 확인하십시오.

인라인 힌트

Ruby LSP는 코드에서 추론되거나 암시적인 값에 대한 유용한 정보를 표시할 수 있습니다. 아래 예시에서 비어 있는 rescue 호출에서 복구되는 암시적 예외 클래스로 StandardError가 표시되는 것을 볼 수 있습니다.

Ruby program with inlay hints displayed

인라인 힌트는 코드를 이해하는 데 도움이 될 수 있지만, 편집기 > 인라인 힌트: 사용 설정(editor.inlayHints.enabled)을 통해 이 기능을 비활성화하거나 Ruby LSP에 대해서만 이 기능을 비활성화하려면 다음을 사용할 수 있습니다.

"rubyLsp.enabledFeatures": {
    "inlayHint": false,
}

의미론적 구문 강조

Ruby LSP는 프로젝트 소스 코드에 대한 풍부한 이해를 바탕으로 의미론적 구문 강조 표시 및 스타일링을 사용할 수 있습니다.

예를 들어, 다음과 같은 내용을 강조 표시할 수 있습니다.

  • 로컬 변수와 혼동하지 않고 일관되게 메서드 호출을 강조 표시합니다.
  • 존재하는 범위 내에서 일관되게 로컬 인자(메서드, 블록 또는 람다 인자와 같은)를 강조 표시합니다.

Ruby LSP semantic highlighting

참고: 이 스크린샷은 Ruby 확장 팩에 포함된 Spinel 테마를 사용하고 있습니다. 테마는 Ruby LSP가 제공하는 정보를 사용하여 Ruby 파일에 대한 풍부한 강조 표시를 제공해야 합니다.

이 기능을 사용하려면 편집기에서 의미론적 강조 표시가 활성화되어야 합니다.

"editor.semanticHighlighting.enabled": true,

린트 및 포맷

기본적으로 Ruby LSP는 RuboCop과의 통합을 통해 린트 및 포맷을 제공합니다. ⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I)를 사용하거나 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P)) 또는 편집기의 컨텍스트 메뉴에서 문서 포맷 명령을 실행하여 Ruby 파일을 포맷할 수 있습니다.

프로젝트에서 RuboCop를 사용하지 않는 경우, Ruby LSP는 SyntaxTree를 사용하여 파일을 포맷합니다.

Linting a Ruby file

작업 중에 Ruby 코드를 자동으로 올바르게 포맷하려면 저장 시마다 포맷터를 실행(편집기: 저장 시 포맷)할 수도 있습니다. 이를 위해 저장 시 포맷을 활성화해야 합니다.

"editor.formatOnSave": true

Ruby LSP 확장은 형식화 중 자동 완성 기능도 제공합니다. 예를 들어, 주석 줄을 자동으로 계속 이어주고 end 토큰, 파이프 또는 문자열 보간 중괄호를 자동으로 닫아줍니다. 형식화 중 자동 완성 기능을 사용하려면 편집기에서 다음과 같이 활성화되었는지 확인하십시오.

"editor.formatOnType": true

빠른 수정

린터가 소스 코드에서 오류 및 경고를 발견하면, Ruby LSP는 종종 편집기에서 전구 호버를 통해 사용할 수 있는 제안된 빠른 수정(코드 동작이라고도 함)을 제공할 수 있습니다. ⌘. (Windows, Linux Ctrl+.)를 사용하여 사용 가능한 빠른 수정을 빠르게 열 수 있습니다.

Quick Fixes for linting violations

또한 기본적으로 활성화된 editor.codeActionWidget.includeNearbyQuickFixes 설정은 커서 위치에 관계없이 ⌘. (Windows, Linux Ctrl+.) (명령 ID editor.action.quickFix)에서 가장 가까운 빠른 수정을 활성화합니다.

이 명령은 리팩토링되거나 빠른 수정을 통해 수정될 소스 코드를 강조 표시합니다. 일반 코드 작업 및 수정이 아닌 리팩토링은 여전히 커서 위치에서 활성화할 수 있습니다.

리팩터링

빠른 수정 외에도 Ruby LSP는 코드 동작을 통해 리팩터링 옵션도 제공합니다. 예를 들어, Ruby 표현식을 한 번의 클릭으로 로컬 변수로 추출할 수 있습니다.

Refactor extract to variable

디버깅

Ruby LSP 확장은 디버그 gem(Ruby의 공식 디버거)을 사용하여 디버깅을 지원합니다. 또는 개발자는 VS Code RDBG 확장을 설치하여 디버깅 기능을 사용할 수도 있습니다.

다음 문서는 Ruby LSP의 디버거 클라이언트에 대한 것입니다. RDBG 디버거 클라이언트 설정 방법에 대한 지침은 RDBG의 README를 참조하십시오.

테스트 디버깅

Ruby LSP는 단위 테스트 위에 CodeLens 버튼을 추가하여 테스트 탐색기에서 예제를 실행하거나 새 터미널에서 실행하거나 디버거를 시작할 수 있습니다. 이러한 용도로는 구성이 필요하지 않습니다.

Test running code lenses

실행 작업을 통한 디버깅

실행 작업을 통해 디버거를 사용하려면 launch.json 파일에 디버깅 구성을 만들어야 합니다. 이 구성을 통해 실행할 프로그램을 구성할 수 있습니다.

Ruby 프로그램에 대한 launch.json 생성 방법

  1. 디버그 보기(⇧⌘D (Windows, Linux Ctrl+Shift+D))에서 launch.json 파일 생성 링크를 선택합니다.
  2. 그러면 여러 기본 실행 구성 유형이 포함된 드롭다운이 표시됩니다. 첫 번째 옵션을 선택할 수 있지만, 더 많은 구성을 추가할 것입니다.
  3. 이제 생성된 .vscode/launch.json 파일을 편집하여 Ruby 프로그램을 디버깅하기 위해 실행하는 더 많은 방법을 추가할 수 있습니다.

{
  "version": "0.2.0",
  "configurations": [
    // Launch the debugger for any given program. In this case, it will run the current file using Ruby
    {
      "type": "ruby_lsp",
      "name": "Debug",
      "request": "launch",
      "program": "ruby ${file}"
    },
    // Launch the debugger for the current test file
    {
      "type": "ruby_lsp",
      "request": "launch",
      "name": "Debug test file",
      "program": "ruby -Itest ${relativeFile}"
    },
    // Attach the debugger client to an existing Ruby process that has already been launched with the debugger
    // server
    {
      "type": "ruby_lsp",
      "request": "attach",
      "name": "Attach to existing server"
    }
  ]
}

실행 구성을 추가한 후 중단점을 추가하고 실행 작업을 실행하여 Ruby 프로그램을 디버깅할 수 있습니다.

  1. Ruby 파일을 열고 편집기의 왼쪽 여백을 클릭하여 중단점을 설정합니다. 빨간색 점으로 표시되어야 합니다.

    Red breakpoint dot in the left gutter of the editor

  2. 실행 및 디버그에서 원하는 작업을 선택하고 디버그 시작 버튼(기본 바로 가기 키 F5)을 클릭하여 디버깅을 시작합니다.

    Debug session stopped at breakpoint

다음 단계

이것은 VS Code 내 Ruby LSP 확장 기능에 대한 간략한 개요였습니다. 자세한 내용은 Ruby LSP 문서에 제공된 세부 정보와 특정 VS Code 편집기 구성 조정 방법을 포함하여 참조하십시오.

Ruby LSP 확장의 최신 기능/버그 수정에 대한 최신 정보를 유지하려면 서버 및 VS Code 확장 구현이 모두 포함된 모노레포의 릴리스 페이지를 참조하십시오.

문제가 있거나 기능 요청이 있는 경우, Ruby LSP의 GitHub 저장소에 자유롭게 보고해 주십시오.

VS Code에 대해 더 알고 싶으시면 다음 주제를 시도해 보세요.

© . This site is unofficial and not affiliated with Microsoft.