SynEdit: Ifdef Markup: only scan if markup is active

git-svn-id: trunk@41216 -
This commit is contained in:
martin 2013-05-15 20:59:05 +00:00
parent aff6e05312
commit 1084ad7aed
3 changed files with 14 additions and 1 deletions

View File

@ -2587,7 +2587,7 @@ var
Entry, EntryFound, Peer: TSynMarkupHighIfDefEntry;
m: TSynMarkupHighAllMatch;
begin
if (FPaintLock > 0) or (not SynEdit.IsVisible) then begin
if (FPaintLock > 0) or (not SynEdit.IsVisible) or (not MarkupInfo.IsEnabled) then begin
FNeedValidate := True;
exit;
end;
@ -2755,6 +2755,7 @@ end;
procedure TSynEditMarkupIfDef.DoMarkupChanged(AMarkup: TSynSelectedColor);
begin
ValidateMatches;
SynEdit.Invalidate;
end;
procedure TSynEditMarkupIfDef.DoTextChanged(StartLine, EndLine, ACountDiff: Integer);

View File

@ -4252,6 +4252,10 @@ Begin
EditorOpts.GetSynEditSettings(FEditor,SimilarEditor);
SourceNotebook.UpdateActiveEditColors(FEditor);
{$IFDEF WithSynMarkupIfDef}
if Visible then
UpdateIfDefNodeStates;
{$ENDIF}
end;
procedure TSourceEditor.ccAddMessage(Texts: String);
@ -5450,6 +5454,8 @@ var
X: integer;
SynState: TSynMarkupIfdefNodeStateEx;
begin
if not EditorComponent.IsIfdefMarkupActive then
exit;
//debugln(['TSourceEditor.UpdateIfDefNodeStates CHECK ',Filename]);
UpdateCodeBuffer;
Scanner:=SharedValues.GetMainLinkScanner(true);

View File

@ -258,6 +258,7 @@ type
property HighlightUserWords[AIndex: Integer]: TSourceSynEditMarkupHighlightAllMulti read GetHighlightUserWords;
property MarkupMgr;
{$IFDEF WithSynMarkupIfDef}
function IsIfdefMarkupActive: Boolean;
procedure InvalidateAllIfdefNodes;
procedure SetIfdefNodeState(ALinePos, AstartPos: Integer; AState: TSynMarkupIfdefNodeState);
property OnIfdefNodeStateRequest: TSynMarkupIfdefStateRequest read FOnIfdefNodeStateRequest write FOnIfdefNodeStateRequest;
@ -1498,6 +1499,11 @@ begin
end;
{$IFDEF WithSynMarkupIfDef}
function TIDESynEditor.IsIfdefMarkupActive: Boolean;
begin
Result := FMarkupIfDef.MarkupInfo.IsEnabled;
end;
function TIDESynEditor.DoIfDefNodeStateRequest(Sender: TObject; LinePos,
XStartPos: Integer; CurrentState: TSynMarkupIfdefNodeStateEx): TSynMarkupIfdefNodeState;
begin