Emacs字体化文档注释

3
在emacs中,当您编写文档注释时,它会正确地突出显示以/**开头的文档。例如:
/**
 * @brief: Test
 */

使用 font-lock-string-face 和 font-lock-doc-face 可以正确地对其进行字体着色。

有些人使用 /// 进行文档注释,但 Emacs 不会使用 font-lock-doc-face 和 font-lock-string-face 来进行字体着色。有没有办法让 Emacs 也对这些类型的文档注释进行字体着色呢?我正在尝试为 C/C++ 实现此功能,但是希望有一种灵活的解决方案。

编辑: 经过查看 emacs 源代码后发现,这在 lisp/progmodes 文件夹中的 cc-fonts.el 中处理。看起来可以使用不同的前缀参数调用 c-font-lock-doc-comments 并修改这个参数可能会修复它。等我有更多时间时,我将尝试看看需要更改什么。


它也会变成红色字体(在我的情况下)。 - PascalVKooten
@Dualinity 我不这么认为。由于某种原因,我的C++模式不会突出显示任何文档,只有c-mode适用于我。因此,c++-mode不会突出显示任何内容,而c-mode仅会突出显示/**这些。 - Jesus Ramos
只是为了澄清一下:/// 不仅仅是用来做单行注释的吗?而不是用来包含一段文本的? - PascalVKooten
让Emacs做一些新事情的自然方法是在Emacs错误跟踪器上提交一个功能请求,尤其是如果您已经从主干构建。 - Dmitry
@Dmitry 我知道,只是我想看看是否有什么可以轻松改变以实现这一点。 - Jesus Ramos
显示剩余9条评论
1个回答

2
(defconst custom-font-lock-keywords
  `((,(lambda (limit)
        (c-font-lock-doc-comments "///"
                                  limit gtkdoc-font-lock-doc-comments)))))
(setq-default c-doc-comment-style (quote (gtkdoc javadoc autodoc custom)))

只需在 .emacs 文件中添加一些内容即可,不算太难。您可以自定义关键字,但我只使用默认的 gtkdoc 关键字,因为这对我来说很有效。

感谢 wvxvw 指向了 c-doc-comment-style

经过测试,这不能用于多行 /// 注释(每个注释都以单独的行开始)。如果修复了,将进行编辑。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接