【问题标题】:Emacs fontifying doc commentsEmacs 字体化文档注释
【发布时间】:2012-12-25 07:55:30
【问题描述】:

在 emacs 中,当您执行 doc cmets 时,它会正确突出显示以 /** 开头的文档。示例:

/**
 * @brief: Test
 */

将正确地使用 font-lock-string-face 和 font-lock-doc-face 进行字体化。

有些人用/// 来做doc cmets,而Emacs 没有使用font-lock-doc-face 和font-lock-string-face 来字体化它。有没有办法让 emacs 也为这些类型的 doc cmets 字体化?我正在尝试为 C/C++ 实现这一点,但灵活的解决方案会很好。

编辑: 稍微浏览一下 emacs 源代码后,我发现这是在 lisp/progmodes 文件夹中的 cc-fonts.el 中处理的。看起来c-font-lock-doc-comments 可以用不同的前缀参数调用,修改它可能会修复它。当我有更多时间时,我会尝试看看需要改变什么。

【问题讨论】:

  • 不是 C++ 用户,但是在切换到 c++ 模式时,/*/// 都得到缩进?
  • @Dualinity 我不是在谈论缩进,而是在谈论字体化。
  • 它也得到红色(在我的情况下)字体。
  • @Dualinity 什么版本的 Emacs?我是 24.3.5。
  • 我现在看到它不会在带有/// 的初始行之后对行进行字体化(是否也有一个结束comment-end 字符?)

标签: regex emacs


【解决方案1】:
(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 的指针。

经过一番测试,这对于多行 /// cmets 不起作用(每行都以 /// 开头,在不同的行上)。修复后会编辑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 2019-11-03
    • 1970-01-01
    • 2010-10-02
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多