Ruby on Rails(디버거, Linter, Completion, Formatting)용 VS Code 설정을 위한 전체 가이드

이 문서에서는 Ruby 또는 Ruby on Rails 프로젝트에 대해 Visual Studio Code 디버거 및 언어 서버를 구성하는 방법을 설명합니다. 설정 후에는 RubyMine에서와 같이 Ruby 코드를 디버깅하고 탐색할 수 있지만 무료입니다. :)

동기 부여



Ruby 디버거를 처음 구성하려고 할 때 많은 기사와 자습서를 읽었지만 asdf/rbenv 또는 다른 버전 관리자를 통해 Ruby를 설치했을 때 작업을 완료하는 방법을 찾지 못했습니다. 상대 경로, 터미널 환경, 기존 루비 및 gem 버전과의 충돌 문제.
이를 수정하고 프로젝트를 위한 격리된 환경을 구축해 보겠습니다.

요구 사항



  • VS Code 플러그인 포함 #1 , #2
  • rbenv 또는 asdf, Bundler를 통해 설치된 Ruby.

  • 프로젝트 설정


    종속성



    Gemfile에 추가:

    group :development, :test do
      gem "ruby-debug-ide", require: false
      gem "debase", require: false
      gem 'solargraph', require: false
    end
    


    그리고 실행

    $ bundle install
    


    루비 버전



    프로젝트의 루트에 .ruby-version 파일이 없는 경우 생성합니다.

    $ echo "3.0.2" > .ruby-version
    


    빈스텁



    나중에 매우 유용할 보석용 bintub을 생성합니다.

    $ bundle binstubs bundler ruby-debug-ide solargraph
    


    테스트 라이브러리용 Binstub(예: rspec):

    $ bundle binstubs rspec-core
    


    결국 bin 폴더에 4개의 새 파일이 표시됩니다. rdebug-ide , gdb_wrapper , bundle , rspec 이 파일은 VS Code 구성 파일에 사용됩니다.

    시작 및 설정


    .vscode/launch.json로 복사

    {
      "version": "0.2.0",
      "configurations": [
        {
          "name": "Start rails server",
          "type": "Ruby",
          "request": "launch",
          "cwd": "${workspaceFolder}",
          "program": "${workspaceFolder}/bin/rails",
          "useBundler": true,
          "pathToBundler": "${workspaceFolder}/bin/bundle",
          "showDebuggerOutput": true,
          "pathToRDebugIDE": "/${workspaceFolder}/bin/rdebug-ide",
          "args": ["s"]
        },
        {
          "name": "Run tests",
          "type": "Ruby",
          "request": "launch",
          "cwd": "${workspaceFolder}",
          "program": "${workspaceFolder}/bin/rspec",
          "useBundler": true,
          "pathToBundler": "${workspaceFolder}/bin/bundle",
          "showDebuggerOutput": true,
          "pathToRDebugIDE": "/${workspaceFolder}/bin/rdebug-ide",
          "args": []
        }
      ]
    }
    

    settings.json로 복사

    {
        "solargraph.commandPath": "bin/solargraph",
        "solargraph.formatting": true,
        "editor.formatOnSave": true,
        "solargraph.diagnostics": true,
    }
    


    결과



    디버거, 완성을 위한 언어 서버, 린팅 및 서식을 구성합니다. 우리의 구성은 프로젝트 binstub에만 의존하고 예상대로 작동하며 모든 항목이 프로젝트 폴더에 저장되기 때문에 다른 환경과 충돌하지 않습니다.
    향후에는 구성을 다른 프로젝트로 쉽게 전송할 수 있습니다.

    이 기사가 도움이 되었다면 좋아하는 소셜 미디어에 반응을 추가하고 링크를 게시하면 기쁠 것입니다. 감사합니다!

    좋은 웹페이지 즐겨찾기