ローファイ日記

出てくるコード片、ぼくが書いたものは断りがない場合 MIT License としています http://udzura.mit-license.org/

プロジェクトのrust-analyzerにdefault以外のfeatureを認識させる

特にアドベントカレンダーは関係なく、備忘録としてブログを書きます。

Rustで書いたmruby VMの実装を最近また再開していて、

github.com

Regexpクラスをサポートしてみたんだが

github.com

Rustのregexを利用している。このcrateに依存するしないで(ちゃんと std featureだけにして最小にしていても)strip後のバイナリサイズは 300KB 程度違う... ということで外部mgemではないが、 feature で組み込みを制御し、デフォルトでは含めていない。

ただ、そうするとVSCodeで開発していて regexp 関係のファイルを認識しなくなるので、補完とか文法チェックとかも効かなくなってう〜んとなっていたが、普通にrust-analyzerをカスタマイズできた。

何したか

プロジェクトのrootに以下のように .vscode/settings.json を置いた(追記: 修正箇所)。

{
    "rust-analyzer.cargo.features": [
        "mruby-regexp"
    ]
}

これだけで、このプロジェクトで --features mruby-regexp がついた状態で解析してくれる。

そもそも、プロジェクトのrootに置くと個別に認識してくれるのを知らなかったのでここに残しておきます。


公式の設定ドキュメントを見るとさらに色々ありそうで、例えば target をwasm系にして解析させるようにもできるっぽい。

rust-analyzer.github.io

欲しかったものだ...。