mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-19 17:19:46 +02:00
added prettyformat package for IDE beautification features from Michael VC
git-svn-id: trunk@7920 -
This commit is contained in:
parent
52d68d377f
commit
494dd9c1b5
4
.gitattributes
vendored
4
.gitattributes
vendored
@ -145,6 +145,10 @@ components/mysql/registermysql.lrs svneol=native#text/pascal
|
||||
components/mysql/registermysql.pas svneol=native#text/pascal
|
||||
components/mysql/tmysqldatabase.xpm -text svneol=native#image/x-xpixmap
|
||||
components/mysql/tmysqldataset.xpm -text svneol=native#image/x-xpixmap
|
||||
components/prettyformat/pfidesource.pas svneol=native#text/plain
|
||||
components/prettyformat/prettyformat.lpk svneol=native#text/plain
|
||||
components/prettyformat/prettyformat.pas svneol=native#text/plain
|
||||
components/prettyformat/ptopu.pp svneol=native#text/plain
|
||||
components/printers/linux/cupsdyn.pp svneol=native#text/pascal
|
||||
components/printers/linux/cupsprinters.inc svneol=native#text/pascal
|
||||
components/printers/linux/cupsprinters_h.inc svneol=native#text/pascal
|
||||
|
147
components/prettyformat/pfidesource.pas
Normal file
147
components/prettyformat/pfidesource.pas
Normal file
@ -0,0 +1,147 @@
|
||||
unit pfidesource;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils,LCLtype;
|
||||
|
||||
Procedure PrettyPrintSelection(Sender : TObject);
|
||||
Procedure PrettyPrintFile(Sender : TObject);
|
||||
|
||||
Procedure Register;
|
||||
|
||||
implementation
|
||||
|
||||
uses menuintf, idecommands, srceditorintf, ptopu;
|
||||
|
||||
Const
|
||||
SCmdPFSelection = 'PrettyFormatSelection';
|
||||
SCmdPFFile = 'PrettyFormatFile';
|
||||
SCatFormatting = 'Formatting';
|
||||
|
||||
Resourcestring
|
||||
SDescrPFSelection = 'Pretty-Format Selection';
|
||||
SDescrPFFile = 'Pretty-Format File';
|
||||
SDescrFormatting = 'Formatting commands';
|
||||
|
||||
Var
|
||||
CmdFormatSelection : TIDECommand;
|
||||
CmdFormatFile : TIDECommand;
|
||||
|
||||
Procedure Register;
|
||||
|
||||
Var
|
||||
Key : TIDEShortCut;
|
||||
Cat : TIDECommandCategory;
|
||||
|
||||
begin
|
||||
Key:=IDEShortCut(VK_F,[SSctrl,ssShift],VK_UNKNOWN,[]);
|
||||
{$ifndef USECustomCategory}
|
||||
Cat:=IDECommandList.CreateCategory(Nil,
|
||||
SCatFormatting,
|
||||
SDescrFormatting,
|
||||
IDECmdScopeSrcEditOnly);
|
||||
{$else}
|
||||
cat:=nil,
|
||||
{$endif}
|
||||
CmdFormatSelection:=RegisterIDECommand(Cat,
|
||||
SDescrPFSelection,
|
||||
SCmdPFSelection,
|
||||
Key);
|
||||
Key:=IDEShortCut(VK_F,[SSctrl,ssAlt],VK_UNKNOWN,[]);
|
||||
CmdFormatFile:=RegisterIDECommand(Cat,
|
||||
SDescrPFFile,
|
||||
SCmdPFFile,
|
||||
Key);
|
||||
RegisterIDEMenuCommand(SrcEditSubMenuRefactor,
|
||||
SCmdPFSelection,
|
||||
SDescrPFSelection,
|
||||
Nil,@PrettyPrintSelection,CmdFormatSelection);
|
||||
RegisterIDEMenuCommand(SrcEditSubMenuRefactor,
|
||||
SCmdPFFile,
|
||||
SDescrPFFile,
|
||||
Nil,@PrettyPrintFile,CmdFormatFile);
|
||||
RegisterIDEMenuCommand(itmEditBlockIndentation,
|
||||
SCmdPFSelection,
|
||||
SDescrPFSelection,
|
||||
Nil,@PrettyPrintSelection,CmdFormatSelection);
|
||||
RegisterIDEMenuCommand(itmEditBlockIndentation,
|
||||
SCmdPFFile,
|
||||
SDescrPFFile,
|
||||
Nil,@PrettyPrintFile,CmdFormatFile);
|
||||
end;
|
||||
|
||||
Procedure PrettyPrintStream(SIn,SOut : TStream);
|
||||
|
||||
Var
|
||||
PP : TPrettyPrinter;
|
||||
|
||||
begin
|
||||
PP:=TPrettyPrinter.Create;
|
||||
Try
|
||||
PP.Source:=Sin;
|
||||
PP.Dest:=Sout;
|
||||
PP.PrettyPrint;
|
||||
Finally
|
||||
PP.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
Procedure PrettyPrintSelection(Sender : TObject);
|
||||
|
||||
Var
|
||||
S1,S2 : TSTringStream;
|
||||
E : TSourceEditorInterface;
|
||||
|
||||
begin
|
||||
if Sender=nil then ;
|
||||
E:=SourceEditorWindow.ActiveEditor;
|
||||
If (E=Nil) or (Not E.SelectionAvailable) then
|
||||
Exit;
|
||||
S1:=TStringStream.Create(E.Selection);
|
||||
Try
|
||||
S2:=TStringStream.Create('');
|
||||
Try
|
||||
S1.Position:=0;
|
||||
PrettyPrintStream(S1,S2);
|
||||
E.Selection:=S2.DataString;
|
||||
Finally
|
||||
S2.Free;
|
||||
end;
|
||||
Finally
|
||||
S1.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
Procedure PrettyPrintFile(Sender : TObject);
|
||||
|
||||
Var
|
||||
S1,S2 : TMemoryStream;
|
||||
E : TSourceEditorInterface;
|
||||
|
||||
begin
|
||||
if Sender=nil then ;
|
||||
E:=SourceEditorWindow.ActiveEditor;
|
||||
If (E=Nil) then
|
||||
Exit;
|
||||
S1:=TMemoryStream.Create;
|
||||
Try
|
||||
E.Lines.SaveToStream(S1);
|
||||
S1.Position:=0;
|
||||
S2:=TMemoryStream.Create;
|
||||
Try
|
||||
PrettyPrintStream(S1,S2);
|
||||
S2.Position:=0;
|
||||
E.Lines.LoadFromStream(S2);
|
||||
Finally
|
||||
S2.Free;
|
||||
end;
|
||||
Finally
|
||||
S1.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
46
components/prettyformat/prettyformat.lpk
Normal file
46
components/prettyformat/prettyformat.lpk
Normal file
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0"?>
|
||||
<CONFIG>
|
||||
<Package Version="2">
|
||||
<Name Value="prettyformat"/>
|
||||
<CompilerOptions>
|
||||
<Version Value="5"/>
|
||||
<SearchPaths>
|
||||
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)/"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
<Generate Value="Faster"/>
|
||||
</CodeGeneration>
|
||||
<Other>
|
||||
<CompilerPath Value="$(CompPath)"/>
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Files Count="2">
|
||||
<Item1>
|
||||
<Filename Value="ptopu.pp"/>
|
||||
<UnitName Value="PtoPu"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Filename Value="pfidesource.pas"/>
|
||||
<HasRegisterProc Value="True"/>
|
||||
<UnitName Value="pfidesource"/>
|
||||
</Item2>
|
||||
</Files>
|
||||
<Type Value="RunAndDesignTime"/>
|
||||
<RequiredPkgs Count="2">
|
||||
<Item1>
|
||||
<PackageName Value="IDEIntf"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="FCL"/>
|
||||
<MinVersion Major="1" Valid="True"/>
|
||||
</Item2>
|
||||
</RequiredPkgs>
|
||||
<UsageOptions>
|
||||
<UnitPath Value="$(PkgOutDir)"/>
|
||||
</UsageOptions>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
<IgnoreBinaries Value="False"/>
|
||||
</PublishOptions>
|
||||
</Package>
|
||||
</CONFIG>
|
21
components/prettyformat/prettyformat.pas
Normal file
21
components/prettyformat/prettyformat.pas
Normal file
@ -0,0 +1,21 @@
|
||||
{ This file was automatically created by Lazarus. Do not edit!
|
||||
This source is only used to compile and install the package.
|
||||
}
|
||||
|
||||
unit prettyformat;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
PtoPu, pfidesource, LazarusPackageIntf;
|
||||
|
||||
implementation
|
||||
|
||||
procedure Register;
|
||||
begin
|
||||
RegisterUnit('pfidesource', @pfidesource.Register);
|
||||
end;
|
||||
|
||||
initialization
|
||||
RegisterPackage('prettyformat', @Register);
|
||||
end.
|
1386
components/prettyformat/ptopu.pp
Normal file
1386
components/prettyformat/ptopu.pp
Normal file
File diff suppressed because it is too large
Load Diff
@ -2227,7 +2227,7 @@ begin
|
||||
FFlags:=[lpfAutoIncrementVersionOnBuild];
|
||||
FAutoUpdate:=pupAsNeeded;
|
||||
fCompilerOptions.UnitOutputDirectory:=
|
||||
'lib'+PathDelim+'$(TargetCPU)-$(Target_OS)'+PathDelim;
|
||||
'lib'+PathDelim+'$(TargetCPU)-$(TargetOS)'+PathDelim;
|
||||
FUsageOptions.UnitPath:='$(PkgOutDir)';
|
||||
end else begin
|
||||
FFlags:=[lpfDestroying];
|
||||
|
Loading…
Reference in New Issue
Block a user