RailsのコードをVSCodeで読むための設定

Railsの仕様について気になる部分があったのでRails gemのソースコードを読んでみようと思いました。 gemのソースコードVSCodeで読むための設定について調べました。

結論

bundle open gem_name で開くデフォルトエディタをVSCodeに設定すると便利。 設定するには以下の2つを設定する。

bundle open コマンドとは

bundlerに用意されている指定したgemのディレクトリを開くコマンド。 bundle open gem_name でgem_nameが保存されているディレクトリをデフォルトエディタで開きます。 この時、デフォルトエディタは環境変数$EDITOR$BUNDLER_EDITORに指定されたエディタが選択されます。

  • $EDITOR: すべての環境でのデフォルトエディタ
  • $BUNDLER_EDITOR: bundle open コマンドで使用されるデフォルトエディタ、$EDITOR よりも優先度が高い

Bundler: bundle open

設定1: VSCode環境変数設定

  1. VSCodecmd + shift + P でコマンドパレットを開く。
  2. shell と入力してAShell Command: Install 'code' command in PATH を選択。
  3. Code will now prompt with 'osasscript' for Administrator privilleges to install the shell command. と管理者権限を求められるのでOK を選択。
  4. 管理者のパスワードを入力
  5. Shell command 'code' succesfully installed in PATH. と表示され環境変数が追加される。

なお、追加した環境変数を削除する場合はコマンドパレットでshell と入力後、Shell Command: Uninstall 'code' command in PATH を選択し管理者のパスワードを入力すればok。

設定2: bundle openのデフォルトエディタをVSCodeに設定

シェルにzshを使っている場合の設定です。 bundle open 実行時のデフォルトエディタを指定する環境変数$BUNDLER_EDITORcode コマンドを指定します。 ここで$EDITOR に別のエディタを指定しておけばgit commit 等で使用するエディタを別のエディタに指定することもできます。

  1. .zshrcexport BUNDLER_EDITOR='code' を追加。
  2. パスが追加されたかenv コマンドで確認。
# .zshrc

export BUNDLER_EDITOR='code'
$ env | grep EDITOR
EDITOR=vim
BUNDLER_EDITOR=code # ここが追加される

なお、間違って環境変数を追加してしまった場合はunset コマンドで環境変数を削除できます。

$ unset BUNDLER_EDITOR

シェル変数や環境変数を削除するコマンド - Qiita

動作確認

上記の2つの設定で指定したgemをbundle open コマンドで開くようになります。

  • Gemfileが存在するディレクトリか.bundle/ 配下のディレクトリで実行する必要があります。
  • コマンド実行時に初回時のみDo you trust the authors of the files in this folder?VSCodeで開くかどうか聞かれるのでYes, I trust the authors を選択すると指定したgemのディレクトリが開きます。

例) FBCでのi18nのプラクティスのfjord-books_app アプリで使用するRails gemを開く

$ cd fjord-books_app
$ bundle open rails

上記の手順でVSCodeでgemのディレクトリが開けるはずです。

追記: chrome拡張機能 Octotree がめっちゃ便利でした

ここまではエディタでソースコードを開く設定をしましたがソースコードを軽く読むだけならchrome拡張機能を使った方が断然早かったです。 こちらで紹介されているchrome拡張機能 Octotreeがめっちゃ便利です。 GitHubリポジトリをツリー状に表示してくれるというシンプルなものですが階層構造が把握しやすく僕のような初心者にも分かりやすかったです。

Octotree - GitHub code tree - Chrome ウェブストア

まとめ

ソースコードを読みたかっただけなのに設定に時間が掛かってしまった。 できるだけ多くのソースコードを読んで深い知識を学んでいきたい。

参照

Bundler: bundle open

gemのソースコードをVSCodeで開く - Eggshell

シェル変数や環境変数を削除するコマンド - Qiita

Railsコードを読んでみた - Qiita