codetools: added ChangeStamp for all boss files

git-svn-id: trunk@26334 -
This commit is contained in:
mattias 2010-06-30 04:44:00 +00:00
parent 1fdeeff22c
commit 63fb9e4fd8
4 changed files with 27 additions and 7 deletions

View File

@ -69,6 +69,7 @@ type
procedure SetScanner(const Value: TLinkScanner); procedure SetScanner(const Value: TLinkScanner);
procedure SetIsDeleted(const NewValue: boolean); procedure SetIsDeleted(const NewValue: boolean);
protected protected
procedure IncreaseChangeStep; override;
procedure DecodeLoaded(const AFilename: string; procedure DecodeLoaded(const AFilename: string;
var ASource, ADiskEncoding, AMemEncoding: string); override; var ASource, ADiskEncoding, AMemEncoding: string); override;
procedure EncodeSaving(const AFilename: string; var ASource: string); override; procedure EncodeSaving(const AFilename: string; var ASource: string); override;
@ -134,6 +135,7 @@ type
TCodeCache = class(TObject) TCodeCache = class(TObject)
private private
FChangeStamp: int64;
FDefaultEncoding: string; FDefaultEncoding: string;
FItems: TAVLTree; // tree of TCodeBuffer FItems: TAVLTree; // tree of TCodeBuffer
FIncludeLinks: TAVLTree; // tree of TIncludedByLink FIncludeLinks: TAVLTree; // tree of TIncludedByLink
@ -197,6 +199,7 @@ type
procedure WriteAllFileNames; procedure WriteAllFileNames;
procedure WriteDebugReport; procedure WriteDebugReport;
function CalcMemSize(Stats: TCTMemStats): PtrUInt; function CalcMemSize(Stats: TCTMemStats): PtrUInt;
procedure IncreaseChangeStamp;
public public
property ExpirationTimeInDays: integer property ExpirationTimeInDays: integer
read FExpirationTimeInDays write FExpirationTimeInDays; read FExpirationTimeInDays write FExpirationTimeInDays;
@ -209,6 +212,7 @@ type
property OnEncodeSaving: TOnCodeCacheEncodeSaving read FOnEncodeSaving property OnEncodeSaving: TOnCodeCacheEncodeSaving read FOnEncodeSaving
write FOnEncodeSaving; write FOnEncodeSaving;
property DefaultEncoding: string read FDefaultEncoding write FDefaultEncoding; property DefaultEncoding: string read FDefaultEncoding write FDefaultEncoding;
property ChangeStamp: int64 read FChangeStamp;
end; end;
@ -958,6 +962,14 @@ begin
end; end;
end; end;
procedure TCodeCache.IncreaseChangeStamp;
begin
if FChangeStamp<high(FChangeStamp) then
inc(FChangeStamp)
else
FChangeStamp:=low(FChangeStamp);
end;
procedure TCodeCache.WriteAllFileNames; procedure TCodeCache.WriteAllFileNames;
procedure WriteNode(ANode: TAVLTreeNode); procedure WriteNode(ANode: TAVLTreeNode);
begin begin
@ -1104,6 +1116,13 @@ begin
end; end;
end; end;
procedure TCodeBuffer.IncreaseChangeStep;
begin
inherited IncreaseChangeStep;
if FCodeCache<>nil then
FCodeCache.IncreaseChangeStamp;
end;
procedure TCodeBuffer.DecodeLoaded(const AFilename: string; var ASource, procedure TCodeBuffer.DecodeLoaded(const AFilename: string; var ASource,
ADiskEncoding, AMemEncoding: string); ADiskEncoding, AMemEncoding: string);
begin begin

View File

@ -1158,6 +1158,7 @@ begin
// cursor is in class/object definition // cursor is in class/object definition
if (AClassNode.SubDesc and ctnsForwardDeclaration)>0 then exit; if (AClassNode.SubDesc and ctnsForwardDeclaration)>0 then exit;
CheckWholeUnitParsed(AClassNode,CursorNode); CheckWholeUnitParsed(AClassNode,CursorNode);
//BuildSubTreeForClass(AClassNode);
// parse class and build CodeTreeNodes for all properties/methods // parse class and build CodeTreeNodes for all properties/methods
{$IFDEF CTDEBUG} {$IFDEF CTDEBUG}
DebugLn('TCodeCompletionCodeTool.CompleteCode C ',dbgs(CleanCursorPos),', |',copy(Src,CleanCursorPos,8)); DebugLn('TCodeCompletionCodeTool.CompleteCode C ',dbgs(CleanCursorPos),', |',copy(Src,CleanCursorPos,8));

View File

@ -186,7 +186,7 @@ type
TFileStateCache = class TFileStateCache = class
private private
FFiles: TAVLTree; // tree of TFileStateCacheItem FFiles: TAVLTree; // tree of TFileStateCacheItem
FTimeStamp: integer; FTimeStamp: int64;
FLockCount: integer; FLockCount: integer;
FChangeTimeStampHandler: array of TNotifyEvent; FChangeTimeStampHandler: array of TNotifyEvent;
procedure SetFlag(AFile: TFileStateCacheItem; procedure SetFlag(AFile: TFileStateCacheItem;
@ -215,7 +215,7 @@ type
procedure RemoveChangeTimeStampHandler(const Handler: TNotifyEvent); procedure RemoveChangeTimeStampHandler(const Handler: TNotifyEvent);
function CalcMemSize: PtrUint; function CalcMemSize: PtrUint;
public public
property TimeStamp: integer read FTimeStamp; property TimeStamp: int64 read FTimeStamp;
end; end;
var var
@ -2993,10 +2993,10 @@ begin
if Self=nil then exit; if Self=nil then exit;
if AFilename='' then begin if AFilename='' then begin
// invalidate all // invalidate all
if FTimeStamp<maxLongint then if FTimeStamp<high(FTimeStamp) then
inc(FTimeStamp) inc(FTimeStamp)
else else
FTimeStamp:=-maxLongint; FTimeStamp:=low(FTimeStamp);
for i:=0 to length(FChangeTimeStampHandler)-1 do for i:=0 to length(FChangeTimeStampHandler)-1 do
FChangeTimeStampHandler[i](Self); FChangeTimeStampHandler[i](Self);
end else begin end else begin

View File

@ -123,7 +123,7 @@ type
procedure SetReadOnly(const Value: boolean); procedure SetReadOnly(const Value: boolean);
function IndexOfChangeHook(AChangeHook: TOnSourceChange): integer; function IndexOfChangeHook(AChangeHook: TOnSourceChange): integer;
protected protected
procedure IncreaseChangeStep; procedure IncreaseChangeStep; virtual;
procedure DecodeLoaded(const AFilename: string; procedure DecodeLoaded(const AFilename: string;
var ASource, ADiskEncoding, AMemEncoding: string); virtual; var ASource, ADiskEncoding, AMemEncoding: string); virtual;
procedure EncodeSaving(const AFilename: string; var ASource: string); virtual; procedure EncodeSaving(const AFilename: string; var ASource: string); virtual;
@ -814,10 +814,10 @@ end;
procedure TSourceLog.IncreaseChangeStep; procedure TSourceLog.IncreaseChangeStep;
begin begin
if FChangeStep<>$7fffffff then if FChangeStep<High(FChangeStep) then
inc(FChangeStep) inc(FChangeStep)
else else
FChangeStep:=-$7fffffff; FChangeStep:=low(FChangeStep);
//DebugLn('[TSourceLog.IncreaseChangeStep] ',FChangeStep,',',DbgS(Self)); //DebugLn('[TSourceLog.IncreaseChangeStep] ',FChangeStep,',',DbgS(Self));
end; end;