17

doxygenを使用して、Emacs内の(関数の)コードドキュメント.cまたはファイルを生成したいと思います。.cc私は見つけましdoxymacsたが、それはもう維持されていないようです(最新バージョン2007)。また、関数のパラメーターの1つの名前を変更した場合に、関数のドキュメントを更新する方法も見つかりませんでした(「残念ながら」、私はポイントが関数のどこかにあるときに関数の直前にドキュメントを挿入する場合でも、すべての優れた処理を実行できるスクリプトにRoxygen慣れています)。.R

これを見つけましが、あまり役に立たないようです。ただし、ここに使用方法の例がありますyasnippets。誰かがdoxygenヘッダーのyasnippetを書いたことがありますか?それでも、関数名が変更されてもパラメーターは更新されません。Emacsでdoxygenを操作する「より良い」方法はありますか?Emacsを使用するC/C ++プログラマーはかなりたくさんいると思いますし、コード文書化のための優れたツール/アプローチがあるはずだと思います。

アップデート

私もこれを見つけまし。純粋にyasnippetに基づいています(ただし、まだ試していません)。

4

2 に答える 2

8

私は以下を使用します:

# -*- mode: snippet -*-
# name: cc-doxygen
# key: dox
# type: command
# contributor: Jonathan Kotta <jpkotta@gmail.com>
# --
(let* ((next-func-alist (doxymacs-find-next-func))
       (func-name (cdr (assoc 'func next-func-alist)))
       (params-list (cdr (assoc 'args next-func-alist)))
       (return-name (cdr (assoc 'return next-func-alist)))
       (snippet-text "")
       (idx 1))
  (setq snippet-text (format "/**\n * ${1:%s}\n * \n" func-name))
  (setq idx 2)
  (dolist (param params-list)
    (unless (string= param "this")
      (setq snippet-text (concat snippet-text
                                 (format " * \\param %s ${%d:}\n" param idx)))
      (setq idx (+ 1 idx))))
  (when (and return-name (not (string= return-name "void")))
    (setq snippet-text (concat snippet-text
                               (format " * \\return ${%d:%s}\n" idx return-name))))
  (setq snippet-text (concat snippet-text " */"))
  (yas/expand-snippet snippet-text))
于 2012-07-04T19:57:53.443 に答える
1

1.Emacsからdoxygenを生成します

コンパイルにはどのようなツールを使用していますか?CMake?Autotools?Scons?

CMakeを使用して、doxygenを使用してドキュメントを生成するためのターゲットを作成しました。

このようなもの。

次に、次のようにコンパイルする必要があります。

make doc

ただし、これは質問の最初の部分、つまり各関数の前に手動で作成されるドキュメントのみを対象としています。このソリューションをyasnippetと統合してみます。

于 2012-07-04T20:33:39.750 に答える