在emacs中突出显示语法。用不同的颜色标记不同的数据类型

时间:2011-12-12 20:30:41

标签: emacs syntax-highlighting

在Emacs中,是否可以用不同的颜色标记不同数据类型的所有变量?例如如果我在C / C ++程序中有以下变量

int i,j;
float g,h;
char a,b; 

然后贯穿源代码i和j将标记为红色,g和h标记为绿色,a和b标记为蓝色。

我不确定将来会有多大用处,但我觉得在阅读代码时会对我有所帮助, 并且是匈牙利符号的一个很好的替代品(不是我使用这种符号:D)。

2 个答案:

答案 0 :(得分:4)

没有。 Emacs不知道特定表达式的类型;这样做等于在C中编写ELisp编译器的重要部分。

然而,隧道尽头有一盏灯。

例如,如果使用OCaml编辑tuareg-mode代码,您可以向Emacs询问任何表达式的类型,因为ocaml编译器提供了该信息;因此,您应该能够要求它按类型突出显示变量。这是要遵循的道路。

唉,gcc没有提供这些信息;但是,它的扩展名为gccxml

此外,其他C编译器(例如clang)提供开箱即用的信息,并且有一个新文件semantic-clang.el依赖于这些功能(尽管仅用于完成) ,而不是语法高亮)。

所以,这里没有开箱即用,但如果您愿意使用clang代替gcc并为CEDET开发做出贡献,那么您可能会得到您想要的内容

答案 1 :(得分:1)

不,不可能有选择地将给定颜色分配给emacs中的给定变量(或仅针对一个给定程序)。
但是,如果它只是语法高亮显示,当然,emacs会突出显示大多数语言,甚至可以为emacs不知道的语言创建语法高亮。
防爆。 Smali:https://github.com/strazzere/Emacs-Smali