vscode-rubocop 0.2.0 をリリースした

RuboCop を標準搭載した LSP 向けの VS Code 拡張である vscode-rubocop の 0.2.0 をリリースしました。いわゆる肉の日リリースです。

marketplace.visualstudio.com

Ruby 製の言語サーバーをターゲットにした、LSP クライアントを見てみると、どうも YJIT を有効にするようにしていることに気がつきました。

LSP クライアントは LSP サーバーを起動して、LSP サーバーは起動したままなので高速なわけですが、それなら YJIT を有効にしておけば速いのではというのは、自然な発想になっていそう。

というわけで vscode-rubocop でも世の中のムーブメントに乗って、デフォルトで YJIT を有効にした設定を追加しました。

裏側でやっていることは LSP クライアントから LSP サーバーの起動コマンドに環境変数 RUBY_YJIT_ENABLE=true をつけることで、LSP サーバーを YJIT 有効な状態で起動しているだけです。論理的には LSP サーバー側で RubyVM::YJIT.enabled? による確認をすると true が返る仕組み。

いろいろと言っていますが、要は vscode-rubocop 0.2.0 へのアップグレード、あるいはインストールをするとデフォルトで RuboCop 標準の LSP サーバーが YJIT で起動するということ (もちろん YJIT が導入された Ruby 3.1 以上の場合に限る) 。

この VS Code 拡張についてもう少し概念的な話を書いておくと、Ruby 環境に対する VS Code 拡張の LSP はいくつか出ていますが、vscode-rubocop が目指すのはいまのところ以下の3つとしています。

当面は vscode-rubocop 0.5.0 くらいまでロードマップのイメージができているので、RuboCop の言語サーバー機能とあわせて、たびたびアップデートしていくと思います。お楽しみに。

RuboCop に標準搭載した LSP の基本については以下を参照してください。

koic.hatenablog.com

そして偶然ですがこの日、Visual Studio Marketplace の VS Code 拡張でトレンド入りしていた記念スクショです。

しかし、ユーザーの利便性を考えて VS Code 拡張の LSP クライアントを開発をしていたら、VS Code の推し活みたいになってきたなあ。