RuboCop を標準搭載した LSP 向けの VS Code 拡張である vscode-rubocop の 0.2.0 をリリースしました。いわゆる肉の日リリースです。
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 の基本については以下を参照してください。
そして偶然ですがこの日、Visual Studio Marketplace の VS Code 拡張でトレンド入りしていた記念スクショです。
しかし、ユーザーの利便性を考えて VS Code 拡張の LSP クライアントを開発をしていたら、VS Code の推し活みたいになってきたなあ。