From dc81b2e39704f2c180a16cb706eee0fe580275e8 Mon Sep 17 00:00:00 2001 From: Martin Date: Thu, 13 Mar 2025 13:02:27 +0100 Subject: [PATCH] IDE: SourceEditor, fix context menu for choosing Highlighter. If there are items present after the skipped "asm hl" (e.g. loaded tml HL) (cherry picked from commit 0356c69cddf2153dbca836d4849b57d86cd49ebb) --- ide/sourceeditor.pp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ide/sourceeditor.pp b/ide/sourceeditor.pp index 9ebb66f847..1e92358ee1 100644 --- a/ide/sourceeditor.pp +++ b/ide/sourceeditor.pp @@ -7683,27 +7683,29 @@ end; procedure TSourceNotebook.UpdateHighlightMenuItems(SrcEdit: TSourceEditor); var - i: Integer; + i, j: Integer; CurName: String; CurCaption: String; IDEMenuItem: TIDEMenuItem; begin SrcEditSubMenuHighlighter.ChildrenAsSubMenu:=true; + j := -1; for i := 0 to EditorOpts.HighlighterList.Count - 1 do begin if EditorOpts.HighlighterList.SharedSynInstances[i] is TNonSrcIDEHighlighter then continue; + inc(j); CurName:='Highlighter'+IntToStr(i); CurCaption:= EditorOpts.HighlighterList.Captions[i]; - if SrcEditSubMenuHighlighter.Count=i then begin + if SrcEditSubMenuHighlighter.Count<=j then begin // add new item IDEMenuItem:=RegisterIDEMenuCommand(SrcEditSubMenuHighlighter, CurName,CurCaption,@HighlighterClicked); end else begin - IDEMenuItem:=SrcEditSubMenuHighlighter[i]; + IDEMenuItem:=SrcEditSubMenuHighlighter[j]; IDEMenuItem.Caption:=CurCaption; - IDEMenuItem.Tag:=i; IDEMenuItem.OnClick:=@HighlighterClicked; end; + IDEMenuItem.Tag:=i; if IDEMenuItem is TIDEMenuCommand then TIDEMenuCommand(IDEMenuItem).Checked:=(SrcEdit<>nil) and (SrcEdit.FSyntaxHighlighterId=i);