17

我想使用 doxygen 在Emacs.c或文件中生成代码文档(函数)。.cc我找到doxymacs了,但似乎不再维护(最新版本 2007),如果我更改函数的一个参数的名称,我也没有找到更新函数文档的方法(“不幸的是”,我'已经习惯了可以做所有好事Roxygen的脚本,甚至当点位于函数中的某个位置时在函数之前插入文档)。.R

我找到了这个,但它似乎不是很有用。但是,这里有一个示例如何使用yasnippets. 有没有人为 doxygen 标题写过 yasnippet?尽管如此,如果函数名称更改,它也不会更新参数。有没有“更好”的方式在 Emacs 中使用 doxygen?我假设有很多 C/C++ 程序员使用 Emacs,我猜应该有一个很好的代码文档工具/方法。

更新

我也发现了这个。它纯粹基于 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,我们创建了一个目标来使用 doxygen 生成文档。

这样的东西。

然后你将不得不像这样编译:

make doc

但这仅涵盖您问题的第一部分,即手动制作每个功能之前的文档。我将尝试将此解决方案与 yasnippet 集成。

于 2012-07-04T20:33:39.750 回答