codetoolsL TLinkScanenr: using TSourceLog

This commit is contained in:
mattias 2023-06-09 16:15:40 +02:00
parent 1d74ac6a25
commit 13323a7e32
3 changed files with 22 additions and 22 deletions

View File

@ -158,15 +158,15 @@ type
function FindIncludeLink(const IncludeFilename: string): string; function FindIncludeLink(const IncludeFilename: string): string;
function FindIncludeLinkNode(const IncludeFilename: string): TIncludedByLink; function FindIncludeLinkNode(const IncludeFilename: string): TIncludedByLink;
function FindIncludeLinkAVLNode(const IncludeFilename: string): TAVLTreeNode; function FindIncludeLinkAVLNode(const IncludeFilename: string): TAVLTreeNode;
function OnScannerCheckFileOnDisk(Code: pointer): boolean; // true if code changed function OnScannerCheckFileOnDisk(Code: TSourceLog): boolean; // true if code changed
function OnScannerGetFileName(Sender: TObject; Code: pointer): string; function OnScannerGetFileName(Sender: TObject; Code: TSourceLog): string;
function OnScannerLoadSource(Sender: TObject; const AFilename: string; function OnScannerLoadSource(Sender: TObject; const AFilename: string;
OnlyIfExists: boolean): TSourceLog; OnlyIfExists: boolean): TSourceLog;
procedure OnScannerDeleteSource(Sender: TObject; Code: Pointer; procedure OnScannerDeleteSource(Sender: TObject; Code: TSourceLog;
Pos, Len: integer); Pos, Len: integer);
procedure OnScannerGetSourceStatus(Sender: TObject; Code:Pointer; procedure OnScannerGetSourceStatus(Sender: TObject; Code: TSourceLog;
var ReadOnly: boolean); var ReadOnly: boolean);
procedure OnScannerIncludeCode(ParentCode, IncludeCode: pointer); procedure OnScannerIncludeCode(ParentCode, IncludeCode: TSourceLog);
procedure UpdateIncludeLinks; procedure UpdateIncludeLinks;
procedure IncreaseChangeStep; procedure IncreaseChangeStep;
procedure DecodeLoaded(Code: TCodeBuffer; const AFilename: string; procedure DecodeLoaded(Code: TCodeBuffer; const AFilename: string;
@ -895,8 +895,8 @@ begin
FItems.Add(Sender); FItems.Add(Sender);
end; end;
function TCodeCache.OnScannerGetFileName(Sender: TObject; function TCodeCache.OnScannerGetFileName(Sender: TObject; Code: TSourceLog
Code: pointer): string; ): string;
begin begin
if (Code<>nil) then if (Code<>nil) then
Result:=TCodeBuffer(Code).Filename Result:=TCodeBuffer(Code).Filename
@ -919,7 +919,7 @@ begin
OnScannerCheckFileOnDisk(Result); OnScannerCheckFileOnDisk(Result);
end; end;
function TCodeCache.OnScannerCheckFileOnDisk(Code: pointer): boolean; function TCodeCache.OnScannerCheckFileOnDisk(Code: TSourceLog): boolean;
var Buf: TCodeBuffer; var Buf: TCodeBuffer;
begin begin
Result:=false; Result:=false;
@ -944,7 +944,7 @@ begin
//if buf.IsDeleted then debugln(['TCodeCache.OnScannerCheckFileOnDisk ',Buf.Filename,' still deleted']); //if buf.IsDeleted then debugln(['TCodeCache.OnScannerCheckFileOnDisk ',Buf.Filename,' still deleted']);
end; end;
procedure TCodeCache.OnScannerIncludeCode(ParentCode, IncludeCode: pointer); procedure TCodeCache.OnScannerIncludeCode(ParentCode, IncludeCode: TSourceLog);
var var
CodeBuffer: TCodeBuffer; CodeBuffer: TCodeBuffer;
begin begin
@ -957,13 +957,13 @@ begin
end; end;
end; end;
procedure TCodeCache.OnScannerGetSourceStatus(Sender: TObject; Code:Pointer; procedure TCodeCache.OnScannerGetSourceStatus(Sender: TObject;
var ReadOnly: boolean); Code: TSourceLog; var ReadOnly: boolean);
begin begin
ReadOnly:=TCodeBuffer(Code).ReadOnly; ReadOnly:=TCodeBuffer(Code).ReadOnly;
end; end;
procedure TCodeCache.OnScannerDeleteSource(Sender: TObject; Code: Pointer; procedure TCodeCache.OnScannerDeleteSource(Sender: TObject; Code: TSourceLog;
Pos, Len: integer); Pos, Len: integer);
begin begin
TCodeBuffer(Code).Delete(Pos,Len); TCodeBuffer(Code).Delete(Pos,Len);

View File

@ -52,7 +52,7 @@ uses
PPUCodeTools, LFMTrees, DirectivesTree, CodeCompletionTemplater, PPUCodeTools, LFMTrees, DirectivesTree, CodeCompletionTemplater,
PascalParserTool, CodeToolsConfig, CustomCodeTool, FindDeclarationTool, PascalParserTool, CodeToolsConfig, CustomCodeTool, FindDeclarationTool,
IdentCompletionTool, StdCodeTools, ResourceCodeTool, CodeToolsStructs, IdentCompletionTool, StdCodeTools, ResourceCodeTool, CodeToolsStructs,
CTUnitGraph, ExtractProcTool; CTUnitGraph, ExtractProcTool, SourceLog;
type type
TCodeToolManager = class; TCodeToolManager = class;
@ -152,7 +152,7 @@ type
const ContextFlags: TIdentifierListContextFlags); const ContextFlags: TIdentifierListContextFlags);
procedure DoOnRescanFPCDirectoryCache(Sender: TObject); procedure DoOnRescanFPCDirectoryCache(Sender: TObject);
function GetBeautifier: TBeautifyCodeOptions; inline; function GetBeautifier: TBeautifyCodeOptions; inline;
function DoOnScannerGetInitValues(Scanner: TLinkScanner; Code: Pointer; function DoOnScannerGetInitValues(Scanner: TLinkScanner; Code: TSourceLog;
out AChangeStep: integer): TExpressionEvaluator; out AChangeStep: integer): TExpressionEvaluator;
procedure DoOnDefineTreeReadValue(Sender: TObject; const VariableName: string; procedure DoOnDefineTreeReadValue(Sender: TObject; const VariableName: string;
var Value: string; var Handled: boolean); var Value: string; var Handled: boolean);
@ -6093,7 +6093,7 @@ begin
end; end;
function TCodeToolManager.DoOnScannerGetInitValues(Scanner: TLinkScanner; function TCodeToolManager.DoOnScannerGetInitValues(Scanner: TLinkScanner;
Code: Pointer; out AChangeStep: integer): TExpressionEvaluator; Code: TSourceLog; out AChangeStep: integer): TExpressionEvaluator;
begin begin
Result:=nil; Result:=nil;
AChangeStep:=DefineTree.ChangeStep; AChangeStep:=DefineTree.ChangeStep;

View File

@ -77,15 +77,15 @@ type
of object; of object;
TOnLoadSource = function(Sender: TObject; const AFilename: string; TOnLoadSource = function(Sender: TObject; const AFilename: string;
OnlyIfExists: boolean): TSourceLog of object; OnlyIfExists: boolean): TSourceLog of object;
TOnGetSourceStatus = procedure(Sender: TObject; Code: Pointer; TOnGetSourceStatus = procedure(Sender: TObject; Code: TSourceLog;
var ReadOnly: boolean) of object; var ReadOnly: boolean) of object;
TOnDeleteSource = procedure(Sender: TObject; Code: Pointer; Pos, Len: integer) TOnDeleteSource = procedure(Sender: TObject; Code: TSourceLog; Pos, Len: integer)
of object; of object;
TOnGetFileName = function(Sender: TObject; Code: Pointer): string of object; TOnGetFileName = function(Sender: TObject; Code: TSourceLog): string of object;
TOnCheckFileOnDisk = function(Code: Pointer): boolean of object; TOnCheckFileOnDisk = function(Code: TSourceLog): boolean of object;
TOnGetInitValues = function(Scanner: TLinkScanner; Code: Pointer; TOnGetInitValues = function(Scanner: TLinkScanner; Code: TSourceLog;
out ChangeStep: integer): TExpressionEvaluator of object; out ChangeStep: integer): TExpressionEvaluator of object;
TOnIncludeCode = procedure(ParentCode, IncludeCode: Pointer) of object; TOnIncludeCode = procedure(ParentCode, IncludeCode: TSourceLog) of object;
TOnSetWriteLock = procedure(Lock: boolean) of object; TOnSetWriteLock = procedure(Lock: boolean) of object;
TLSOnGetGlobalChangeSteps = procedure(out SourcesChangeStep, FilesChangeStep: int64; TLSOnGetGlobalChangeSteps = procedure(out SourcesChangeStep, FilesChangeStep: int64;
out InitValuesChangeStep: integer) of object; out InitValuesChangeStep: integer) of object;
@ -5044,7 +5044,7 @@ procedure TLinkScanner.DeleteRange(CleanStartPos,CleanEndPos: integer);
} }
var var
LinkIndex, StartPos, Len, aLinkSize: integer; LinkIndex, StartPos, Len, aLinkSize: integer;
ACode: Pointer; ACode: TSourceLog;
begin begin
if CleanStartPos<1 then CleanStartPos:=1; if CleanStartPos<1 then CleanStartPos:=1;
if CleanEndPos>CleanedLen then CleanEndPos:=CleanedLen+1; if CleanEndPos>CleanedLen then CleanEndPos:=CleanedLen+1;