如果代码格式很乱,非常不利于阅读和修改,怎样能快速整理代码格式呢?
- 一键整理代码 Format Source
- 整理之前是否提示确认操作
- 更改一键整理代码的格式
一. 一键整理代码 Format Source
如果看到谁写的代码很乱,按一下 Ctrl +D 键就变得很整洁了,例如有以下代码:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
try { double x = StrToFloat(Edit1->Text);
double v = std::sqrt(x);
if (std::_finite(v)) {
Memo1->Text = String().sprintf(L"%g 的平方根是 %g", x, v); }
else
{
Memo1->Text = String().sprintf(L"无法计算 %g 的平方根", x);
} }
catch (Exception &E) {
ShowMessage(L"错误:" + E.Message);
}
}
按下快捷键 Ctrl + D (也可以在代码上点鼠标右键,选择 Format Source) 之后,会提示是否进行代码整理:
提示是否代码整理
选择 Yes 整理之后:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
try
{
double x = StrToFloat(Edit1->Text);
double v = std::sqrt(x);
if (std::_finite(v))
{
Memo1->Text = String().sprintf(L"%g 的平方根是 %g", x, v);
}
else
{
Memo1->Text = String().sprintf(L"无法计算 %g 的平方根", x);
}
}
catch (Exception &E)
{
ShowMessage(L"错误:" + E.Message);
}
}
如果你发现你的 Ctrl + D 代码整理不是这样的格式,或者不是你期望的格式,请看后面的第三部分,更改一键整理代码的格式。
二. 整理之前是否提示确认操作
如果在整理之前的确认选择 Yes / No 的对话框上,把左面那个对钩选上,以后就不会出现这个提示了,Ctrl + D 直接整理。
以后不显示整理代码确认提示对话框了的对钩选项
如果觉得这样容易误操作,再显示这个确认提示对话框,可以选择菜单 Tools -> Options
是否显示整理代码的确认对话框
如上面截图所示,在左面的目录里面找到 Formatter 里面的 Profiles and Status,右面的 Show Confirmation 就是是否显示整理代码的确认对话框。打勾表示显示,不打勾就不显示确认对话框。
三. 更改一键整理代码的格式 ( { 之后是否换行等 )
选择菜单 Tools -> Options
一键整理代码的换行选项
如上面截图所示,左面目录找到 Formatter 里面的 C++ 里面的 Line breaks,右面就是换行选项。
最常用的是中间部分 Line breaks for braces 里是大括号前后是否换行,选择 Yes 为换行,No 为不换行,As is 为保持原来的状态:
选项 | 说明 |
---|---|
Line break after close brace before ‘catch’ and ‘finally’ | '}' 和 'catch' 或 'finally' 之间是否换行 |
Line break after close brace before ‘else’ | '}' 和 'else' 之间是否换行 |
Line break after open brace | '{' 后面是否换行 |
Line break before close brace | '}' 前面是否换行 |
Line break before open brace | '{' 前面是否换行 |
例1:Line break before open brace ('{' 前面是否换行) 选择 No,一键整理之后:
void __fastcall TForm1::Button1Click(TObject *Sender) {
try {
double x = StrToFloat(Edit1->Text);
double v = std::sqrt(x);
if (std::_finite(v)) {
Memo1->Text = String().sprintf(L"%g 的平方根是 %g", x, v);
}
else {
Memo1->Text = String().sprintf(L"无法计算 %g 的平方根", x);
}
}
catch (Exception &E) {
ShowMessage(L"错误:" + E.Message);
}
}
例2:Line break before open brace ('{' 前面是否换行) 选择 Yes,一键整理之后:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
try
{
double x = StrToFloat(Edit1->Text);
double v = std::sqrt(x);
if (std::_finite(v))
{
Memo1->Text = String().sprintf(L"%g 的平方根是 %g", x, v);
}
else
{
Memo1->Text = String().sprintf(L"无法计算 %g 的平方根", x);
}
}
catch (Exception &E)
{
ShowMessage(L"错误:" + E.Message);
}
}