对“切换注释”功能的改进或替换



如您所知,Delphi IDE的Toggle Comment功能允许您通过在每行的开头放置行尾注释符号(//)来注释所选的行块。

例如,如果我有一段代码:

procedure TForm1.ProcessLists;
var
  jItem: TJSONObject;
  i: Integer;
begin
  while not ADOAllData.Eof do
  begin
    jItem := TJSONObject.Create;
    jItem.AddPair(TJSONPair.Create('list_id', ListID));
    for i := 0 to ADOAllData.Fields.Count - 1 do
    begin
      jItem.AddPair(TJSONPair.Create(ADOAllData.Fields[i].FieldName,
                                     ADOAllData.Fields[i].AsString));
    end;
    jArray.Add(jItem);
    ADOAllData.Next;
  end;
end;

并且想要注释掉for循环,ToggleComment命令会给我这样的结果:

procedure TForm1.ProcessLists;
var
  jItem: TJSONObject;
  i: Integer;
begin
  while not ADOAllData.Eof do
  begin
    jItem := TJSONObject.Create;
    jItem.AddPair(TJSONPair.Create('list_id', ListID));
//    for i := 0 to ADOAllData.Fields.Count - 1 do
//    begin
//      jItem.AddPair(TJSONPair.Create(ADOAllData.Fields[i].FieldName,
//                                     ADOAllData.Fields[i].AsString));
//    end;
    jArray.Add(jItem);
    ADOAllData.Next;
  end;
end;

然而,我更喜欢这样:

procedure TForm1.ProcessLists;
var
  jItem: TJSONObject;
  i: Integer;
begin
  while not ADOAllData.Eof do
  begin
    jItem := TJSONObject.Create;
    jItem.AddPair(TJSONPair.Create('list_id', ListID));
    //for i := 0 to ADOAllData.Fields.Count - 1 do
    //begin
    //  jItem.AddPair(TJSONPair.Create(ADOAllData.Fields[i].FieldName,
    //                                 ADOAllData.Fields[i].AsString));
    //end;
    jArray.Add(jItem);
    ADOAllData.Next;
  end;
end;

即当每行的注释符号被放置在所选块中最左边的非空格字符的位置时。这样,如果我在最后一行注释的末尾按下Enter,在注释的部分后面添加代码,那么当前嵌套级别的缩进将得到尊重。

那么,有没有一种方法可以改进如上所述的ToggleComment功能,或者,也许有一种替代方法可以在IDE中工作并满足相同的要求?

请注意,我知道块注释分隔符,并意识到它们使注释掉大部分代码变得非常容易。有些情况下我更喜欢它们,还有一些情况下我喜欢行末评论。这个问题实际上是关于后者的。

您可以执行以下

  • 方法#1

    使用//对您想要的块进行注释。

    选择(突出显示)该块,然后按Shift+Tab或仅按Tab调整该块的位置

  • 方法#2

    选择(突出显示)块并按Shift+

最新更新