Emacs自定义语法分析
Emacs custom syntactic analysis
在 emacs 中,句法分析出奇的少。
例如,如果我希望缩进参数名称不同于函数声明中的类型,如下所示:
void myfunction(
int
test
);
int
被认为是 arglist-intro
,test
被认为是 arglist-cont
。但是,如果我添加更多参数,它们都将被视为 arglist-cont
,因此缩进 arglist-cont
不会达到预期的效果。
所以这就是我想知道的:是否可以为 emacs 进行我自己的语法分析,以便它能够识别和区分这样的情况(顺便说一下,这不是唯一的情况)?如果是,怎么做?
是的,当然可以随便写。 Emacs 是 free software,它自带源码,所以你可以随意修改它们。
但是,请注意 Emacs 的使用非常广泛,包括一些非常聪明的人 hackers。这意味着 Emacs 限制 通常 (但当然,并非总是如此!)背后有充分的理由(在您的情况下,原因是 C 语法非常复杂)。这意味着做你想做的事可能比你想象的要难。当然,这并不是说它会让您气馁!
PS。您问的是“是否有可能 进行我自己的句法分析”,而不是“如何 做到这一点”:-)
PPS。至于“how”,你得从cc-engine.el
开始。
在 emacs 中,句法分析出奇的少。
例如,如果我希望缩进参数名称不同于函数声明中的类型,如下所示:
void myfunction(
int
test
);
int
被认为是 arglist-intro
,test
被认为是 arglist-cont
。但是,如果我添加更多参数,它们都将被视为 arglist-cont
,因此缩进 arglist-cont
不会达到预期的效果。
所以这就是我想知道的:是否可以为 emacs 进行我自己的语法分析,以便它能够识别和区分这样的情况(顺便说一下,这不是唯一的情况)?如果是,怎么做?
是的,当然可以随便写。 Emacs 是 free software,它自带源码,所以你可以随意修改它们。
但是,请注意 Emacs 的使用非常广泛,包括一些非常聪明的人 hackers。这意味着 Emacs 限制 通常 (但当然,并非总是如此!)背后有充分的理由(在您的情况下,原因是 C 语法非常复杂)。这意味着做你想做的事可能比你想象的要难。当然,这并不是说它会让您气馁!
PS。您问的是“是否有可能 进行我自己的句法分析”,而不是“如何 做到这一点”:-)
PPS。至于“how”,你得从cc-engine.el
开始。