LoginSignup
2
3

More than 5 years have passed since last update.

Emacsとdoxymacsで爆速Doxygenコーディング

Posted at

Doxygen、使ってますか?

Doxygenを使えば、ソースコード中に決まった書き方のコメントを入れるだけでHTML形式のドキュメントを作成することができます。

API仕様書などを簡単に作成することができるだけでなく、コメントの書き方が一つに定まるので、チーム作業での可読性も高まります。

Emacsにdoxymacsをインストールすることで、Doxygen形式のコメントを簡単に挿入することができます。YASnippetなどに自分で登録してもよいですが、doxymacsを使ったほうが楽でしょう。

注意:doxymacsはc-modeとc++-modeでしか使えないようです

doxymacsのインストール

まずは以下のサイトにアクセスして、"Version 1.8.0"をダウンロードします。

Doxymacs = Doxygen + Emacs

tar.gzを展開したら、doxymacs-1.8.0の中で ./configureします。以下のように表示されればOKです。

$ ./configure
configure: creating ./config.status
config.status: creating Makefile
config.status: creating c/Makefile
config.status: creating lisp/Makefile
config.status: creating lisp/doxymacs.el
config.status: creating no-autoconf/Makefile
config.status: executing depfiles commands

bitpositive@bit-plus ~/Downloads/doxymacs-1.8.0.tar/doxymacs-1.8.0 $

次に、~/.emacs.dの中のロードパスが通ったディレクトリ(今回は~/.emacs.d/elisp)に、doxymacs-1.8.0/lispの中のdoxymacs.elとxml-parse.elをコピーします。

最後に、~/emacs.d/init.elに以下を追記します。

init.el
;; doxymacs mode
(require 'doxymacs)

;; custom c-mode hook for doxymacs
(defun doxy-custom-c-mode-hook ()
  (doxymacs-mode 1)
  (setq doxymacs-doxygen-style "Qt")
  (setq doxymacs-command-character "@")

(add-hook 'c-mode-common-hook 'doxy-custom-c-mode-hook)

今回はコメントをQt形式、コマンド文字を@としました。

ショートカット

キー 機能
C-c d i ファイルへのコメントを挿入
C-c d f カーソルの下にある関数へのコメントを挿入
C-c d ; メンバへのコメントを挿入
C-c d m 複数行の空コメントを挿入
C-c d s 一行の空コメントを挿入

使ってみる

Emacsをc-mode/c++-modeにした上で、まずはファイルへのコメントを挿入しましょう。(C-c d i)

以下のようにして、自動的にファイル名や日付、ユーザー名が挿入されます。あとは自分でcopyrightやbriefなどを記述しましょう。

hoge.cpp
/*!
  @file   hoge.cpp
  @author  <bitpositive@bit-plus>
  @date   Wed Nov 28 14:37:29 2018

  @brief  


*/

また、適当な関数に対してコメントを挿入しましょう。(C-c d f)

以下のようにして、自動的に引数の名前が挿入されます。あとは自分でbriefやreturnなどを記述しましょう。

hoge.cpp

//! 
/*! 

  @param hogeNum 
  @param hogeStr 
*/
void hogeFunc(int hogeNum, char *hogeStr){
  //! Hoge hogehoge

  return;
}

参考

2
3
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
3