mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-05 17:27:26 +01:00
+ Code Complete and Template saving
This commit is contained in:
parent
0bc5fa8d4c
commit
618dd1eb3d
@ -18,7 +18,7 @@ unit FPDesk;
|
||||
interface
|
||||
|
||||
const
|
||||
DesktopVersion = $0005; { <- if you change any Load&Store methods,
|
||||
DesktopVersion = $0006; { <- if you change any Load&Store methods,
|
||||
default object properties (Options,State)
|
||||
then you should also change this }
|
||||
|
||||
@ -30,6 +30,8 @@ const
|
||||
ResBreakpoints = 'BREAKPOINTS';
|
||||
ResDesktop = 'DESKTOP';
|
||||
ResSymbols = 'SYMBOLS';
|
||||
ResCodeComplete = 'CODECOMPLETE';
|
||||
ResCodeTemplates = 'CODETEMPLATES';
|
||||
|
||||
procedure InitDesktopFile;
|
||||
function LoadDesktop: boolean;
|
||||
@ -48,7 +50,8 @@ uses Dos,
|
||||
{$ifndef NODEBUG}
|
||||
fpdebug,
|
||||
{$endif ndef NODEBUG}
|
||||
FPConst,FPVars,FPUtils,FPViews,FPCompile,FPTools,FPHelp;
|
||||
FPConst,FPVars,FPUtils,FPViews,FPCompile,FPTools,FPHelp,
|
||||
FPCodCmp,FPCodTmp;
|
||||
|
||||
procedure InitDesktopFile;
|
||||
begin
|
||||
@ -354,6 +357,82 @@ begin
|
||||
WriteFlags:=OK;
|
||||
end;
|
||||
|
||||
function ReadCodeComplete(F: PResourceFile): boolean;
|
||||
var S: PMemoryStream;
|
||||
OK: boolean;
|
||||
R: PResource;
|
||||
begin
|
||||
PushStatus('Reading CodeComplete wordlist...');
|
||||
New(S, Init(1024,1024));
|
||||
OK:=F^.ReadResourceEntryToStream(resCodeComplete,langDefault,S^);
|
||||
S^.Seek(0);
|
||||
if OK then
|
||||
OK:=LoadCodeComplete(S^);
|
||||
Dispose(S, Done);
|
||||
if OK=false then
|
||||
ErrorBox('Error loading CodeComplete wordlist',nil);
|
||||
PopStatus;
|
||||
ReadCodeComplete:=OK;
|
||||
end;
|
||||
|
||||
function WriteCodeComplete(F: PResourceFile): boolean;
|
||||
var OK: boolean;
|
||||
S: PMemoryStream;
|
||||
begin
|
||||
PushStatus('Writing CodeComplete wordlist...');
|
||||
New(S, Init(1024,1024));
|
||||
OK:=StoreCodeComplete(S^);
|
||||
if OK then
|
||||
begin
|
||||
S^.Seek(0);
|
||||
F^.CreateResource(resCodeComplete,rcBinary,0);
|
||||
OK:=F^.AddResourceEntryFromStream(resCodeComplete,langDefault,0,S^,S^.GetSize);
|
||||
end;
|
||||
Dispose(S, Done);
|
||||
if OK=false then
|
||||
ErrorBox('Error writing CodeComplete wordlist',nil);
|
||||
PopStatus;
|
||||
WriteCodeComplete:=OK;
|
||||
end;
|
||||
|
||||
function ReadCodeTemplates(F: PResourceFile): boolean;
|
||||
var S: PMemoryStream;
|
||||
OK: boolean;
|
||||
R: PResource;
|
||||
begin
|
||||
PushStatus('Reading CodeTemplates...');
|
||||
New(S, Init(1024,4096));
|
||||
OK:=F^.ReadResourceEntryToStream(resCodeTemplates,langDefault,S^);
|
||||
S^.Seek(0);
|
||||
if OK then
|
||||
OK:=LoadCodeTemplates(S^);
|
||||
Dispose(S, Done);
|
||||
if OK=false then
|
||||
ErrorBox('Error loading CodeTemplates wordlist',nil);
|
||||
PopStatus;
|
||||
ReadCodeTemplates:=OK;
|
||||
end;
|
||||
|
||||
function WriteCodeTemplates(F: PResourceFile): boolean;
|
||||
var OK: boolean;
|
||||
S: PMemoryStream;
|
||||
begin
|
||||
PushStatus('Writing CodeTemplates...');
|
||||
New(S, Init(1024,4096));
|
||||
OK:=StoreCodeTemplates(S^);
|
||||
if OK then
|
||||
begin
|
||||
S^.Seek(0);
|
||||
F^.CreateResource(resCodeTemplates,rcBinary,0);
|
||||
OK:=F^.AddResourceEntryFromStream(resCodeTemplates,langDefault,0,S^,S^.GetSize);
|
||||
end;
|
||||
Dispose(S, Done);
|
||||
if OK=false then
|
||||
ErrorBox('Error writing CodeTemplates',nil);
|
||||
PopStatus;
|
||||
WriteCodeTemplates:=OK;
|
||||
end;
|
||||
|
||||
function ReadFlags(F: PResourceFile): boolean;
|
||||
var
|
||||
size : sw_word;
|
||||
@ -397,9 +476,11 @@ end;
|
||||
function ReadSymbols(F: PResourceFile): boolean;
|
||||
var S: PMemoryStream;
|
||||
OK: boolean;
|
||||
R: PResource;
|
||||
begin
|
||||
{ if no symbols stored ... no problems }
|
||||
if not Assigned(F^.FindResource(resSymbols)) then
|
||||
R:=F^.FindResource(resSymbols);
|
||||
if not Assigned(R) then
|
||||
exit;
|
||||
PushStatus('Reading symbol information...');
|
||||
New(S, Init(32*1024,4096));
|
||||
@ -470,6 +551,10 @@ begin
|
||||
{ no errors if no browser info available PM }
|
||||
if ((DesktopFileFlags and dfSymbolInformation)<>0) then
|
||||
OK:=OK and ReadSymbols(F);
|
||||
if ((DesktopFileFlags and dfCodeCompleteWords)<>0) then
|
||||
OK:=OK and ReadCodeComplete(F);
|
||||
if ((DesktopFileFlags and dfCodeTemplates)<>0) then
|
||||
OK:=OK and ReadCodeTemplates(F);
|
||||
Dispose(F, Done);
|
||||
end;
|
||||
|
||||
@ -508,6 +593,10 @@ begin
|
||||
{ no errors if no browser info available PM }
|
||||
if ((DesktopFileFlags and dfSymbolInformation)<>0) then
|
||||
OK:=OK and (WriteSymbols(F) or not Assigned(Modules));
|
||||
if ((DesktopFileFlags and dfCodeCompleteWords)<>0) then
|
||||
OK:=OK and WriteCodeComplete(F);
|
||||
if ((DesktopFileFlags and dfCodeTemplates)<>0) then
|
||||
OK:=OK and WriteCodeTemplates(F);
|
||||
Dispose(F, Done);
|
||||
end;
|
||||
if OK then
|
||||
@ -558,7 +647,10 @@ end;
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.20 2000-02-04 00:12:57 pierre
|
||||
Revision 1.21 2000-02-07 11:55:27 pierre
|
||||
+ Code Complete and Template saving
|
||||
|
||||
Revision 1.20 2000/02/04 00:12:57 pierre
|
||||
* Breakpoint are marked in source at desktop loading
|
||||
|
||||
Revision 1.19 2000/01/25 00:26:36 pierre
|
||||
|
||||
Loading…
Reference in New Issue
Block a user