如何在emacs中突出显示自定义数据类型?

3

我所在的工作单位使用很多自定义数据类型。Emacs识别的c++语言可以注意到STL中许多自定义数据类型,例如string、vector等等。这意味着在我的编辑器中,如果我这样声明一个函数:

string getString() const {
    return str;
}

返回值将被突出显示为绿色,因此函数名将变为蓝色。如果我决定使用自定义字符串,那么这会混乱一切。因此,我的cpp文件大多数都是白色的,因为我们不在这里使用正常的STL类。我该如何编程我的Emacs编辑器,以便识别当我意思是“String”时,将其着色方式与“string”相同?

1个回答

1
你需要使用font-lock-add-keywords。这里是一个示例:
(font-lock-add-keywords 'cc-mode
  '(("String" . font-lock-type-face)
    ("str" . font-lock-type-face)))

它添加了一组正则表达式/字体锁定对。

关于添加关键词,还有更多内容可供阅读。 特别是,ctypes.el可能会引起您的兴趣。


不过有一件事..我刚刚注意到这只是突出显示关键字。它并没有告诉emacs这些单词应该被认为是c++的关键字。因此,函数名仍然是白色的,而关键字“String”将在任何地方都会被突出显示,即使它是函数名的一部分(例如GetString)。 - Rob
你应该使用更精确的正则表达式 - 比如 ("\s+(String)\s*" 1 font-lock-type-face)。这将仅匹配以制表符或空格为前缀且后面跟有可选空格的 String。 - Bozhidar Batsov

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