2015-02-24 88 views
1

在emacs中,句法分析出奇的少。Emacs自定义语法分析

例如,如果我想不是在函数声明的类型不同缩进参数名称,像这样:

void myfunction(
    int 
     test 
); 

int被认为是arglist-intro,并test被视为arglist-cont。但是,如果我添加更多参数,则它们都将被视为arglist-cont,因此缩进arglist-cont不会达到预期的效果。

所以这里是我想知道的是:是否有可能使我自己的语法分析thingy为emacs,以便它可以识别和区分这种情况(这不是唯一的情况,顺便说一下)?如果是这样,怎么样?

回答

2

是的,当然你可以写任何你想要的。 Emacs是free software,它带有源代码,所以你可以随意修改它们。

但请注意,Emacs的应用非常广泛,包括一些非常智能的hackers。这意味着Emacs的限制通常是(但是,当然并不总是!)有一个很好的理由(在你的情况下,原因是C语法非常复杂)。其含义是,做你想做的事情可能比你想象的要困难。当然,它不应该让你灰心!

PS。你问“是有可能使自己的句法分析”,而不是“如何做到这一点” :-)

PPS。至于“如何”,您将不得不以cc-engine.el开头。

+0

我看,是的,我有一种感觉,它理论上是可能的...和好点,我更新了我的答案(“如果是这样,怎么样?”)= p – MiJyn 2015-02-25 20:40:03

+0

从'progmodes/cc-engine开始。 el'(见PPS)。我知道你更喜欢准备好的补丁,但是,我担心,我没有时间。 :-) – sds 2015-02-25 20:47:50

+0

谢谢!我现在检查出来......看起来我有一些工作为我剪掉了哈哈 – MiJyn 2015-03-02 19:18:03