Shopifyが出しているRuby LSPのVSCode拡張をrtx(asdf clone)で動かしてみようというのがこの記事。
結論
以下の実行ファイルをasdfという名前にしてPATHの通っているディレクトリに配置すれば動くはず。
#!/bin/bash if [[ "$1" == "exec" ]]; then shift command=$1; shift set - exec $command -- $command "$@" fi exec rtx "$@"
動かない場合はrtxを最新バージョンにするとよさそう。
rtxではエラーになる
Ruby LSPではRubyのバージョンマネージャを利用することを前提に設計されている*1。 プロジェクトごとにRubyのバージョンを変更できるようにする措置であると思われる。 使用できるバージョンマネージャはいくつかあるのだが、(当然のように)rtxは選択できない。 rtx自体、asdfクローンなのだからrtxでもいけるだろ!!っと思い、雑にrtxに流すようなシェルスクリプトを書いたら以下のようなエラーになった。
どうもasdf execとrtx execのコマンドラインの解釈があるようで、前者の場合実行するコマンドの名前を省略することができ、後者の場合実行するコマンド名を含めたフルパスを指定しないといけないようだ。
つまり、 asdf exec ruby -v
をrtxで実行する場合は rtx exec ruby -- ruby -v
にしないといけない。
これをよしなにするのが、前述したスクリプトである。
asdf execの読み替えをうまくやればRuby LSPも正しく起動する。
Ruby LSPを使ってみた感想
まだ動作確認程度しか触っていないが、endキーワードを追加してくれるのは便利だなぁという感じw それ以外にも色々できるようになるっぽいので試していきたい。
*1:noneも選択できる