Eclipse CDT:Ctrl-I缩进与代码格式化程序规则不一致

Eclipse CDT:Ctrl-I缩进与代码格式化程序规则不一致,eclipse,indentation,eclipse-cdt,code-formatting,Eclipse,Indentation,Eclipse Cdt,Code Formatting,我在EclipseCDT(Mars,v4.5.1)中遇到了一些奇怪的行为。Ctrl-I(“固定缩进”)命令应用于函数体的缩进不符合代码格式化程序指定的格式规则;具体来说,它增加了不必要的额外缩进级别。例如,如果我编写以下代码: intmyclass::foo(inta){ int x=2; x=x*a; 返回x; } 高亮显示它,然后按Ctrl-Shift-F,我得到以下结果: intmyclass::foo(inta){ int x=2; x=x*a; 返回x; } 另一方面,如果我按Ct

我在EclipseCDT(Mars,v4.5.1)中遇到了一些奇怪的行为。Ctrl-I(“固定缩进”)命令应用于函数体的缩进不符合代码格式化程序指定的格式规则;具体来说,它增加了不必要的额外缩进级别。例如,如果我编写以下代码:

intmyclass::foo(inta){
int x=2;
x=x*a;
返回x;
}
高亮显示它,然后按Ctrl-Shift-F,我得到以下结果:

intmyclass::foo(inta){
int x=2;
x=x*a;
返回x;
}
另一方面,如果我按Ctrl-I,我会得到以下结果:

intmyclass::foo(inta){
int x=2;
x=x*a;
返回x;
}
请注意,现在有两个缩进级别,因为缩进级别是4个空格

如果我突出显示已由代码格式化程序格式化的代码(如第一个示例),然后按Ctrl-I键,则每行将额外添加4个空格,使其看起来像第二个示例。相反,如果我突出显示与第二个示例类似的代码并按Ctrl-Shift-F,则会删除额外的缩进,使其与第一个示例类似

此外,如果我开始键入一个新的函数定义(即,
void foo(){
)并按Enter键,Eclipse会自动将下一行缩进8个空格,而不是4个空格。键入代码后,我必须高亮显示它并按Ctrl-Shift-F键删除额外的缩进


在我的C++代码格式选择器中,我有缩进大小=4,tab大小=4,而且标签策略=空格。据我所知,这是唯一设置缩进偏好的地方。为什么不使用CTRL I或自动缩进来尊重它们?< /P>听起来像是A。它不应该自动地做吗?我通常使用Shift + Tab或源代码。menuDid您是否提交了一份错误报告?听起来像是一个。它是否应该自动执行。我通常使用shift+tab或源menuDid您是否提交了一份错误报告?