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 + -
显示快捷键?