我在GNU/LinuxDebian机器上使用包含cc模式(c-Version5.32.2)的GNU/Emacs Head。
我试图定义一个自定义样式来管理Java编程语言的代码约定,,,Android为贡献者提供的代码样式指南还有一些自定义规则。
我用了google-c风格作为起点,我设法获得了大多数缩进规则的预期行为,但嵌套条件下产生异常(请参阅下面的代码片段)。
从那个地方,我已经定义了(arglist-cont-nonempty . ++)
(完整代码:自定义-java-style.el)。大多数按计划缩进:
if ((condition1 && condition2)
|| (condition3 && condition4)
||!(condition5 && condition6)) {
doSomethingAboutIt();
someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);
}
嵌套条件被错误地缩进:
if (!(deviceRegistred.getAddress().equalsIgnoreCase(deviceAdress)
&& deviceRegistred.getName().equalsIgnoreCase(deviceName))) {
doSomethingAboutIt();
}
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();
}
我试图定义一个(,(when (fboundp …)))
条件类似于statement-cont
但没有成功。
现在,问题是:我的做法是对还是错?如何实现预期的行为(即,当我处于嵌套状态以获得正确的缩进时)?
发布于 2018-02-02 17:57:08
考虑到这一情况:
if (!(deviceRegistred.getAddress().equalsIgnoreCase(deviceAdress)
&& deviceRegistred.getName().equalsIgnoreCase(deviceName))
|| otherCondition) {
doSomethingAboutIt();
}
如果嵌套条件缩进了8个字符,那么这将是一个令人困惑的变体:
if (!(deviceRegistred.getAddress().equalsIgnoreCase(deviceAdress)
&& deviceRegistred.getName().equalsIgnoreCase(deviceName))
|| otherCondition) {
doSomethingAboutIt();
}
https://stackoverflow.com/questions/-100007310
复制相似问题