Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

Vim/syntastic/cargo-quickfixを使ってrustcコンパイル結果を確認しながらコードを書く

$
0
0

以下の様なことができるようになります。

cargo-quickfix with vim

cargo-quickfixのインストール

cargo-quickfixrustcコンパイル結果をVimのquickfix(errorformat)でパースしやすい形で出力するツールです。 cargo build --message-format jsonの結果をパースして整形表示しています。

インストールは
cargo-quickfixgit cloneしてきて cargo installでインストールします。

rustup等を使ってRust, cargoあたりのセットアップは終わってる前提です。

$ git clone https://github.com/hhatto/cargo-quickfix.git$ cd cargo-quickfix$ cargo install --force

インストールが終わったら、おもむろにcargo newで作成したプロジェクトで cargo quickfixを実行してみます。

$ cargo quickfixsrc/main.rs:3:5: warning: unused import: `std::thread`, #[warn(unused_imports)] on by defaultsrc/main.rs:24:9: warning: unused variable: `stderr`, #[warn(unused_variables)] on by default

ファイル名:行数:カラム数: 警告レベル: メッセージの形式で1行につき1つのメッセージを表示します。

Vim/syntasticと合わせて使う

cargo-quickfixのインストールに引き続き、Vim/syntastic用に設定を変更します。

$ mkdir -p PATH_TO_VIM_SYNTASTIC/syntax_checkers/rust
$ cp -p vim_syntastic/cargo.vim PATH_TO_VIM_SYNTASTIC/syntax_checkers/rust/
$ vim .vimrc
let g:syntastic_rust_checkers = ['cargo']   "" 'cargo'を追加する

これで冒頭のような環境が整います。

制限事項とか

  • cargo newで作成したプロジェクトディレクトリ直下でしか動作しないと思います。cargo build実行しているので。
  • cargo buildを実行するので意図せず targetディレクトリ配下にバイナリが作られたりします。
  • 初回実行時や巨大なプロジェクトだと実行に時間がかかると思います。( cargo-checkとかに置き換えたらちょっとは速くなるかな...?)
  • Rustのファイルさわるときに毎回これ走ってしまう。 Cargo.tomlがあるとかそういうのチェックしたほうがいいかもしれない。

おわりに

rustc.vimだとcargoで作ったプロジェクトとかで外部crateが解決できなかったので、あまり実用的ではなく使っていませんでした。(もしかしたら私の設定がおかしいだけなのかもしれないです。。。) cargo-quickfix使うとそのあたりをうまく処理できるようになったので、少しの間使ってみようかと思います。

みなさんもよければ使ってみてください。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>