Emacs Mode for GDB

使用Doxymacs为程序写文档注释

Tiger Soldier posted @ 2008年4月13日 18:47 in emacs with tags emacs doxymacs , 8329 阅读

文档的重要性不用我说了吧,任何一个上了规模的程序没有文档的话很难做后续开发的(记不住那么多成员和方法-_-)。

Java有生成文档的javadoc,C++的话,就要用Doxygen了。它可以使用多种注释语法,甚至可以混用(自然,Java的注释文档语法也支持的)

不过写Java程序可以在Eclipse里输入/**,回车,然后Eclipse就哗哗地根据其后的方法/属性帮你生成好。C#的话,一个///就能生成它的文档化注释。写C++,可以使用Doxymacs来生成,它还可以顺便为注释进行语法高亮(别问我注释有什么好高亮的,用了就明白了)。

下载&安装

Doxymacs和很多Emacs插件一样,安家在sourceforge上,主页在这里:

http://doxymacs.sourceforge.net/

它需要依赖三个包:W3、tempo和libxml2,可惜的是上面给出的W3和libxml2的地址已经失效,好在Ubuntu自带了这两个东西,其他系统的请自行查找

http://www.lysator.liu.se/~davidk/elisp/下载tempo,再从http://sourceforge.net/projects/doxymacs/下载doxymacs,确认装了libxml2(在Ubuntu下包名就叫libxml2)和W3(Ubuntu下不知道叫什么,会不会是W3m那个包?还望达人指教)

下载完成后直接把tempo复制到Emacs的插件目录下(要有root权限,我的是/usr/share/emacs22/site-lisp)

然后编译Doxymacs,把下载下来的包解压后用如下命令编译:

./configure
make
make install

编译好的文件会放在~/share/emacs/site-lisp下,也可以把它放到别的地方

然后编辑~/.emacs文件装载并配置之

;;doxymacs
;;添加doxymacs所在的路径
(add-to-list 'load-path
             "~/share/emacs/site-lisp/")
;;装载doxymacs
(require 'doxymacs)
;;注释高亮,针对C和C++程序
(defun my-doxymacs-font-lock-hook ()
  (if (or (eq major-mode 'c-mode) (eq major-mode 'c++-mode))
      (doxymacs-font-lock)))
(add-hook 'font-lock-mode-hook 'my-doxymacs-font-lock-hook)

使用Doxymacs

目前还没有研究能不能像Eclipse那样自动补完注释,不过用自带的快捷键也是很方便的

默认的快捷键如下(我只用了生成注释的一部分,剩下的只是直接翻译另加一点点试用,可能不准确):

  • C-c d ? 从符号表中查找当前光标所在内容的文档(需要指定doxymacs-doxygen-dirs)
  • C-c d r 重新扫描 Doxygen 的 tags 文件
  • C-c d f 为所在位置之后的那个函数插入注释(注意是在当前光标处插入,最好在函数上方的空行处使用,插入前先对好齐)
  • C-c d i 为当前文件插入注释(内容包括文件名、作者、日期和简介)
  • C-c d ; 为当前行的成员变量插入注释(类似M-;,但是格式不同)
  • C-c d m 插入空白的多行注释,这个就在单纯是想要注释的时候用了
  • C-c d s 插入空白的单行注释,和上面那个差不多
  • C-c d @ 插入分组注释。所谓分组注释就是将某个范围内的代码看作一组,生成文档时会单独归在一个组下。使用时要先选中想分组的那部分代码

生成文档

要生成文档当然要安装doxygen了,推荐把goxygen-gui一起装上,配置起来方便很多。在命令行输入doxywizard就可以启动gui,之后就是图形界面,相信不用介绍了。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter