在Emacs中,是否可以用不同的颜色标记不同数据类型的所有变量?例如如果我在C / C ++程序中有以下变量
int i,j;
float g,h;
char a,b;
然后贯穿源代码i和j将标记为红色,g和h标记为绿色,a和b标记为蓝色。
我不确定将来会有多大用处,但我觉得在阅读代码时会对我有所帮助, 并且是匈牙利符号的一个很好的替代品(不是我使用这种符号:D)。
答案 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