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

smi*_*dha 9 emacs syntax-highlighting

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

int i,j;
float g,h;
char a,b; 
Run Code Online (Sandbox Code Playgroud)

然后在整个源代码中,i和j将标记为红色,g和h标记为绿色,a和b标记为蓝色.

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

sds*_*sds 4

不会。Emacs 不知道特定表达式的类型。C这样做就相当于用ELisp.

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

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

唉,gcc不提供该信息;然而,它的扩展gccxml却可以。

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

因此,这里没有任何开箱即用的东西,但如果您愿意使用clang而不是gccCEDET开发做出贡献,您可能会得到您想要的东西。