IDE: SourceEditor, fix SetSyntaxHighlighterId. If the ID is still the same, check that the default has not changed. Issue #39633

This commit is contained in:
Martin 2025-04-07 20:42:51 +02:00
parent 162cbbfc1b
commit cc809e40b9

View File

@ -5118,9 +5118,19 @@ procedure TSourceEditor.SetSyntaxHighlighterId(AHighlighterId: TIdeSyntaxHighlig
var
HlIsPas, OldHlIsPas: Boolean;
tl: TSrcSynTopLineInfo;
d: TIdeSyntaxHighlighterID;
begin
if (AHighlighterId=fSyntaxHighlighterId)
and ((FEditor.Highlighter<>nil) = EditorOpts.UseSyntaxHighlight) then exit;
d := AHighlighterId;
if AHighlighterId < 0 then
d := FDefaultSyntaxHighlighterId;
if (AHighlighterId=fSyntaxHighlighterId) and
((FEditor.Highlighter<>nil) = EditorOpts.UseSyntaxHighlight) and
(d >= 0) and (d < EditorOpts.HighlighterList.Count) and
(FEditor.Highlighter = EditorOpts.HighlighterList.SharedSynInstances[d])
then
exit;
if not ASkipEditorOpts then
tl := FEditor.GetTopLineBeforeFold;