mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-08 04:16:10 +02:00
IDE: sourceditor: connect scanner when setting codebuffer
git-svn-id: trunk@41134 -
This commit is contained in:
parent
186067a9f8
commit
d82e018aaf
@ -219,6 +219,7 @@ type
|
|||||||
procedure UpdateCodeBuffer;
|
procedure UpdateCodeBuffer;
|
||||||
property CodeBuffer: TCodeBuffer read FCodeBuffer write SetCodeBuffer;
|
property CodeBuffer: TCodeBuffer read FCodeBuffer write SetCodeBuffer;
|
||||||
procedure ConnectScanner(Scanner: TLinkScanner);
|
procedure ConnectScanner(Scanner: TLinkScanner);
|
||||||
|
procedure DisconnectScanner(Scanner: TLinkScanner);
|
||||||
function Filename: string; override;
|
function Filename: string; override;
|
||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
@ -2268,8 +2269,11 @@ var
|
|||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
if FCodeBuffer = AValue then exit;
|
if FCodeBuffer = AValue then exit;
|
||||||
if FCodeBuffer<>nil then
|
if FCodeBuffer<>nil then begin
|
||||||
FCodeBuffer.RemoveChangeHook(@OnCodeBufferChanged);
|
FCodeBuffer.RemoveChangeHook(@OnCodeBufferChanged);
|
||||||
|
if FCodeBuffer.Scanner<>nil then
|
||||||
|
DisconnectScanner(FCodeBuffer.Scanner);
|
||||||
|
end;
|
||||||
FCodeBuffer := AValue;
|
FCodeBuffer := AValue;
|
||||||
if FCodeBuffer <> nil then
|
if FCodeBuffer <> nil then
|
||||||
begin
|
begin
|
||||||
@ -2281,6 +2285,8 @@ begin
|
|||||||
SharedEditors[i].ClearExecutionMarks;
|
SharedEditors[i].ClearExecutionMarks;
|
||||||
end;
|
end;
|
||||||
FCodeBuffer.AddChangeHook(@OnCodeBufferChanged);
|
FCodeBuffer.AddChangeHook(@OnCodeBufferChanged);
|
||||||
|
if FCodeBuffer.Scanner<>nil then
|
||||||
|
ConnectScanner(FCodeBuffer.Scanner);
|
||||||
if (FIgnoreCodeBufferLock <= 0) and (not FCodeBuffer.IsEqual(SynEditor.Lines))
|
if (FIgnoreCodeBufferLock <= 0) and (not FCodeBuffer.IsEqual(SynEditor.Lines))
|
||||||
then begin
|
then begin
|
||||||
{$IFDEF IDE_DEBUG}
|
{$IFDEF IDE_DEBUG}
|
||||||
@ -2571,12 +2577,24 @@ end;
|
|||||||
|
|
||||||
procedure TSourceEditorSharedValues.ConnectScanner(Scanner: TLinkScanner);
|
procedure TSourceEditorSharedValues.ConnectScanner(Scanner: TLinkScanner);
|
||||||
begin
|
begin
|
||||||
|
if Scanner=nil then exit;
|
||||||
if FLinkScanners.IndexOf(Scanner)>=0 then exit;
|
if FLinkScanners.IndexOf(Scanner)>=0 then exit;
|
||||||
//debugln(['TSourceEditorSharedValues.ConnectScanner ',Filename,' ',Scanner.MainFilename]);
|
//debugln(['TSourceEditorSharedValues.ConnectScanner ',Filename,' ',Scanner.MainFilename]);
|
||||||
FLinkScanners.Add(Scanner);
|
FLinkScanners.Add(Scanner);
|
||||||
Scanner.DemandStoreDirectives;
|
Scanner.DemandStoreDirectives;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TSourceEditorSharedValues.DisconnectScanner(Scanner: TLinkScanner);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
begin
|
||||||
|
if Scanner=nil then exit;
|
||||||
|
i:=FLinkScanners.IndexOf(Scanner);
|
||||||
|
if i<0 then exit;
|
||||||
|
FLinkScanners.Delete(i);
|
||||||
|
Scanner.ReleaseStoreDirectives;
|
||||||
|
end;
|
||||||
|
|
||||||
function TSourceEditorSharedValues.Filename: string;
|
function TSourceEditorSharedValues.Filename: string;
|
||||||
begin
|
begin
|
||||||
Result:=FCodeBuffer.Filename;
|
Result:=FCodeBuffer.Filename;
|
||||||
|
Loading…
Reference in New Issue
Block a user