2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RustAdvent Calendar 2024

Day 18

「docs.rs書くのめんどくさくない?」をできるだけ楽にした話

Last updated at Posted at 2024-12-17

はじめに

こんにちは。細々とプログラミングをしているsotanengelです。

以前、初めてRustのクレートをリリースするって記事を書いたんですが、

  • docs.rsの書き方いちいち調べるのめんどくさい
  • フォーマットに準じて書けているのかいるのか分からず、(最も重要な)コーディングの時間が削られる

という体験をしたので、docs.rs形式でいい感じに表示されるようなコメント文をコードに自動挿入するCLIを作成してみました!!

イメージはこんな感じ👀
(コメントすべき位置になんの説明を書くべきか、がいい感じに挿入されている)

Before After

本記事では使い方をざっくり説明するので、もし使ってみたい方は以下ご覧ください!
具体のコードが気になる方は、以下にリンクを貼っておくのでまずそっちをご覧くださいませ。

以下、作成したクレートの使い方・やったことをまとめていきます👀

使い方

1. クレートをインストールする

以下のコマンドでCLIをインストール。

cargo install gen_docs_template

2. Rustのコード内部で実行する

cargoプロジェクト内部で以下のコマンドを実行する。
(srcフォルダ内部のRustコードのファイルにコメントが全て付与されます)

gen_docs_template

補足

上記のコマンド以外にも以下の引数をカバーしています👀
(最新の情報はライブラリのページを参照くださいませ)

引数 引数の説明 実行例
引数なし srcフォルダ内部の全てのrsファイルに対してコメントテンプレートを挿入する gen_docs_template
-path hogeフォルダ内部の全てのrsファイルに対してコメントテンプレートを挿入する gen_docs_template -path hoge
hard 過去のコメント実行履歴を全て無視して、srcフォルダ内部の全てのrsファイルに対してコメントテンプレートを挿入する gen_docs_template hard

⭐️推し⭐️ポイント

技術的にすごいことはしてませんが、自己満でアピりたいところを書きます。

1. テンプレート文がどこにあるかわかりやすいようにした

テンプレート文の頭文字をWIP_で統一したので、検索機能などを使うことでコメントのつけ忘れを簡単に見つけることができます!

2. テンプレート文を一括で選択して消しやすいように_(アンダーライン)で繋いだ

アンダーラインで繋ぐと、エディタ上でタブルクリックした時に一括で一行分選択してくれるんですよ、便利だね!

3. コメントを付与した履歴ファイルを作成した

gen_docs_templateコマンドを実行すると、.gen_doc_hisというファイルが実行ディレクトリ上に作成されます。これにより、一度コメントを付与したファイルにはコメントが付与されなくなります。

4. 履歴ファイルをgitの履歴に載せないようにした

今回のライブラリはコメント作成の補助ツールでしかないので、.gen_doc_hisの差分って必要ないかなと思い、gen_docs_templateを実行したときに.gitignoreファイルに.gen_doc_hisを追加するようにしました。

さいごに

自分で使っていくように作成したのですが、もし何かしらバグなど見つけた方はリポジトリのissueで報告いただけますと幸いです!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?