在emacs中的doxygen注释中突出显示html标记的语法

时间:2011-07-17 08:26:59

标签: emacs syntax-highlighting doxygen

我目前正在使用doxymacs语法突出显示我正在处理的协作项目中的C ++文件中的doxygen注释和关键字。

然而,在项目中,有“计划”文件基本上是非常长的doxygen评论,有很多待办事项,错误等,都使用html标签进行组织和演示。

目前doxymacs只突出了“todo”和“bug”等关键字。如何在doxygen注释中突出显示html标签?

我可以通过切换到“html-mode”来做到这一点,但后来我失去了标准的doxymacs突出显示“todo”等。只要能够同时使用这两种模式或将它们组合起来就会很有用。

例如,如果我有:

/*!
    \todo Test todo
    <ul>
     <li> Some text. </li>
     <li> Some more text. </li>
    </ul>

*/

我希望<ul>代码等的颜色与/*! */条评论中的普通文字颜色不同。

1 个答案:

答案 0 :(得分:1)

这会将<>中的任何内容锁定为c-derived模式中的注释中的关键字:

(defun my-c-font-lock-doxy-html (limit)
  (while (re-search-forward "<.+?>" limit 'move)
    (let ((beg (match-beginning 0))
          (end (match-end 0)))
      (if (nth 4 (syntax-ppss beg))
          (when (nth 4 (syntax-ppss end))
            (c-put-font-lock-face beg end 'font-lock-keyword-face))
        (goto-char end))))
  nil)

(defun my-c-mode-common-hook ()
  (font-lock-add-keywords nil '((my-c-font-lock-doxy-html))))

(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)