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

View File

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

View File

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

View File

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