C++ Builder 一键整理代码格式

如果代码格式很乱,非常不利于阅读和修改,怎样能快速整理代码格式呢?

  • 一键整理代码 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);
    }
}

你可能感兴趣的:(C++ Builder 一键整理代码格式)