delfor1.pas

来自「delphi代码格式化,最新汉化版」· PAS 代码 · 共 554 行 · 第 1/2 页

PAS
554
字号
  FeedEachUnit := False;
  NoFeedBeforeThen := False;
  NoIndentElseIf := False;
  FeedAfterVar := False;
  FeedBeforeEnd := False;
  FeedRoundBegin := UnChanged;
  FeedAfterSemiColon := False;
  FillNewWords := fmUnchanged;
  IndentTry := False;
  UpperCompDirectives := True;
  UpperNumbers := True;
  SpacePerIndent := 2;
  BlankProc := True;
  RemoveDoubleBlank := False;
  BlankSubProc := False;
  CommentFunction := False;
  CommentUnit := False;
  StrCopy(StartCommentOut, '{(*}');
  StrCopy(EndCommentOut, '{*)}');
  ShortCut := Menus.ShortCut(Word('D'), [ssCtrl]);
end;

procedure TPascalParser.SetBorland;
begin
  SetDefault;
  WrapLines := True;
  IndentComments := True;
  FeedAfterThen := True;
  ExceptSingle := False;
  NoFeedBeforeThen := True;
  FeedAfterVar := True;
  FeedBeforeEnd := True;
  FeedRoundBegin := NewLine;
  FeedAfterSemiColon := True;
  RemoveDoubleBlank := True;
end;

function TPascalParser.GetNewCapFileTime: Integer;
var
  Handle: Integer;
begin
  Handle := FileOpen(FCapFileName, fmOpenRead);
  Result := FileGetDate(Handle);
  FileClose(Handle);
end;

procedure TPascalParser.SetCapFileName(AFileName: PChar);
var
  P: PChar;
  S: array[0..400] of Char;
  TimeStamp: Integer;
begin
  if AFileName <> FCapFileName then
  begin
    StrDispose(FCapFileName);
    if AFileName <> nil then
    begin
      while AFileName^ = ' ' do
        inc(AFileName);
      P := StrEnd(StrCopy(S, AFileName)) - 1;
      while P^ = ' ' do
        Dec(P);
      (P + 1)^ := #0;
      FCapFileName := StrNew(S);
    end
    else
      FCapFileName := nil;

    if (FCapFileName <> nil) and FileExists(FCapFileName) then
    begin
      TimeStamp := GetNewCapFileTime;
      if (TimeStamp <> CapFileTime) then
        LoadCapFile(FCapFileName);
    end
    else
    begin
      Formatter_LoadCapFile(nil);
      CapFileTime := -1;
    end;
  end;
end;

procedure TPascalParser.SetShortCutText(AShortCut: string);
begin
  ShortCut := TextToShortCut(AShortCut);
end;

function TPascalParser.GetShortCutText: string;
begin
  Result := ShortCutToText(ShortCut);
end;

procedure TPascalParser.SaveCapFile(AFileName: PChar);
var
  Path: string;
begin
  Path := ExtractFilePath(ExpandFileName(AFileName));
  if not DirectoryExists(Path) then
    ForceDirectories(Path);
  Formatter_SaveCapFile(AFileName);
end;

procedure TPascalParser.Clear;
begin
  if CurrentDllVersion <> Formatter_Version then
    Exception.Create('Wrong version of DELFORDLL');
  Formatter_clear;
end;

procedure TPascalParser.LoadFromFile(AFileName: PChar);
begin
  Formatter_LoadFromFile(AFileName, @FSettings, SizeOf(TSettings));
end;

procedure TPascalParser.LoadFromList(AList: TStringList);
begin
  Formatter_LoadFromList(AList, @FSettings, SizeOf(TSettings));
end;

function TPascalParser.Parse: Boolean;
begin
  Result := Formatter_Parse(@FSettings, SizeOf(TSettings));
end;

procedure TPascalParser.Config(DoRead: Boolean);
{$IFDEF ver100}
type
  Cardinal = Integer;
{$ENDIF}
const
  Sign: Cardinal = $623DFE51;
var
  Signature: Cardinal;
  Err, Size: Integer;
  Cfg: file;
  S: array[0..260] of Char;
begin
  if CfgFile = '' then
    CfgFile := 'DelForExp.cfg';
  CfgFile := ChangeFileExt(CfgFile, '.cfg');
  if DoRead then
  begin
    if not FileExists(CfgFile) then
      CapFileName := nil
    else
    begin
      if FillNewWords in [fmAddNewWord, fmAddUse, fmAddUseExcept] then
        SaveCapFile(CapFileName);
      AssignFile(Cfg, CfgFile);
      try
        Reset(Cfg, 1);
        BlockRead(Cfg, Signature, SizeOf(Signature), Err);
        if (Err = SizeOf(Signature)) and (Signature = Sign) then
        begin
          BlockRead(Cfg, FSettings, SizeOf(Settings), Err);
          BlockRead(Cfg, Size, SizeOf(Integer));
          if Size > 0 then
          begin
            BlockRead(Cfg, S, Size);
            CapFileName := S;
          end
          else
            CapFileName := nil;
          ShortCut := Settings.ShortCut;
        end;
      finally
        CloseFile(Cfg);
      end;
    end;
  end
  else
  begin
    AssignFile(Cfg, CfgFile);
    try
      Rewrite(Cfg, 1);
      Signature := Sign;
      BlockWrite(Cfg, Signature, SizeOf(Signature));
      BlockWrite(Cfg, Settings, SizeOf(Settings));
      if CapFileName = nil then
      begin
        Size := 0;
        BlockWrite(Cfg, Size, SizeOf(Integer));
      end
      else
      begin
        Size := StrLen(CapFileName) + 1;
        BlockWrite(Cfg, Size, SizeOf(Integer));
        StrCopy(S, CapFileName);
        BlockWrite(Cfg, S, Size);
      end;
    finally
      CloseFile(Cfg);
    end;
  end;
end;

procedure TPascalParser.WriteToFile(AFileName: PChar);
begin
  Formatter_writeToFile(AFileName);
end;

procedure TPascalParser.SetTextStr(AText: PChar);
begin
  Formatter_SetTextStr(AText);
end;

function TPascalParser.GetTextStr: PChar;
begin
  Result := Formatter_GetTextStr;
end;

destructor TPascalParser.Destroy;
begin
  inherited Destroy;
  if @Formatter_Destroy <> nil then
  begin
    if FillNewWords in [fmAddNewWord, fmAddUse, fmAddUseExcept] then
      SaveCapFile(CapFileName);
    CapFileName := nil;
    Formatter_Destroy;
  end;
end;

procedure TPascalParser.SetShortCut(AShortCut: TShortCut);
begin
  FSettings.ShortCut := AShortCut;

  if IDETextExpert <> nil then
    IDETextExpert.MenuShortCut := AShortCut;
end;

procedure TPascalParser.TimerTimer(Sender: TObject);
begin
  ShortCut := Settings.ShortCut;
  Timer.Free;
  Timer := nil;
end;

procedure TPascalParser.SetFillNewWords(AFillNewWords: TFillMode);
begin
  if Settings.FillNewWords in [fmAddNewWord, fmAddUse, fmAddUseExcept] then
    SaveCapFile(CapFileName);
  FSettings.FillNewWords := AFillNewWords;
end;

function TPascalParser.GetRootDir: string;
begin
  if FRootDir = '' then
    FRootDir := ExtractFilePath(ParamStr(0));
  Result := FRootDir;
end;

procedure TPascalParser.SetRootdir(const Value: string);
begin
  FRootDir := Value;
  if FRootDir[Length(FRootDir)] <> '\' then
    FRootDir := FRootDir + '\';
end;

function TPascalParser.GetShortCut: TShortCut;
begin
  Result := TShortCut(Settings.ShortCut);
end;

procedure TPascalParser.LoadCapFile(AFileName: PChar);
begin
  Formatter_LoadCapFile(AFileName);
end;

procedure TPascalParser.SetOnProgress(const Value: TProgressEvent);
begin
  FOnProgress := Value;
  Formatter_SetOnProgress(Value);
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?