neovimでrustを使えるようにする
LSPはrust-analyzerを使う
もしくはneovimでmasonを使っている場合は :MasonInstall rust-analyzer
formatter
https://github.com/rust-lang/rustfmt
:RustFmt
はとくに何も設定しなくても使えたけど、エラーが出て効かなかった
Error detected while processing function rustfmt#Format[7]..<SNR>64_RunRustfmt:
line 48:
E776: No location list
:!rustfmt %
で代用したらRust 2018からじゃないと使えない記法でエラーになった。
rustfmt.toml
を作って edition = "2021"
を書いた
保存時に実行してほしかったのでこうした。
cursor位置が先頭に行ってしまうので、 nvim_win_get_cursor
で位置を保存しておいてからrustfmt実行
rustfmt.toml を見てくれないのでeditionを明示した。これだとプロジェクトによっては設定読めなくてformatずれるな。
Rustなにもわからないのでとりあえずこれをベースにする Building My First Command Line Interface (CLI) with Rust | by Adam Berg | Geek Culture | Medium
初期化
cargo new パッケージ名
もしくは cargo init
で作成
Cargo.tomlができる
cargo add クレート名
でライブラリを追加する
→ features
も設定したかったけどコマンドだとよくわからなかったのでtoml直接修正する
clapを使ってみる
ClapというcrateがCLI作るときに便利なライブラリのようなので、これを使ってもいいかも RustのClapクレートがメチャクチャ良かった話
deriveっていうのが今風らしい Rust | clap v3系でCLIツールを作成する - dotTrail
reqwest
responseのJSONをparseしたかったのでserdeをいれてみた