Help us understand the problem. What is going on with this article?

VSCodeでDoxygenのプレビューをしたい!

More than 1 year has passed since last update.

概要

この記事ではDoxygenPreviewerの説明と、下記のような作成で得た知識のまとめの導入をします。

  • doxygenのソースコードのコンパイルとそれに関すること
  • Visual Studio Codeの拡張機能の作成方法とそれに関すること

DoxygenPreviewer

なにそれ

筆者が作成した、現在編集しているCソースコードのdoxygenをすぐに見れる、Visual Studio Codeの拡張機能です。C言語用です。C++もある程度はOKです。
https://github.com/hakua-doublemoon/DoxygenPreviewer に公開しています。
近いうちに(何事もなければ)マーケットにも出します。
Marketplaceで公開されました。使ってみてください。

なぜ作った

というのが今の開発現場のコードレビューでよくあるからです。
解決策としてはDoxygenコメント(doxygen用のspecial comment blocksの中身のことを簡単にこう呼ぶことにします)をlintみたいな感じでチェックするのが一番だと思いますが、そこまでのプログラムを作る能力がなかったので、次善策としてDoxygenのプレビュー機能を作ることにしました。

使い方

インストール方法は、上記のgitの中にvsixが入っているのでそれからインストールしてください。
インストール後、ソースファイルもしくはヘッダーファイルを開いている状態でVisualStudioCodeのコマンドを(Ctrl+Shift+pで)呼び出し、"Doxygen Previewer"のコマンドを実行すれば、下の画像のようにDoxygenのドキュメントが表示されます。
dp_demo.png

動作原理

やっていることは単純:

  1. 開いているソースファイルをtempフォルダにコピーする
  2. TypeScript/JavaScriptのコードでDoxygenを実行するプログラム(doxyapp.exe)をコピーしたファイルに実行する
  3. 生成されたhtmlからソースファイルの名前を含むものを探し表示する

本当はdoxygenのプログラムを使って直接パースされたデータを得たかったのですが、パースしたデータの格納構造がよくわからない上に、ファイル出力したらすぐ破棄されるような状態だったので諦めました。

作ってみて

まあ……プレビューをまじまじと見ないとやっぱり間違いには気付けないので、目覚ましい効果というのはないですね。
でもちょっとおかしなdoxygenコメントはプレビューしながら調整できるようになったので便利かとは思ってます。

そういうわけでこのDoxygenPreviewerのmaking的な話を書いていきます。


Making一覧:
1. DoxygenをVisualStudioでlibclang依存のビルドをする
2. DoxyfileなしでDoxygenドキュメント作成とdoxyapp
3. VSCodeでHTMLを表示する拡張機能を作る

hakua-doublemoon
横浜の外周部で組み込み装置のファームウェア開発やってます。RTOSのカーネル・ネットワーク関連からはじまりゴリゴリのHW依存のアプリケーション作ったりQtでGUI作ったり、LabVIEWでの画像処理とかもしてます。Ruby/RailsやRustが好きですがそれは本職とはあんまり関係ない。
https://pawoo.net/web/accounts/586636
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした