Ren*_*aud 19 java emacs elisp dot-emacs cc-mode
我在GNU/Linux Debian机器上使用GNU/Emacs HEAD和附带的cc-mode(c-version 5.32.2).
我正在尝试定义一个自定义样式来管理Java编程语言的代码约定,Android的贡献者代码样式指南和一些自定义规则.
作为一个lisp初学者,从头开始似乎并不明智.因此,我使用google-c-style作为起点,我设法获得最缩进规则的预期行为,嵌套条件有例外(请参阅下面的代码片段).
从那篇文章中,我已经定义(arglist-cont-nonempty . ++)了我的自定义样式(完整代码:custom-java-style.el).不幸的是,虽然大多数情况按预期缩进:
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);
}
Run Code Online (Sandbox Code Playgroud)
嵌套条件错误地缩进:
if (!(deviceRegistred.getAddress().equalsIgnoreCase(deviceAdress)
&& deviceRegistred.getName().equalsIgnoreCase(deviceName))) {
doSomethingAboutIt();
}
Run Code Online (Sandbox Code Playgroud)
Ctrl-c Ctrl+s报告Syntactic analysis: ((arglist-cont-nonempty 2447 2450) (arglist-cont-nonempty 2447 2452))第二行,我显然有16个空格(2次++)缩进而不是8(++).
我想得到以下缩进:
if (!(deviceRegistred.getAddress().equalsIgnoreCase(deviceAdress)
&& deviceRegistred.getName().equalsIgnoreCase(deviceName))) {
doSomethingAboutIt();
}
Run Code Online (Sandbox Code Playgroud)
我试图定义一个(,(when (fboundp …)))像用于statement-cont但没有成功的条件(我缺乏lisp知识也没有帮助).
现在,问题是:我的做法是对还是错?我应该/应该如何实现预期的行为(即检测我何时处于嵌套状态以获得正确的缩进)?
(我不想使用malabar-mode或JDEE,所以请不要告诉我使用它们.)
干杯,
雷诺
更新2011/12/06(对评论作出反应)
我们不会在这里开始圣战.那些想要使用Emacs的人,出于他们自己的原因,可以坚持使用Emacs,其他人会按照自己的意愿去做...
说,我在一个团队中工作,我是唯一一个使用Emacs的团队,其他人都喜欢Eclipse.由于我负责编码规则,因此我与同事一起工作以获得正确的保存操作并帮助配置Eclipse的格式化程序.我只能说:Eclipse保存动作和格式化程序根本不容易配置......主要区别在于你有一个很好的GUI和漂亮的复选框,但它没有太大帮助降低复杂性.
我坚持使用Emacs ......
我想说,Emacs 做的是正确的事。考虑这种情况:
if (!(deviceRegistred.getAddress().equalsIgnoreCase(deviceAdress)
&& deviceRegistred.getName().equalsIgnoreCase(deviceName))
|| otherCondition) {
doSomethingAboutIt();
}
Run Code Online (Sandbox Code Playgroud)
如果嵌套条件缩进 8 个字符,这将是一个令人困惑的变体:
if (!(deviceRegistred.getAddress().equalsIgnoreCase(deviceAdress)
&& deviceRegistred.getName().equalsIgnoreCase(deviceName))
|| otherCondition) {
doSomethingAboutIt();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1128 次 |
| 最近记录: |