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
よりも優先度が高い
設定1: VSCodeの環境変数設定
- VSCodeで
cmd + shift + P
でコマンドパレットを開く。 shell
と入力してAShell Command: Install 'code' command in PATH
を選択。Code will now prompt with 'osasscript' for Administrator privilleges to install the shell command.
と管理者権限を求められるのでOK
を選択。- 管理者のパスワードを入力
Shell command 'code' succesfully installed in PATH.
と表示され環境変数が追加される。
なお、追加した環境変数を削除する場合はコマンドパレットでshell
と入力後、Shell Command: Uninstall 'code' command in PATH
を選択し管理者のパスワードを入力すればok。
設定2: bundle openのデフォルトエディタをVSCodeに設定
シェルにzshを使っている場合の設定です。
bundle open
実行時のデフォルトエディタを指定する環境変数$BUNDLER_EDITOR
にcode
コマンドを指定します。
ここで$EDITOR
に別のエディタを指定しておけばgit commit
等で使用するエディタを別のエディタに指定することもできます。
.zshrc
にexport BUNDLER_EDITOR='code'
を追加。- パスが追加されたか
env
コマンドで確認。
# .zshrc export BUNDLER_EDITOR='code'
$ env | grep EDITOR EDITOR=vim BUNDLER_EDITOR=code # ここが追加される
なお、間違って環境変数を追加してしまった場合はunset
コマンドで環境変数を削除できます。
$ unset BUNDLER_EDITOR
動作確認
上記の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 ウェブストア
まとめ
ソースコードを読みたかっただけなのに設定に時間が掛かってしまった。 できるだけ多くのソースコードを読んで深い知識を学んでいきたい。