Emacs + C/C++ + Doxygen:doxymacs的替代品?与亚片段

Emacs + C/C++ + Doxygen: Alternative to doxymacs? With yasnippet?

本文关键字:替代品 片段 C++ Doxygen Emacs doxymacs      更新时间:2023-10-16

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

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

更新

我也发现了这个。它纯粹基于 yasnippet(不过还没有尝试过)。

我使用以下方法:

# -*- 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))

1. 从 Emacs 生成氧气

您使用哪种工具进行编译?清妃?自动工具?斯康斯?

有一次我与CMake合作,我们创建了一个目标来生成doxygen的文档。

像这样的东西。

然后你必须像这样编译:

make doc

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