Eclipse 中 if 条件的换行缩进格式 CDT
Formatting of new line indentation of if conditions in Eclipse CDT
在 Eclipse (4.4) CDT (8.5) on windows (7) if
和 else if
条件下的新行缩进没有意义我。这个集合在 eclipse 的什么地方?
我尝试在 Window > 首选项 > C/C++ > 代码样式 > 格式化程序中查找,但没有看到任何相关设置。
我在键入条件或 select 行时按下 return 键并按 Ctrl+I ("Fix Indentation") 的示例。请注意,尽管嵌套级别不同,但前四行都具有相同的缩进。接下来的第五行比前一行缩进了 两个 层,第七行也是如此,两者都与嵌套层级没有明显关系。
else if (((wp == SMB_Protocol_Write_Byte) && (qcn >= 1)
&& (rp != SMB_Protocol_Process_Call)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Write_Word) && (qcn >=2)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Block_Write)
&& (qcn >= (CMD_Number_Bytes_max + 1)))) {
e = EXIT_FAILURE;
}
我更喜欢以下内容:
else if (((wp == SMB_Protocol_Write_Byte) && (qcn >= 1)
&& (rp != SMB_Protocol_Process_Call)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Write_Word) && (qcn >=2)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Block_Write)
&& (qcn >= (CMD_Number_Bytes_max + 1)))) {
e = EXIT_FAILURE;
}
是否可以更改此设置?
此外,如果有人可以对当前的 indentation/nesting 格式进行评论,我们将不胜感激!
编辑: 意识到这可能类似于 Eclipse JDT Code Formatter: Indent parameter in IF-Statement
Is it possible to change this?
是的。使用默认的缩进策略(K&R 内置),我得到的结果与你使用 Ctrl+I 的结果相同,但如果我这样做 Ctrl+Shift+F(格式代码)我得到以下内容。
} else if (((wp == SMB_Protocol_Write_Byte) && (qcn >= 1)
&& (rp != SMB_Protocol_Process_Call)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Write_Word) && (qcn >= 2)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Block_Write)
&& (qcn >= (CMD_Number_Bytes_max + 1)))) {
如果您想要列对齐,而不是在连续行上简单缩进,请创建您自己的格式配置文件并更改以下内容:
- 缩进 制表符 -> 制表符策略 到 仅限空格 或 混合
- 默认情况下 仅制表符 缩进将到下一个制表位
- 换行 选项卡 -> 表达式/二进制表达式 设置缩进策略 到 列缩进
这是格式化时的结果(而不是简单地更正缩进时):
} else if (((wp == SMB_Protocol_Write_Byte) && (qcn >= 1)
&& (rp != SMB_Protocol_Process_Call)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Write_Word) && (qcn >= 2)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Block_Write) && (qcn
>= (CMD_Number_Bytes_max + 1)))) {
以下是显示设置的屏幕截图:
和
在 Eclipse (4.4) CDT (8.5) on windows (7) if
和 else if
条件下的新行缩进没有意义我。这个集合在 eclipse 的什么地方?
我尝试在 Window > 首选项 > C/C++ > 代码样式 > 格式化程序中查找,但没有看到任何相关设置。
我在键入条件或 select 行时按下 return 键并按 Ctrl+I ("Fix Indentation") 的示例。请注意,尽管嵌套级别不同,但前四行都具有相同的缩进。接下来的第五行比前一行缩进了 两个 层,第七行也是如此,两者都与嵌套层级没有明显关系。
else if (((wp == SMB_Protocol_Write_Byte) && (qcn >= 1)
&& (rp != SMB_Protocol_Process_Call)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Write_Word) && (qcn >=2)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Block_Write)
&& (qcn >= (CMD_Number_Bytes_max + 1)))) {
e = EXIT_FAILURE;
}
我更喜欢以下内容:
else if (((wp == SMB_Protocol_Write_Byte) && (qcn >= 1)
&& (rp != SMB_Protocol_Process_Call)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Write_Word) && (qcn >=2)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Block_Write)
&& (qcn >= (CMD_Number_Bytes_max + 1)))) {
e = EXIT_FAILURE;
}
是否可以更改此设置? 此外,如果有人可以对当前的 indentation/nesting 格式进行评论,我们将不胜感激!
编辑: 意识到这可能类似于 Eclipse JDT Code Formatter: Indent parameter in IF-Statement
Is it possible to change this?
是的。使用默认的缩进策略(K&R 内置),我得到的结果与你使用 Ctrl+I 的结果相同,但如果我这样做 Ctrl+Shift+F(格式代码)我得到以下内容。
} else if (((wp == SMB_Protocol_Write_Byte) && (qcn >= 1)
&& (rp != SMB_Protocol_Process_Call)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Write_Word) && (qcn >= 2)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Block_Write)
&& (qcn >= (CMD_Number_Bytes_max + 1)))) {
如果您想要列对齐,而不是在连续行上简单缩进,请创建您自己的格式配置文件并更改以下内容:
- 缩进 制表符 -> 制表符策略 到 仅限空格 或 混合
- 默认情况下 仅制表符 缩进将到下一个制表位
- 换行 选项卡 -> 表达式/二进制表达式 设置缩进策略 到 列缩进
这是格式化时的结果(而不是简单地更正缩进时):
} else if (((wp == SMB_Protocol_Write_Byte) && (qcn >= 1)
&& (rp != SMB_Protocol_Process_Call)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Write_Word) && (qcn >= 2)
&& (rp != SMB_Protocol_Block_WR))
|| ((wp == SMB_Protocol_Block_Write) && (qcn
>= (CMD_Number_Bytes_max + 1)))) {
以下是显示设置的屏幕截图:
和