From 9e2483124a6b6b29d076380ae9028914e2fbdf48 Mon Sep 17 00:00:00 2001 From: mattias Date: Sat, 16 Sep 2006 14:02:14 +0000 Subject: [PATCH] IDE: implemented find next/previous word occurrence git-svn-id: trunk@9916 - --- components/synedit/syneditsearch.pp | 36 +- ide/keymapping.pp | 492 ++++++++++++++-------------- ide/lazarusidestrconsts.pas | 2 + ide/projectopts.pp | 2 - ide/uniteditor.pp | 214 +++++++----- ideintf/idecommands.pas | 370 ++++++++++----------- ideintf/menuintf.pas | 2 + 7 files changed, 607 insertions(+), 511 deletions(-) diff --git a/components/synedit/syneditsearch.pp b/components/synedit/syneditsearch.pp index 97e136e488..54fa7989e6 100644 --- a/components/synedit/syneditsearch.pp +++ b/components/synedit/syneditsearch.pp @@ -761,6 +761,7 @@ var or MultiLinePatternFits then begin // the whole pattern fits Result:=true; + //DebugLn(['CheckFound Found=',dbgs(FoundStartPos),'..',dbgs(FoundEndPos),' Range=',dbgs(StartPos),'..',dbgs(EndPos)]); FoundInRange:=(CompareCarets(FoundEndPos,EndPos)>=0) and (CompareCarets(FoundStartPos,StartPos)<=0); end else @@ -772,9 +773,15 @@ var begin Result:=false; if Pattern='' then exit; - if Lines.Count=0 then exit; + if Lines.Count=0 then begin + //DebugLn(['TSynEditSearch.FindNextOne Lines.Count=0']); + exit; + end; FixRange; - if StartPos.Y>Lines.Count then exit; + if StartPos.Y>Lines.Count then begin + //DebugLn(['TSynEditSearch.FindNextOne StartPos.Y>Lines.Count']); + exit; + end; MinY:=Max(0,StartPos.Y-1); MaxY:=Min(Lines.Count-1,EndPos.Y-1); if MinY>MaxY then exit; @@ -832,19 +839,26 @@ begin LineLen:=length(LineStr); Line:=PChar(LineStr); if not IsFirstLine then begin - if FBackwards then - x:=LineLen-1 - else + if FBackwards then begin + if fRegExpr then + x:=LineLen-1 + else + x:=LineLen-SearchLen; + end else x:=0; end else begin IsFirstLine:=false; if FBackwards then begin - x:=EndPos.X-1; + if fRegExpr then + x:=EndPos.X-2 + else + x:=EndPos.X-SearchLen-1; end else begin x:=StartPos.X-1; end; end; x:=MinMax(x,0,LineLen-1); + //DebugLn(['TSynEditSearch.FindNextOne Line="',LineStr,'" x=',x,' LineLen=',LineLen]); // search in the line if fRegExpr then begin @@ -872,8 +886,9 @@ begin end else begin //DebugLn(['TSynEditSearch.FindNextOne x=',x,' MaxPos=',MaxPos,' Line="',Line,'"']); while (x>=0) and (x<=MaxPos) do begin + //DebugLn(['TSynEditSearch.FindNextOne x=',x]); if CompTable[Line[x]]=CompTable[SearchFor^] then begin - //DebugLn(['TSynEditSearch.FindNextOne x=',x,' Line[x]=',Line[x]]); + //DebugLn(['TSynEditSearch.FindNextOne First character found x=',x,' Line[x]=',Line[x]]); if (not fWhole) or (x=0) or DelimTable[Line[x-1]] then begin i:=1; @@ -885,7 +900,12 @@ begin // the pattern fits to this position FoundStartPos:=Point(x+1,y+1); FoundEndPos:=Point(x+i+1,y+1); - if CheckFound(Result) then exit; + if CheckFound(Result) then begin + //DebugLn(['TSynEditSearch.FindNextOne CheckFound success Result=',Result]); + exit; + end else begin + //DebugLn(['TSynEditSearch.FindNextOne CheckFound failed']); + end; end; end; end; diff --git a/ide/keymapping.pp b/ide/keymapping.pp index 8b6d58d64b..71f5043164 100644 --- a/ide/keymapping.pp +++ b/ide/keymapping.pp @@ -352,6 +352,8 @@ begin ecReplace: SetResult2(VK_R,[SSCtrl],VK_UNKNOWN,[], VK_Q,[SSCtrl],VK_A,[]); ecIncrementalFind: SetResult(VK_E,[SSCtrl],VK_UNKNOWN,[]); ecGotoLineNumber: SetResult2(VK_G,[ssCtrl],VK_UNKNOWN,[],VK_Q,[SSCtrl],VK_G,[]); + ecFindNextWordOccurrence: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]); + ecFindPrevWordOccurrence: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]); ecJumpBack: SetResult(VK_H,[ssCtrl],VK_UNKNOWN,[]); ecJumpForward: SetResult(VK_H,[ssCtrl,ssShift],VK_UNKNOWN,[]); ecAddJumpPoint: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]); @@ -666,6 +668,8 @@ begin ecReplace: SetResult(VK_Q,[SSCtrl],VK_A,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); ecIncrementalFind: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); ecGotoLineNumber: SetResult(VK_G,[ssCtrl],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); + ecFindNextWordOccurrence: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); + ecFindPrevWordOccurrence: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); ecJumpBack: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); ecJumpForward: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); ecAddJumpPoint: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]); @@ -1152,278 +1156,280 @@ end; function EditorCommandToDescriptionString(cmd: word): String; begin case cmd of - ecNone : Result:= dlgEnvNone; - ecLeft : Result:= srvk_left; - ecRight : Result:= srvk_right; - ecUp : Result:= dlgUpWord; - ecDown : Result:= dlgDownWord; - ecWordLeft : Result:= srkmecWordLeft; - ecWordRight : Result:= srkmecWordRight; - ecLineStart : Result:= srkmecLineStart; - ecLineEnd : Result:= srkmecLineEnd; - ecPageUp : Result:= srkmecPageUp; - ecPageDown : Result:= srkmecPageDown; - ecPageLeft : Result:= srkmecPageLeft; - ecPageRight : Result:= srkmecPageRight; - ecPageTop : Result:= srkmecPageTop; - ecPageBottom : Result:= srkmecPageBottom; - ecEditorTop : Result:= srkmecEditorTop; - ecEditorBottom : Result:= srkmecEditorBottom; - ecGotoXY : Result:= srkmecGotoXY; - ecSelLeft : Result:= srkmecSelLeft; - ecSelRight : Result:= srkmecSelRight; - ecSelUp : Result:= srkmecSelUp; - ecSelDown : Result:= srkmecSelDown; - ecSelWordLeft : Result:= srkmecSelWordLeft; - ecSelWordRight : Result:= srkmecSelWordRight; - ecSelLineStart : Result:= srkmecSelLineStart; - ecSelLineEnd : Result:= srkmecSelLineEnd; - ecSelPageUp : Result:= srkmecSelPageUp; - ecSelPageDown : Result:= srkmecSelPageDown; - ecSelPageLeft : Result:= srkmecSelPageLeft; - ecSelPageRight : Result:= srkmecSelPageRight; - ecSelPageTop : Result:= srkmecSelPageTop; - ecSelPageBottom : Result:= srkmecSelPageBottom; - ecSelEditorTop : Result:= srkmecSelEditorTop; - ecSelEditorBottom : Result:= srkmecSelEditorBottom; - ecSelGotoXY : Result:= srkmecSelGotoXY; - ecSelectAll : Result:= srkmecSelectAll; - ecDeleteLastChar : Result:= srkmecDeleteLastChar; - ecDeleteChar : Result:= srkmecDeleteChar; - ecDeleteWord : Result:= srkmecDeleteWord; - ecDeleteLastWord : Result:= srkmecDeleteLastWord; - ecDeleteBOL : Result:= srkmecDeleteBOL; - ecDeleteEOL : Result:= srkmecDeleteEOL; - ecDeleteLine : Result:= srkmecDeleteLine; - ecClearAll : Result:= srkmecClearAll; - ecLineBreak : Result:= srkmecLineBreak; - ecInsertLine : Result:= srkmecInsertLine; - ecChar : Result:= srkmecChar; - ecImeStr : Result:= srkmecImeStr; - ecUndo : Result:= lisMenuUndo; - ecRedo : Result:= lisMenuRedo; - ecCut : Result:= srkmecCut; - ecCopy : Result:= srkmecCopy; - ecPaste : Result:= srkmecPaste; - ecScrollUp : Result:= srkmecScrollUp; - ecScrollDown : Result:= srkmecScrollDown; - ecScrollLeft : Result:= srkmecScrollLeft; - ecScrollRight : Result:= srkmecScrollRight; - ecInsertMode : Result:= srkmecInsertMode; - ecOverwriteMode : Result:= srkmecOverwriteMode; - ecToggleMode : Result:= srkmecToggleMode; - ecBlockIndent : Result:= srkmecBlockIndent; - ecBlockUnindent : Result:= srkmecBlockUnindent; - ecTab : Result:= srVK_TAB; - ecShiftTab : Result:= srkmecShiftTab; - ecMatchBracket : Result:= srkmecMatchBracket; - ecNormalSelect : Result:= srkmecNormalSelect; - ecColumnSelect : Result:= srkmecColumnSelect; - ecLineSelect : Result:= srkmecLineSelect; - ecAutoCompletion : Result:= srkmecAutoCompletion; - ecUserFirst : Result:= srkmecPrevBookmark; - ecSetFreeBookmark : Result:= srkmecSetFreeBookmark; - ecPrevBookmark : Result:= srkmecPrevBookmark; - ecNextBookmark : Result:= srkmecNextBookmark; + ecNone : Result:= dlgEnvNone; + ecLeft : Result:= srvk_left; + ecRight : Result:= srvk_right; + ecUp : Result:= dlgUpWord; + ecDown : Result:= dlgDownWord; + ecWordLeft : Result:= srkmecWordLeft; + ecWordRight : Result:= srkmecWordRight; + ecLineStart : Result:= srkmecLineStart; + ecLineEnd : Result:= srkmecLineEnd; + ecPageUp : Result:= srkmecPageUp; + ecPageDown : Result:= srkmecPageDown; + ecPageLeft : Result:= srkmecPageLeft; + ecPageRight : Result:= srkmecPageRight; + ecPageTop : Result:= srkmecPageTop; + ecPageBottom : Result:= srkmecPageBottom; + ecEditorTop : Result:= srkmecEditorTop; + ecEditorBottom : Result:= srkmecEditorBottom; + ecGotoXY : Result:= srkmecGotoXY; + ecSelLeft : Result:= srkmecSelLeft; + ecSelRight : Result:= srkmecSelRight; + ecSelUp : Result:= srkmecSelUp; + ecSelDown : Result:= srkmecSelDown; + ecSelWordLeft : Result:= srkmecSelWordLeft; + ecSelWordRight : Result:= srkmecSelWordRight; + ecSelLineStart : Result:= srkmecSelLineStart; + ecSelLineEnd : Result:= srkmecSelLineEnd; + ecSelPageUp : Result:= srkmecSelPageUp; + ecSelPageDown : Result:= srkmecSelPageDown; + ecSelPageLeft : Result:= srkmecSelPageLeft; + ecSelPageRight : Result:= srkmecSelPageRight; + ecSelPageTop : Result:= srkmecSelPageTop; + ecSelPageBottom : Result:= srkmecSelPageBottom; + ecSelEditorTop : Result:= srkmecSelEditorTop; + ecSelEditorBottom : Result:= srkmecSelEditorBottom; + ecSelGotoXY : Result:= srkmecSelGotoXY; + ecSelectAll : Result:= srkmecSelectAll; + ecDeleteLastChar : Result:= srkmecDeleteLastChar; + ecDeleteChar : Result:= srkmecDeleteChar; + ecDeleteWord : Result:= srkmecDeleteWord; + ecDeleteLastWord : Result:= srkmecDeleteLastWord; + ecDeleteBOL : Result:= srkmecDeleteBOL; + ecDeleteEOL : Result:= srkmecDeleteEOL; + ecDeleteLine : Result:= srkmecDeleteLine; + ecClearAll : Result:= srkmecClearAll; + ecLineBreak : Result:= srkmecLineBreak; + ecInsertLine : Result:= srkmecInsertLine; + ecChar : Result:= srkmecChar; + ecImeStr : Result:= srkmecImeStr; + ecUndo : Result:= lisMenuUndo; + ecRedo : Result:= lisMenuRedo; + ecCut : Result:= srkmecCut; + ecCopy : Result:= srkmecCopy; + ecPaste : Result:= srkmecPaste; + ecScrollUp : Result:= srkmecScrollUp; + ecScrollDown : Result:= srkmecScrollDown; + ecScrollLeft : Result:= srkmecScrollLeft; + ecScrollRight : Result:= srkmecScrollRight; + ecInsertMode : Result:= srkmecInsertMode; + ecOverwriteMode : Result:= srkmecOverwriteMode; + ecToggleMode : Result:= srkmecToggleMode; + ecBlockIndent : Result:= srkmecBlockIndent; + ecBlockUnindent : Result:= srkmecBlockUnindent; + ecTab : Result:= srVK_TAB; + ecShiftTab : Result:= srkmecShiftTab; + ecMatchBracket : Result:= srkmecMatchBracket; + ecNormalSelect : Result:= srkmecNormalSelect; + ecColumnSelect : Result:= srkmecColumnSelect; + ecLineSelect : Result:= srkmecLineSelect; + ecAutoCompletion : Result:= srkmecAutoCompletion; + ecUserFirst : Result:= srkmecPrevBookmark; + ecSetFreeBookmark : Result:= srkmecSetFreeBookmark; + ecPrevBookmark : Result:= srkmecPrevBookmark; + ecNextBookmark : Result:= srkmecNextBookmark; ecGotoMarker0 .. - ecGotoMarker9 : Result:= Format(srkmecGotoMarker,[cmd-ecGotoMarker0]); + ecGotoMarker9 : Result:= Format(srkmecGotoMarker,[cmd-ecGotoMarker0]); ecSetMarker0 .. - ecSetMarker9 : Result:= Format(srkmecSetMarker,[cmd-ecSetMarker0]); + ecSetMarker9 : Result:= Format(srkmecSetMarker,[cmd-ecSetMarker0]); // sourcenotebook - ecJumpToEditor : Result:= srkmecJumpToEditor; - ecNextEditor : Result:= srkmecNextEditor; - ecPrevEditor : Result:= srkmecPrevEditor; - ecMoveEditorLeft : Result:= srkmecMoveEditorLeft; - ecMoveEditorRight : Result:= srkmecMoveEditorRight; - ecAddBreakPoint : Result:= srkmecAddBreakPoint; - ecRemoveBreakPoint : Result:= srkmecRemoveBreakPoint; + ecJumpToEditor : Result:= srkmecJumpToEditor; + ecNextEditor : Result:= srkmecNextEditor; + ecPrevEditor : Result:= srkmecPrevEditor; + ecMoveEditorLeft : Result:= srkmecMoveEditorLeft; + ecMoveEditorRight : Result:= srkmecMoveEditorRight; + ecAddBreakPoint : Result:= srkmecAddBreakPoint; + ecRemoveBreakPoint : Result:= srkmecRemoveBreakPoint; ecGotoEditor1.. - ecGotoEditor0 : Result:= Format(srkmecGotoEditor,[cmd-ecGotoEditor1]); + ecGotoEditor0 : Result:= Format(srkmecGotoEditor,[cmd-ecGotoEditor1]); // file menu - ecNew : Result:= srkmecNew; - ecNewUnit : Result:= srkmecNewUnit; - ecNewForm : Result:= srkmecNewForm; - ecOpen : Result:= lisMenuOpen; - ecRevert : Result:= lisMenuRevert; - ecSave : Result:= lisMenuSave; - ecSaveAs : Result:= srkmecSaveAs; - ecSaveAll : Result:= srkmecSaveAll; - ecClose : Result:= lismenuclose; - ecCloseAll : Result:= srkmecCloseAll; - ecCleanDirectory : Result:= lisMenuCleanDirectory; - ecRestart : Result:= lisMenuRestart; - ecQuit : Result:= lisMenuQuit; + ecNew : Result:= srkmecNew; + ecNewUnit : Result:= srkmecNewUnit; + ecNewForm : Result:= srkmecNewForm; + ecOpen : Result:= lisMenuOpen; + ecRevert : Result:= lisMenuRevert; + ecSave : Result:= lisMenuSave; + ecSaveAs : Result:= srkmecSaveAs; + ecSaveAll : Result:= srkmecSaveAll; + ecClose : Result:= lismenuclose; + ecCloseAll : Result:= srkmecCloseAll; + ecCleanDirectory : Result:= lisMenuCleanDirectory; + ecRestart : Result:= lisMenuRestart; + ecQuit : Result:= lisMenuQuit; // edit menu - ecSelectionUpperCase : Result:= lismenuuppercaseselection; - ecSelectionLowerCase : Result:= lismenulowercaseselection; - ecSelectionTabs2Spaces : Result:= srkmecSelectionTabs2Spaces; - ecSelectionEnclose : Result:= lisMenuEncloseSelection; - ecSelectionComment : Result:= lismenucommentselection; - ecSelectionUncomment : Result:= lismenuuncommentselection; - ecSelectionConditional : Result:= lisMenuConditionalSelection; - ecSelectionSort : Result:= lismenusortselection; - ecSelectionBreakLines : Result:= lisMenuBeakLinesInSelection; - ecSelectToBrace : Result:= lismenuselecttobrace; - ecSelectCodeBlock : Result:= lismenuselectcodeblock; - ecSelectWord : Result:= lisMenuSelectWord; - ecSelectLine : Result:= lisMenuSelectLine; - ecSelectParagraph : Result:= lisMenuSelectParagraph; - ecInsertCharacter : Result:= srkmecInsertCharacter; - ecInsertGPLNotice : Result:= srkmecInsertGPLNotice; - ecInsertLGPLNotice : Result:= srkmecInsertLGPLNotice; - ecInsertUserName : Result:= srkmecInsertUserName; - ecInsertDateTime : Result:= srkmecInsertDateTime; - ecInsertChangeLogEntry : Result:= srkmecInsertChangeLogEntry; - ecInsertCVSAuthor : Result:= srkmecInsertCVSAuthor; - ecInsertCVSDate : Result:= srkmecInsertCVSDate; - ecInsertCVSHeader : Result:= srkmecInsertCVSHeader; - ecInsertCVSID : Result:= srkmecInsertCVSID; - ecInsertCVSLog : Result:= srkmecInsertCVSLog; - ecInsertCVSName : Result:= srkmecInsertCVSName; - ecInsertCVSRevision : Result:= srkmecInsertCVSRevision; - ecInsertCVSSource : Result:= srkmecInsertCVSSource; + ecSelectionUpperCase : Result:= lismenuuppercaseselection; + ecSelectionLowerCase : Result:= lismenulowercaseselection; + ecSelectionTabs2Spaces : Result:= srkmecSelectionTabs2Spaces; + ecSelectionEnclose : Result:= lisMenuEncloseSelection; + ecSelectionComment : Result:= lismenucommentselection; + ecSelectionUncomment : Result:= lismenuuncommentselection; + ecSelectionConditional : Result:= lisMenuConditionalSelection; + ecSelectionSort : Result:= lismenusortselection; + ecSelectionBreakLines : Result:= lisMenuBeakLinesInSelection; + ecSelectToBrace : Result:= lismenuselecttobrace; + ecSelectCodeBlock : Result:= lismenuselectcodeblock; + ecSelectWord : Result:= lisMenuSelectWord; + ecSelectLine : Result:= lisMenuSelectLine; + ecSelectParagraph : Result:= lisMenuSelectParagraph; + ecInsertCharacter : Result:= srkmecInsertCharacter; + ecInsertGPLNotice : Result:= srkmecInsertGPLNotice; + ecInsertLGPLNotice : Result:= srkmecInsertLGPLNotice; + ecInsertUserName : Result:= srkmecInsertUserName; + ecInsertDateTime : Result:= srkmecInsertDateTime; + ecInsertChangeLogEntry : Result:= srkmecInsertChangeLogEntry; + ecInsertCVSAuthor : Result:= srkmecInsertCVSAuthor; + ecInsertCVSDate : Result:= srkmecInsertCVSDate; + ecInsertCVSHeader : Result:= srkmecInsertCVSHeader; + ecInsertCVSID : Result:= srkmecInsertCVSID; + ecInsertCVSLog : Result:= srkmecInsertCVSLog; + ecInsertCVSName : Result:= srkmecInsertCVSName; + ecInsertCVSRevision : Result:= srkmecInsertCVSRevision; + ecInsertCVSSource : Result:= srkmecInsertCVSSource; // search menu - ecFind : Result:= srkmecFind; - ecFindNext : Result:= srkmecFindNext; - ecFindPrevious : Result:= srkmecFindPrevious; - ecFindInFiles : Result:= srkmecFindInFiles; - ecReplace : Result:= srkmecReplace; - ecIncrementalFind : Result:= lismenuincrementalfind; - ecFindProcedureDefinition:Result:= srkmecFindProcedureDefinition; - ecFindProcedureMethod : Result:= srkmecFindProcedureMethod; - ecGotoLineNumber : Result:= srkmecGotoLineNumber; - ecJumpBack : Result:= lismenujumpback; - ecJumpForward : Result:= lismenujumpforward; - ecAddJumpPoint : Result:= srkmecAddJumpPoint; - ecViewJumpHistory : Result:= lismenuviewjumphistory; - ecJumpToNextError : Result:= lisMenuJumpToNextError; - ecJumpToPrevError : Result:= lisMenuJumpToPrevError; - ecGotoIncludeDirective : Result:= srkmecGotoIncludeDirective; - ecOpenFileAtCursor : Result:= srkmecOpenFileAtCursor; - ecProcedureList : Result:= srkmecProcedureList; + ecFind : Result:= srkmecFind; + ecFindNext : Result:= srkmecFindNext; + ecFindPrevious : Result:= srkmecFindPrevious; + ecFindInFiles : Result:= srkmecFindInFiles; + ecReplace : Result:= srkmecReplace; + ecIncrementalFind : Result:= lismenuincrementalfind; + ecFindProcedureDefinition: Result:= srkmecFindProcedureDefinition; + ecFindProcedureMethod : Result:= srkmecFindProcedureMethod; + ecGotoLineNumber : Result:= srkmecGotoLineNumber; + ecFindNextWordOccurrence : Result:= srkmecFindNextWordOccurrence; + ecFindPrevWordOccurrence : Result:= srkmecFindPrevWordOccurrence; + ecJumpBack : Result:= lismenujumpback; + ecJumpForward : Result:= lismenujumpforward; + ecAddJumpPoint : Result:= srkmecAddJumpPoint; + ecViewJumpHistory : Result:= lismenuviewjumphistory; + ecJumpToNextError : Result:= lisMenuJumpToNextError; + ecJumpToPrevError : Result:= lisMenuJumpToPrevError; + ecGotoIncludeDirective : Result:= srkmecGotoIncludeDirective; + ecOpenFileAtCursor : Result:= srkmecOpenFileAtCursor; + ecProcedureList : Result:= srkmecProcedureList; // view menu - ecToggleFormUnit : Result:= srkmecToggleFormUnit; - ecToggleObjectInsp : Result:= srkmecToggleObjectInsp; - ecToggleSourceEditor : Result:= srkmecToggleSourceEditor; - ecToggleCodeExpl : Result:= srkmecToggleCodeExpl; - ecToggleMessages : Result:= srkmecToggleMessages; - ecToggleSearchResults : Result:= srkmecToggleSearchResults; - ecToggleWatches : Result:= srkmecToggleWatches; - ecToggleBreakPoints : Result:= srkmecToggleBreakPoints; - ecToggleDebuggerOut : Result:= srkmecToggleDebuggerOut; - ecToggleLocals : Result:= srkmecToggleLocals; - ecToggleCallStack : Result:= srkmecToggleCallStack; - ecViewUnits : Result:= srkmecViewUnits; - ecViewForms : Result:= srkmecViewForms; - ecViewUnitDependencies : Result:= srkmecViewUnitDependencies; - ecViewUnitInfo : Result:= srkmecViewUnitInfo; - ecViewAnchorEditor : Result:= srkmecViewAnchorEditor; - ecToggleCompPalette : Result:= srkmecToggleCompPalette; - ecToggleIDESpeedBtns : Result:= srkmecToggleIDESpeedBtns; + ecToggleFormUnit : Result:= srkmecToggleFormUnit; + ecToggleObjectInsp : Result:= srkmecToggleObjectInsp; + ecToggleSourceEditor : Result:= srkmecToggleSourceEditor; + ecToggleCodeExpl : Result:= srkmecToggleCodeExpl; + ecToggleMessages : Result:= srkmecToggleMessages; + ecToggleSearchResults : Result:= srkmecToggleSearchResults; + ecToggleWatches : Result:= srkmecToggleWatches; + ecToggleBreakPoints : Result:= srkmecToggleBreakPoints; + ecToggleDebuggerOut : Result:= srkmecToggleDebuggerOut; + ecToggleLocals : Result:= srkmecToggleLocals; + ecToggleCallStack : Result:= srkmecToggleCallStack; + ecViewUnits : Result:= srkmecViewUnits; + ecViewForms : Result:= srkmecViewForms; + ecViewUnitDependencies : Result:= srkmecViewUnitDependencies; + ecViewUnitInfo : Result:= srkmecViewUnitInfo; + ecViewAnchorEditor : Result:= srkmecViewAnchorEditor; + ecToggleCompPalette : Result:= srkmecToggleCompPalette; + ecToggleIDESpeedBtns : Result:= srkmecToggleIDESpeedBtns; // codetools - ecWordCompletion : Result:= srkmecWordCompletion; - ecCompleteCode : Result:= srkmecCompleteCode; - ecIdentCompletion : Result:= dlgedidcomlet; - ecShowCodeContext : Result:= srkmecShowCodeContext; - ecExtractProc : Result:= srkmecExtractProc; - ecFindIdentifierRefs : Result:= srkmecFindIdentifierRefs; - ecRenameIdentifier : Result:= srkmecRenameIdentifier; - ecInvertAssignment : Result:= srkmecInvertAssignment; - ecSyntaxCheck : Result:= srkmecSyntaxCheck; - ecGuessUnclosedBlock : Result:= lismenuguessunclosedblock; - ecGuessMisplacedIFDEF : Result:= srkmecGuessMisplacedIFDEF; - ecConvertDFM2LFM : Result:= lismenuConvertDFMToLFM; - ecCheckLFM : Result:= lisMenuCheckLFM; - ecConvertDelphiUnit : Result:= lisMenuConvertDelphiUnit; - ecConvertDelphiProject : Result:= lisMenuConvertDelphiProject; - ecConvertDelphiPackage : Result:= lisMenuConvertDelphiPackage; - ecFindDeclaration : Result:= srkmecFindDeclaration; - ecFindBlockOtherEnd : Result:= srkmecFindBlockOtherEnd; - ecFindBlockStart : Result:= srkmecFindBlockStart; + ecWordCompletion : Result:= srkmecWordCompletion; + ecCompleteCode : Result:= srkmecCompleteCode; + ecIdentCompletion : Result:= dlgedidcomlet; + ecShowCodeContext : Result:= srkmecShowCodeContext; + ecExtractProc : Result:= srkmecExtractProc; + ecFindIdentifierRefs : Result:= srkmecFindIdentifierRefs; + ecRenameIdentifier : Result:= srkmecRenameIdentifier; + ecInvertAssignment : Result:= srkmecInvertAssignment; + ecSyntaxCheck : Result:= srkmecSyntaxCheck; + ecGuessUnclosedBlock : Result:= lismenuguessunclosedblock; + ecGuessMisplacedIFDEF : Result:= srkmecGuessMisplacedIFDEF; + ecConvertDFM2LFM : Result:= lismenuConvertDFMToLFM; + ecCheckLFM : Result:= lisMenuCheckLFM; + ecConvertDelphiUnit : Result:= lisMenuConvertDelphiUnit; + ecConvertDelphiProject : Result:= lisMenuConvertDelphiProject; + ecConvertDelphiPackage : Result:= lisMenuConvertDelphiPackage; + ecFindDeclaration : Result:= srkmecFindDeclaration; + ecFindBlockOtherEnd : Result:= srkmecFindBlockOtherEnd; + ecFindBlockStart : Result:= srkmecFindBlockStart; // project (menu string resource) - ecNewProject : Result:= lisMenuNewProject; - ecNewProjectFromFile : Result:= lisMenuNewProjectFromFile; - ecOpenProject : Result:= lisMenuOpenProject; - ecSaveProject : Result:= lisMenuSaveProject; - ecSaveProjectAs : Result:= lisMenuSaveProjectAs; - ecPublishProject : Result:= lisMenuPublishProject; - ecProjectInspector : Result:= lisMenuProjectInspector; - ecAddCurUnitToProj : Result:= lisMenuAddToProject; - ecRemoveFromProj : Result:= lisMenuRemoveFromProject; - ecViewProjectSource : Result:= lisMenuViewSource; - ecViewProjectTodos : Result:= lisMenuViewProjectTodos; - ecProjectOptions : Result:= lisMenuProjectOptions; + ecNewProject : Result:= lisMenuNewProject; + ecNewProjectFromFile : Result:= lisMenuNewProjectFromFile; + ecOpenProject : Result:= lisMenuOpenProject; + ecSaveProject : Result:= lisMenuSaveProject; + ecSaveProjectAs : Result:= lisMenuSaveProjectAs; + ecPublishProject : Result:= lisMenuPublishProject; + ecProjectInspector : Result:= lisMenuProjectInspector; + ecAddCurUnitToProj : Result:= lisMenuAddToProject; + ecRemoveFromProj : Result:= lisMenuRemoveFromProject; + ecViewProjectSource : Result:= lisMenuViewSource; + ecViewProjectTodos : Result:= lisMenuViewProjectTodos; + ecProjectOptions : Result:= lisMenuProjectOptions; // run menu (menu string resource) - ecBuild : Result:= srkmecBuild; - ecBuildAll : Result:= srkmecBuildAll; - ecQuickCompile : Result:= srkmecQuickCompile; - ecAbortBuild : Result:= srkmecAbortBuild; - ecRun : Result:= srkmecRun; - ecPause : Result:= srkmecPause; - ecStepInto : Result:= lisMenuStepInto; - ecStepOver : Result:= lisMenuStepOver; - ecRunToCursor : Result:= lisMenuRunToCursor; - ecStopProgram : Result:= srkmecStopProgram; - ecResetDebugger : Result:= srkmecResetDebugger; - ecRunParameters : Result:= srkmecRunParameters; - ecCompilerOptions : Result:= srkmecCompilerOptions; - ecBuildFile : Result:= srkmecBuildFile; - ecRunFile : Result:= srkmecRunFile; - ecConfigBuildFile : Result:= srkmecConfigBuildFile; - ecInspect : Result:= srkmecInspect; - ecEvaluate : Result:= srkmecEvaluate; - ecAddWatch : Result:= srkmecAddWatch; + ecBuild : Result:= srkmecBuild; + ecBuildAll : Result:= srkmecBuildAll; + ecQuickCompile : Result:= srkmecQuickCompile; + ecAbortBuild : Result:= srkmecAbortBuild; + ecRun : Result:= srkmecRun; + ecPause : Result:= srkmecPause; + ecStepInto : Result:= lisMenuStepInto; + ecStepOver : Result:= lisMenuStepOver; + ecRunToCursor : Result:= lisMenuRunToCursor; + ecStopProgram : Result:= srkmecStopProgram; + ecResetDebugger : Result:= srkmecResetDebugger; + ecRunParameters : Result:= srkmecRunParameters; + ecCompilerOptions : Result:= srkmecCompilerOptions; + ecBuildFile : Result:= srkmecBuildFile; + ecRunFile : Result:= srkmecRunFile; + ecConfigBuildFile : Result:= srkmecConfigBuildFile; + ecInspect : Result:= srkmecInspect; + ecEvaluate : Result:= srkmecEvaluate; + ecAddWatch : Result:= srkmecAddWatch; // components menu - ecOpenPackage : Result:= lisMenuOpenPackage; - ecOpenPackageFile : Result:= lisMenuOpenPackageFile; - ecOpenPackageOfCurUnit : Result:= lisMenuOpenPackageOfCurUnit; - ecAddCurUnitToPkg : Result:= lisMenuAddCurUnitToPkg; - ecPackageGraph : Result:= lisMenuPackageGraph; - ecEditInstallPkgs : Result:= lisMenuEditInstallPkgs; - ecConfigCustomComps : Result:= lisMenuConfigCustomComps; + ecOpenPackage : Result:= lisMenuOpenPackage; + ecOpenPackageFile : Result:= lisMenuOpenPackageFile; + ecOpenPackageOfCurUnit : Result:= lisMenuOpenPackageOfCurUnit; + ecAddCurUnitToPkg : Result:= lisMenuAddCurUnitToPkg; + ecPackageGraph : Result:= lisMenuPackageGraph; + ecEditInstallPkgs : Result:= lisMenuEditInstallPkgs; + ecConfigCustomComps : Result:= lisMenuConfigCustomComps; // tools menu - ecExtToolSettings : Result:= srkmecExtToolSettings; - ecConfigBuildLazarus : Result:= lismenuconfigurebuildlazarus; - ecBuildLazarus : Result:= srkmecBuildLazarus; + ecExtToolSettings : Result:= srkmecExtToolSettings; + ecConfigBuildLazarus : Result:= lismenuconfigurebuildlazarus; + ecBuildLazarus : Result:= srkmecBuildLazarus; ecExtToolFirst - ..ecExtToolLast : Result:= Format(srkmecExtTool,[cmd-ecExtToolFirst+1]); - ecMakeResourceString : Result:= srkmecMakeResourceString; - ecDiff : Result:= srkmecDiff; + ..ecExtToolLast : Result:= Format(srkmecExtTool,[cmd-ecExtToolFirst+1]); + ecMakeResourceString : Result:= srkmecMakeResourceString; + ecDiff : Result:= srkmecDiff; // environment menu - ecEnvironmentOptions : Result:= srkmecEnvironmentOptions; - ecEditorOptions : Result:= lisMenuEditorOptions; - ecEditCodeTemplates : Result:= lisMenuEditCodeTemplates; - ecCodeToolsOptions : Result:= srkmecCodeToolsOptions; - ecCodeToolsDefinesEd : Result:= srkmecCodeToolsDefinesEd; - ecRescanFPCSrcDir : Result:= lisMenuRescanFPCSourceDirectory; + ecEnvironmentOptions : Result:= srkmecEnvironmentOptions; + ecEditorOptions : Result:= lisMenuEditorOptions; + ecEditCodeTemplates : Result:= lisMenuEditCodeTemplates; + ecCodeToolsOptions : Result:= srkmecCodeToolsOptions; + ecCodeToolsDefinesEd : Result:= srkmecCodeToolsDefinesEd; + ecRescanFPCSrcDir : Result:= lisMenuRescanFPCSourceDirectory; // help menu - ecAboutLazarus : Result:= lisMenuAboutLazarus; - ecOnlineHelp : Result:= lisMenuOnlineHelp; - ecConfigureHelp : Result:= lisMenuConfigureHelp; - ecContextHelp : Result:= lisMenuContextHelp; - ecEditContextHelp : Result:= lisMenuEditContextHelp; + ecAboutLazarus : Result:= lisMenuAboutLazarus; + ecOnlineHelp : Result:= lisMenuOnlineHelp; + ecConfigureHelp : Result:= lisMenuConfigureHelp; + ecContextHelp : Result:= lisMenuContextHelp; + ecEditContextHelp : Result:= lisMenuEditContextHelp; // desginer - ecDesignerCopy : Result:= lisDsgCopyComponents; - ecDesignerCut : Result:= lisDsgCutComponents; - ecDesignerPaste : Result:= lisDsgPasteComponents; - ecDesignerSelectParent : Result:= lisDsgSelectParentComponent; - ecDesignerMoveToFront : Result:= lisDsgOrderMoveToFront; - ecDesignerMoveToBack : Result:= lisDsgOrderMoveToBack; - ecDesignerForwardOne : Result:= lisDsgOrderForwardOne; - ecDesignerBackOne : Result:= lisDsgOrderBackOne; + ecDesignerCopy : Result:= lisDsgCopyComponents; + ecDesignerCut : Result:= lisDsgCutComponents; + ecDesignerPaste : Result:= lisDsgPasteComponents; + ecDesignerSelectParent : Result:= lisDsgSelectParentComponent; + ecDesignerMoveToFront : Result:= lisDsgOrderMoveToFront; + ecDesignerMoveToBack : Result:= lisDsgOrderMoveToBack; + ecDesignerForwardOne : Result:= lisDsgOrderForwardOne; + ecDesignerBackOne : Result:= lisDsgOrderBackOne; else Result:= srkmecunknown; @@ -2156,6 +2162,8 @@ begin AddDefault(C,'Replace text',ecReplace); AddDefault(C,'Find incremental',ecIncrementalFind); AddDefault(C,'Go to line number',ecGotoLineNumber); + AddDefault(C,'Find next word occurrence',ecFindNextWordOccurrence); + AddDefault(C,'Find previous word occurrence',ecFindPrevWordOccurrence); AddDefault(C,'Jump back',ecJumpBack); AddDefault(C,'Jump forward',ecJumpForward); AddDefault(C,'Add jump point',ecAddJumpPoint); diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index b75cb691d3..b5a0adf547 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -1508,6 +1508,8 @@ resourcestring srkmecFindProcedureDefinition = 'Find procedure definiton'; srkmecFindProcedureMethod = 'Find procedure method'; srkmecGotoLineNumber = 'Go to line number'; + srkmecFindNextWordOccurrence = 'Find next word occurrence'; + srkmecFindPrevWordOccurrence = 'Find previous word occurrence'; srkmecAddJumpPoint = 'Add jump point'; srkmecOpenFileAtCursor = 'Open file at cursor'; srkmecGotoIncludeDirective = 'Go to to include directive of current include file'; diff --git a/ide/projectopts.pp b/ide/projectopts.pp index 22502673f1..f6e593ed58 100644 --- a/ide/projectopts.pp +++ b/ide/projectopts.pp @@ -381,7 +381,6 @@ procedure TProjectOptionsDialog.ProjectOptionsClose(Sender: TObject; var CloseAction: TCloseAction); var NewFlags: TProjectFlags; - OldUseVersionInfo: Boolean; procedure SetProjectFlag(AFlag: TProjectFlag; AValue: Boolean); begin @@ -432,7 +431,6 @@ begin Project.LazDocPaths:=StringListToText(LazDocListBox.Items,';',true); // VersionInfo - OldUseVersionInfo:=Project.VersionInfo.UseVersionInfo; Project.VersionInfo.UseVersionInfo:=UseVersionInfoCheckBox.Checked; Project.VersionInfo.AutoIncrementBuild:=AutomaticallyIncreaseBuildCheckBox.Checked; Project.VersionInfo.VersionNr:=VersionSpinEdit.Value; diff --git a/ide/uniteditor.pp b/ide/uniteditor.pp index 1013d68dd9..811fe7c51f 100644 --- a/ide/uniteditor.pp +++ b/ide/uniteditor.pp @@ -218,7 +218,7 @@ type procedure DecreaseIgnoreCodeBufferLock; override; procedure UpdateCodeBuffer; override;// copy the source from EditorComponent - // dialogs + // find procedure StartFindAndReplace(Replace:boolean); procedure AskReplace(Sender: TObject; const ASearch, AReplace: string; Line, Column: integer; var Action: TSrcEditReplaceAction); override; @@ -227,8 +227,11 @@ type function DoFindAndReplace: Integer; procedure FindNext; procedure FindPrevious; + procedure FindNextWordOccurrence(DirectionForward: boolean); procedure InitGotoDialog; procedure ShowGotoLineDialog; + + // dialogs procedure GetDialogPosition(Width, Height:integer; out Left,Top:integer); procedure ActivateHint(ClientPos: TPoint; const TheHint: string); @@ -424,6 +427,8 @@ type procedure HighlighterClicked(Sender: TObject); procedure FindDeclarationClicked(Sender: TObject); procedure ProcedureJumpClicked(Sender: TObject); + procedure FindNextWordOccurrenceClicked(Sender: TObject); + procedure FindPrevWordOccurrenceClicked(Sender: TObject); procedure MoveEditorLeftClicked(Sender: TObject); procedure MoveEditorRightClicked(Sender: TObject); procedure NotebookPageChanged(Sender: TObject); @@ -781,7 +786,10 @@ const var SrcEditMenuFindDeclaration: TIDEMenuCommand; - SrcEditMenuProcedureJump: TIDEMenuCommand; + // finding / jumping + SrcEditMenuProcedureJump: TIDEMenuCommand; + SrcEditMenuFindNextWordOccurrence: TIDEMenuCommand; + SrcEditMenuFindPrevWordOccurrence: TIDEMenuCommand; SrcEditMenuOpenFileAtCursor: TIDEMenuCommand; SrcEditMenuClosePage: TIDEMenuCommand; SrcEditMenuCut: TIDEMenuCommand; @@ -842,116 +850,124 @@ begin // register the first dynamic section for often used context sensitive stuff SrcEditMenuSectionFirstDynamic:=RegisterIDEMenuSection(AParent, - 'First dynamic section'); + 'First dynamic section'); // register the first static section - SrcEditMenuSectionFirstStatic:=RegisterIDEMenuSection(AParent,'First static section'); + SrcEditMenuSectionFirstStatic:=RegisterIDEMenuSection(AParent, + 'First static section'); AParent:=SrcEditMenuSectionFirstStatic; - SrcEditMenuFindDeclaration:=RegisterIDEMenuCommand(AParent,'Find Declaration', - uemFindDeclaration); - SrcEditMenuProcedureJump:=RegisterIDEMenuCommand(AParent,'Procedure Jump', - uemProcedureJump); - SrcEditMenuOpenFileAtCursor:=RegisterIDEMenuCommand(AParent, + SrcEditMenuFindDeclaration:=RegisterIDEMenuCommand(AParent, + 'Find Declaration',uemFindDeclaration); + // register the sub menu Find + SrcEditSubMenuFind:=RegisterIDESubMenu(AParent, 'Find section', lisMenuFind + ); + AParent:=SrcEditSubMenuFind; + SrcEditMenuProcedureJump:=RegisterIDEMenuCommand(AParent,'Procedure Jump', + uemProcedureJump); + SrcEditMenuFindNextWordOccurrence:=RegisterIDEMenuCommand(AParent, + 'Find next word occurrence',srkmecFindNextWordOccurrence); + SrcEditMenuFindPrevWordOccurrence:=RegisterIDEMenuCommand(AParent, + 'Find previous word occurrence',srkmecFindPrevWordOccurrence); + + AParent:=SrcEditMenuSectionFirstStatic; + SrcEditMenuOpenFileAtCursor:=RegisterIDEMenuCommand(AParent, 'Open File At Cursor',uemOpenFileAtCursor); - SrcEditMenuClosePage:=RegisterIDEMenuCommand(AParent, + SrcEditMenuClosePage:=RegisterIDEMenuCommand(AParent, 'Close Page',uemClosePage); // register the Clipboard section - AParent:=SourceEditorMenuRoot; - SrcEditMenuSectionClipboard:=RegisterIDEMenuSection(AParent,'Clipboard'); + SrcEditMenuSectionClipboard:=RegisterIDEMenuSection(SourceEditorMenuRoot, + 'Clipboard'); AParent:=SrcEditMenuSectionClipboard; - SrcEditMenuCut:=RegisterIDEMenuCommand(AParent,'Cut',uemCut); - SrcEditMenuCopy:=RegisterIDEMenuCommand(AParent,'Copy',uemCopy); - SrcEditMenuPaste:=RegisterIDEMenuCommand(AParent,'Paste',uemPaste); - SrcEditMenuCopyFilename:=RegisterIDEMenuCommand(AParent,'Copy filename', - uemCopyFilename); + SrcEditMenuCut:=RegisterIDEMenuCommand(AParent,'Cut',uemCut); + SrcEditMenuCopy:=RegisterIDEMenuCommand(AParent,'Copy',uemCopy); + SrcEditMenuPaste:=RegisterIDEMenuCommand(AParent,'Paste',uemPaste); + SrcEditMenuCopyFilename:=RegisterIDEMenuCommand(AParent,'Copy filename', + uemCopyFilename); // register the Marks section - AParent:=SourceEditorMenuRoot; - SrcEditMenuSectionMarks:=RegisterIDEMenuSection(AParent,'Marks section'); - AParent:=SrcEditMenuSectionMarks; - + SrcEditMenuSectionMarks:=RegisterIDEMenuSection(SourceEditorMenuRoot, + 'Marks section'); // register the Goto Bookmarks Submenu - SrcEditSubMenuGotoBookmarks:=RegisterIDESubMenu(AParent,'Goto bookmarks', - uemGotoBookmark); + SrcEditSubMenuGotoBookmarks:=RegisterIDESubMenu(SrcEditMenuSectionMarks, + 'Goto bookmarks',uemGotoBookmark); AParent:=SrcEditSubMenuGotoBookmarks; - for I := 0 to 9 do - RegisterIDEMenuCommand(AParent,'GotoBookmark'+IntToStr(I), - uemBookmarkN+IntToStr(i)); - SrcEditMenuNextBookmark:=RegisterIDEMenuCommand(AParent, + for I := 0 to 9 do + RegisterIDEMenuCommand(AParent,'GotoBookmark'+IntToStr(I), + uemBookmarkN+IntToStr(i)); + SrcEditMenuNextBookmark:=RegisterIDEMenuCommand(AParent, 'Goto next Bookmark',uemNextBookmark); - SrcEditMenuPrevBookmark:=RegisterIDEMenuCommand(AParent, + SrcEditMenuPrevBookmark:=RegisterIDEMenuCommand(AParent, 'Goto previous Bookmark',uemPrevBookmark); // register the Set Bookmarks Submenu - AParent:=SrcEditMenuSectionMarks; - SrcEditSubMenuSetBookmarks:=RegisterIDESubMenu(AParent,'Set bookmarks', - uemSetBookmark); + SrcEditSubMenuSetBookmarks:=RegisterIDESubMenu(SrcEditMenuSectionMarks, + 'Set bookmarks',uemSetBookmark); AParent:=SrcEditSubMenuSetBookmarks; - for I := 0 to 9 do - RegisterIDEMenuCommand(AParent,'SetBookmark'+IntToStr(I), - uemBookmarkN+IntToStr(i)); - SrcEditMenuSetFreeBookmark:=RegisterIDEMenuCommand(AParent, + for I := 0 to 9 do + RegisterIDEMenuCommand(AParent,'SetBookmark'+IntToStr(I), + uemBookmarkN+IntToStr(i)); + SrcEditMenuSetFreeBookmark:=RegisterIDEMenuCommand(AParent, 'Set a free Bookmark',uemSetFreeBookmark); // register the Debug submenu - AParent:=SrcEditMenuSectionMarks; - SrcEditSubMenuDebug:=RegisterIDESubMenu(AParent,'Debug',uemDebugWord); + SrcEditSubMenuDebug:=RegisterIDESubMenu(SrcEditMenuSectionMarks, + 'Debug',uemDebugWord); + AParent:=SrcEditSubMenuDebug; + // register the Debug submenu items + SrcEditMenuAddBreakpoint:=RegisterIDEMenuCommand(AParent,'Add Breakpoint', + uemAddBreakpoint); + SrcEditMenuAddWatchAtCursor:=RegisterIDEMenuCommand(AParent, + 'Add Watch at Cursor',uemAddWatchAtCursor); + SrcEditMenuRunToCursor:=RegisterIDEMenuCommand(AParent, + 'Run to cursor',uemRunToCursor); + SrcEditMenuViewCallStack:=RegisterIDEMenuCommand(AParent, + 'View Call Stack',uemViewCallStack); // register the File Specific dynamic section AParent:=SourceEditorMenuRoot; SrcEditMenuSectionFileDynamic:=RegisterIDEMenuSection(AParent, 'File dynamic section'); - AParent:=SrcEditSubMenuDebug; - // register the Debug submenu items - SrcEditMenuAddBreakpoint:=RegisterIDEMenuCommand(AParent,'Add Breakpoint', - uemAddBreakpoint); - SrcEditMenuAddWatchAtCursor:=RegisterIDEMenuCommand(AParent, - 'Add Watch at Cursor',uemAddWatchAtCursor); - SrcEditMenuRunToCursor:=RegisterIDEMenuCommand(AParent, - 'Run to cursor',uemRunToCursor); - SrcEditMenuViewCallStack:=RegisterIDEMenuCommand(AParent, - 'View Call Stack',uemViewCallStack); // register the Move Page section - AParent:=SourceEditorMenuRoot; - SrcEditMenuSectionMovePage:=RegisterIDEMenuSection(AParent,'Move Page section'); + SrcEditMenuSectionMovePage:=RegisterIDEMenuSection(SourceEditorMenuRoot, + 'Move Page section'); AParent:=SrcEditMenuSectionMovePage; - SrcEditMenuMoveEditorLeft:=RegisterIDEMenuCommand(AParent,'MoveEditorLeft', - uemMoveEditorLeft); - SrcEditMenuMoveEditorRight:=RegisterIDEMenuCommand(AParent,'MoveEditorRight', - uemMoveEditorRight); + SrcEditMenuMoveEditorLeft:=RegisterIDEMenuCommand(AParent,'MoveEditorLeft', + uemMoveEditorLeft); + SrcEditMenuMoveEditorRight:=RegisterIDEMenuCommand(AParent,'MoveEditorRight', + uemMoveEditorRight); // register the Refactoring submenu - AParent:=SourceEditorMenuRoot; - SrcEditSubMenuRefactor:=RegisterIDESubMenu(AParent,'Refactoring',uemRefactor); + SrcEditSubMenuRefactor:=RegisterIDESubMenu(SourceEditorMenuRoot, + 'Refactoring',uemRefactor); AParent:=SrcEditSubMenuRefactor; - SrcEditMenuCompleteCode:=RegisterIDEMenuCommand(AParent,'CompleteCode', - uemCompleteCode); - SrcEditMenuEncloseSelection:=RegisterIDEMenuCommand(AParent, + SrcEditMenuCompleteCode:=RegisterIDEMenuCommand(AParent,'CompleteCode', + uemCompleteCode); + SrcEditMenuEncloseSelection:=RegisterIDEMenuCommand(AParent, 'EncloseSelection',uemEncloseSelection); - SrcEditMenuExtractProc:=RegisterIDEMenuCommand(AParent, + SrcEditMenuExtractProc:=RegisterIDEMenuCommand(AParent, 'ExtractProc',uemExtractProc); - SrcEditMenuInvertAssignment:=RegisterIDEMenuCommand(AParent, + SrcEditMenuInvertAssignment:=RegisterIDEMenuCommand(AParent, 'InvertAssignment',uemInvertAssignment); - SrcEditMenuFindIdentifierReferences:=RegisterIDEMenuCommand(AParent, + SrcEditMenuFindIdentifierReferences:=RegisterIDEMenuCommand(AParent, 'FindIdentifierReferences',uemFindIdentifierReferences); - SrcEditMenuRenameIdentifier:=RegisterIDEMenuCommand(AParent, + SrcEditMenuRenameIdentifier:=RegisterIDEMenuCommand(AParent, 'RenameIdentifier',uemRenameIdentifier); // register the Flags section - AParent:=SourceEditorMenuRoot; - SrcEditMenuSectionFlags:=RegisterIDEMenuSection(AParent,'Flags section'); + SrcEditMenuSectionFlags:=RegisterIDEMenuSection(SourceEditorMenuRoot, + 'Flags section'); AParent:=SrcEditMenuSectionFlags; - SrcEditMenuReadOnly:=RegisterIDEMenuCommand(AParent,'ReadOnly',uemReadOnly); - SrcEditMenuReadOnly.ShowAlwaysCheckable:=true; - SrcEditMenuShowLineNumbers:=RegisterIDEMenuCommand(AParent,'ShowLineNumbers', - uemShowLineNumbers); - SrcEditMenuShowLineNumbers.ShowAlwaysCheckable:=true; - SrcEditMenuShowUnitInfo:=RegisterIDEMenuCommand(AParent,'ShowUnitInfo', - uemShowUnitInfo); - SrcEditMenuSectionHighlighter:=RegisterIDEMenuSection(AParent,'Highlighter'); - SrcEditMenuEditorProperties:=RegisterIDEMenuCommand(AParent, + SrcEditMenuReadOnly:=RegisterIDEMenuCommand(AParent,'ReadOnly',uemReadOnly); + SrcEditMenuReadOnly.ShowAlwaysCheckable:=true; + SrcEditMenuShowLineNumbers:=RegisterIDEMenuCommand(AParent, + 'ShowLineNumbers',uemShowLineNumbers); + SrcEditMenuShowLineNumbers.ShowAlwaysCheckable:=true; + SrcEditMenuShowUnitInfo:=RegisterIDEMenuCommand(AParent,'ShowUnitInfo', + uemShowUnitInfo); + SrcEditMenuSectionHighlighter:=RegisterIDEMenuSection(AParent,'Highlighter'); + SrcEditMenuEditorProperties:=RegisterIDEMenuCommand(AParent, 'EditorProperties',uemEditorProperties); end; @@ -1170,6 +1186,28 @@ Begin LazFindReplaceDialog.Options:=OldOptions; End; +procedure TSourceEditor.FindNextWordOccurrence(DirectionForward: boolean); +var + StartX, EndX: Integer; + Word: String; + Flags: TSynSearchOptions; + LogCaret: TPoint; +begin + LogCaret:=EditorComponent.LogicalCaretXY; + EditorComponent.GetWordBoundsAtRowCol(LogCaret,StartX,EndX); + if EndX<=StartX then exit; + Flags:=[ssoWholeWord]; + if DirectionForward then begin + LogCaret.X:=EndX; + end else begin + LogCaret.X:=StartX; + Include(Flags,ssoBackwards); + end; + EditorComponent.LogicalCaretXY:=LogCaret; + EditorComponent.SearchReplace(EditorComponent.GetWordAtRowCol(LogCaret), + '',Flags); +end; + procedure TSourceEditor.InitGotoDialog; begin if GotoDialog=nil then @@ -1178,8 +1216,8 @@ end; function TSourceEditor.DoFindAndReplace: integer; var - OldCaretXY:TPoint; - AText,ACaption:AnsiString; + OldCaretXY: TPoint; + AText, ACaption: String; NewTopLine: integer; begin Result:=0; @@ -1415,6 +1453,12 @@ Begin ecGotoLineNumber : ShowGotoLineDialog; + ecFindNextWordOccurrence: + FindNextWordOccurrence(true); + + ecFindPrevWordOccurrence: + FindNextWordOccurrence(false); + ecSelectionEnclose: EncloseSelection; @@ -3718,6 +3762,8 @@ begin SrcEditMenuFindDeclaration.OnClick:=@FindDeclarationClicked; SrcEditMenuProcedureJump.OnClick:=@ProcedureJumpClicked; + SrcEditMenuFindNextWordOccurrence.OnClick:=@FindNextWordOccurrenceClicked; + SrcEditMenuFindPrevWordOccurrence.OnClick:=@FindPrevWordOccurrenceClicked; SrcEditMenuOpenFileAtCursor.OnClick:=@OpenAtCursorClicked; SrcEditMenuClosePage.OnClick:=@CloseClicked; @@ -4634,6 +4680,24 @@ begin ActSE.DoEditorExecuteCommand(ecFindProcedureDefinition); end; +procedure TSourceNotebook.FindNextWordOccurrenceClicked(Sender: TObject); +var + SrcEdit: TSourceEditor; +begin + SrcEdit := GetActiveSE; + if SrcEdit<>nil then + SrcEdit.FindNextWordOccurrence(true); +end; + +procedure TSourceNotebook.FindPrevWordOccurrenceClicked(Sender: TObject); +var + SrcEdit: TSourceEditor; +begin + SrcEdit := GetActiveSE; + if SrcEdit<>nil then + SrcEdit.FindNextWordOccurrence(false); +end; + Procedure TSourceNotebook.CutClicked(Sender: TObject); var ActSE: TSourceEditor; begin diff --git a/ideintf/idecommands.pas b/ideintf/idecommands.pas index 83a26f992e..6217cd0932 100644 --- a/ideintf/idecommands.pas +++ b/ideintf/idecommands.pas @@ -56,225 +56,227 @@ const IDE experts: They are handled in the IDE interface units. } - ecNone = 0; + ecNone = 0; - ecFirstLazarus = 1001; + ecFirstLazarus = 1001; // search - ecFind = ecFirstLazarus + 1; - ecFindAgain = ecFirstLazarus + 2; - ecFindNext = ecFindAgain; - ecReplace = ecFirstLazarus + 3; - ecIncrementalFind = ecFirstLazarus + 4; - ecFindProcedureDefinition = ecFirstLazarus + 5; - ecFindProcedureMethod = ecFirstLazarus + 6; - ecGotoLineNumber = ecFirstLazarus + 7; - ecFindPrevious = ecFirstLazarus + 8; - ecFindInFiles = ecFirstLazarus + 9; - ecJumpBack = ecFirstLazarus + 10; - ecJumpForward = ecFirstLazarus + 11; - ecAddJumpPoint = ecFirstLazarus + 12; - ecViewJumpHistory = ecFirstLazarus + 13; - ecJumpToNextError = ecFirstLazarus + 14; - ecJumpToPrevError = ecFirstLazarus + 15; - ecProcedureList = ecFirstLazarus + 16; + ecFind = ecFirstLazarus + 1; + ecFindAgain = ecFirstLazarus + 2; + ecFindNext = ecFindAgain; + ecFindPrevious = ecFirstLazarus + 3; + ecReplace = ecFirstLazarus + 4; + ecIncrementalFind = ecFirstLazarus + 5; + ecFindProcedureDefinition = ecFirstLazarus + 6; + ecFindProcedureMethod = ecFirstLazarus + 7; + ecGotoLineNumber = ecFirstLazarus + 8; + ecFindNextWordOccurrence = ecFirstLazarus + 9; + ecFindPrevWordOccurrence = ecFirstLazarus + 10; + ecFindInFiles = ecFirstLazarus + 11; + ecJumpBack = ecFirstLazarus + 12; + ecJumpForward = ecFirstLazarus + 13; + ecAddJumpPoint = ecFirstLazarus + 14; + ecViewJumpHistory = ecFirstLazarus + 15; + ecJumpToNextError = ecFirstLazarus + 16; + ecJumpToPrevError = ecFirstLazarus + 17; + ecProcedureList = ecFirstLazarus + 18; // search code - ecFindDeclaration = ecFirstLazarus + 20; - ecFindBlockOtherEnd = ecFirstLazarus + 21; - ecFindBlockStart = ecFirstLazarus + 22; - ecOpenFileAtCursor = ecFirstLazarus + 23; - ecGotoIncludeDirective = ecFirstLazarus + 24; + ecFindDeclaration = ecFirstLazarus + 20; + ecFindBlockOtherEnd = ecFirstLazarus + 21; + ecFindBlockStart = ecFirstLazarus + 22; + ecOpenFileAtCursor = ecFirstLazarus + 23; + ecGotoIncludeDirective = ecFirstLazarus + 24; // edit selection - ecSelectionUpperCase = ecFirstLazarus + 50; - ecSelectionLowerCase = ecFirstLazarus + 51; - ecSelectionTabs2Spaces = ecFirstLazarus + 52; - ecSelectionEnclose = ecFirstLazarus + 53; - ecSelectionComment = ecFirstLazarus + 54; - ecSelectionUncomment = ecFirstLazarus + 55; - ecSelectionSort = ecFirstLazarus + 56; - ecSelectionBreakLines = ecFirstLazarus + 57; - ecSelectToBrace = ecFirstLazarus + 58; - ecSelectCodeBlock = ecFirstLazarus + 59; - ecSelectWord = ecFirstLazarus + 60; - ecSelectLine = ecFirstLazarus + 61; - ecSelectParagraph = ecFirstLazarus + 62; - ecSelectionConditional = ecFirstLazarus + 63; + ecSelectionUpperCase = ecFirstLazarus + 50; + ecSelectionLowerCase = ecFirstLazarus + 51; + ecSelectionTabs2Spaces = ecFirstLazarus + 52; + ecSelectionEnclose = ecFirstLazarus + 53; + ecSelectionComment = ecFirstLazarus + 54; + ecSelectionUncomment = ecFirstLazarus + 55; + ecSelectionSort = ecFirstLazarus + 56; + ecSelectionBreakLines = ecFirstLazarus + 57; + ecSelectToBrace = ecFirstLazarus + 58; + ecSelectCodeBlock = ecFirstLazarus + 59; + ecSelectWord = ecFirstLazarus + 60; + ecSelectLine = ecFirstLazarus + 61; + ecSelectParagraph = ecFirstLazarus + 62; + ecSelectionConditional = ecFirstLazarus + 63; // insert text - ecInsertCharacter = ecFirstLazarus + 80; - ecInsertGPLNotice = ecFirstLazarus + 81; - ecInsertLGPLNotice = ecFirstLazarus + 82; - ecInsertUserName = ecFirstLazarus + 83; - ecInsertDateTime = ecFirstLazarus + 84; - ecInsertChangeLogEntry = ecFirstLazarus + 85; - ecInsertCVSAuthor = ecFirstLazarus + 86; - ecInsertCVSDate = ecFirstLazarus + 87; - ecInsertCVSHeader = ecFirstLazarus + 88; - ecInsertCVSID = ecFirstLazarus + 89; - ecInsertCVSLog = ecFirstLazarus + 90; - ecInsertCVSName = ecFirstLazarus + 91; - ecInsertCVSRevision = ecFirstLazarus + 92; - ecInsertCVSSource = ecFirstLazarus + 93; + ecInsertCharacter = ecFirstLazarus + 80; + ecInsertGPLNotice = ecFirstLazarus + 81; + ecInsertLGPLNotice = ecFirstLazarus + 82; + ecInsertUserName = ecFirstLazarus + 83; + ecInsertDateTime = ecFirstLazarus + 84; + ecInsertChangeLogEntry = ecFirstLazarus + 85; + ecInsertCVSAuthor = ecFirstLazarus + 86; + ecInsertCVSDate = ecFirstLazarus + 87; + ecInsertCVSHeader = ecFirstLazarus + 88; + ecInsertCVSID = ecFirstLazarus + 89; + ecInsertCVSLog = ecFirstLazarus + 90; + ecInsertCVSName = ecFirstLazarus + 91; + ecInsertCVSRevision = ecFirstLazarus + 92; + ecInsertCVSSource = ecFirstLazarus + 93; // source tools - ecWordCompletion = ecFirstLazarus + 100; - ecCompleteCode = ecFirstLazarus + 101; - ecIdentCompletion = ecFirstLazarus + 102; - ecSyntaxCheck = ecFirstLazarus + 103; - ecGuessUnclosedBlock = ecFirstLazarus + 104; - ecGuessMisplacedIFDEF = ecFirstLazarus + 105; - ecConvertDFM2LFM = ecFirstLazarus + 106; - ecCheckLFM = ecFirstLazarus + 107; - ecConvertDelphiUnit = ecFirstLazarus + 108; - ecConvertDelphiProject = ecFirstLazarus + 109; - ecConvertDelphiPackage = ecFirstLazarus + 110; - ecMakeResourceString = ecFirstLazarus + 111; - ecDiff = ecFirstLazarus + 112; - ecExtractProc = ecFirstLazarus + 113; - ecFindIdentifierRefs = ecFirstLazarus + 114; - ecRenameIdentifier = ecFirstLazarus + 115; - ecInvertAssignment = ecFirstLazarus + 116; - ecShowCodeContext = ecFirstLazarus + 117; + ecWordCompletion = ecFirstLazarus + 100; + ecCompleteCode = ecFirstLazarus + 101; + ecIdentCompletion = ecFirstLazarus + 102; + ecSyntaxCheck = ecFirstLazarus + 103; + ecGuessUnclosedBlock = ecFirstLazarus + 104; + ecGuessMisplacedIFDEF = ecFirstLazarus + 105; + ecConvertDFM2LFM = ecFirstLazarus + 106; + ecCheckLFM = ecFirstLazarus + 107; + ecConvertDelphiUnit = ecFirstLazarus + 108; + ecConvertDelphiProject = ecFirstLazarus + 109; + ecConvertDelphiPackage = ecFirstLazarus + 110; + ecMakeResourceString = ecFirstLazarus + 111; + ecDiff = ecFirstLazarus + 112; + ecExtractProc = ecFirstLazarus + 113; + ecFindIdentifierRefs = ecFirstLazarus + 114; + ecRenameIdentifier = ecFirstLazarus + 115; + ecInvertAssignment = ecFirstLazarus + 116; + ecShowCodeContext = ecFirstLazarus + 117; // file menu - ecNew = ecFirstLazarus + 201; - ecNewUnit = ecFirstLazarus + 202; - ecNewForm = ecFirstLazarus + 203; - ecOpen = ecFirstLazarus + 205; - ecRevert = ecFirstLazarus + 206; - ecSave = ecFirstLazarus + 207; - ecSaveAs = ecFirstLazarus + 208; - ecSaveAll = ecFirstLazarus + 209; - ecClose = ecFirstLazarus + 210; - ecCloseAll = ecFirstLazarus + 211; - ecCleanDirectory = ecFirstLazarus + 212; - ecRestart = ecFirstLazarus + 213; - ecQuit = ecFirstLazarus + 214; + ecNew = ecFirstLazarus + 201; + ecNewUnit = ecFirstLazarus + 202; + ecNewForm = ecFirstLazarus + 203; + ecOpen = ecFirstLazarus + 205; + ecRevert = ecFirstLazarus + 206; + ecSave = ecFirstLazarus + 207; + ecSaveAs = ecFirstLazarus + 208; + ecSaveAll = ecFirstLazarus + 209; + ecClose = ecFirstLazarus + 210; + ecCloseAll = ecFirstLazarus + 211; + ecCleanDirectory = ecFirstLazarus + 212; + ecRestart = ecFirstLazarus + 213; + ecQuit = ecFirstLazarus + 214; // IDE navigation - ecJumpToEditor = ecFirstLazarus + 300; - ecToggleFormUnit = ecFirstLazarus + 301; - ecToggleObjectInsp = ecFirstLazarus + 302; - ecToggleSourceEditor = ecFirstLazarus + 303; - ecToggleCodeExpl = ecFirstLazarus + 304; - ecToggleMessages = ecFirstLazarus + 305; - ecToggleWatches = ecFirstLazarus + 306; - ecToggleBreakPoints = ecFirstLazarus + 307; - ecToggleDebuggerOut = ecFirstLazarus + 308; - ecViewUnits = ecFirstLazarus + 309; - ecViewForms = ecFirstLazarus + 310; - ecViewUnitDependencies = ecFirstLazarus + 311; - ecViewUnitInfo = ecFirstLazarus + 312; - ecToggleLocals = ecFirstLazarus + 313; - ecToggleCallStack = ecFirstLazarus + 314; - ecToggleSearchResults = ecFirstLazarus + 315; - ecViewAnchorEditor = ecFirstLazarus + 316; - ecToggleCompPalette = ecFirstLazarus + 317; - ecToggleIDESpeedBtns = ecFirstLazarus + 318; + ecJumpToEditor = ecFirstLazarus + 300; + ecToggleFormUnit = ecFirstLazarus + 301; + ecToggleObjectInsp = ecFirstLazarus + 302; + ecToggleSourceEditor = ecFirstLazarus + 303; + ecToggleCodeExpl = ecFirstLazarus + 304; + ecToggleMessages = ecFirstLazarus + 305; + ecToggleWatches = ecFirstLazarus + 306; + ecToggleBreakPoints = ecFirstLazarus + 307; + ecToggleDebuggerOut = ecFirstLazarus + 308; + ecViewUnits = ecFirstLazarus + 309; + ecViewForms = ecFirstLazarus + 310; + ecViewUnitDependencies = ecFirstLazarus + 311; + ecViewUnitInfo = ecFirstLazarus + 312; + ecToggleLocals = ecFirstLazarus + 313; + ecToggleCallStack = ecFirstLazarus + 314; + ecToggleSearchResults = ecFirstLazarus + 315; + ecViewAnchorEditor = ecFirstLazarus + 316; + ecToggleCompPalette = ecFirstLazarus + 317; + ecToggleIDESpeedBtns = ecFirstLazarus + 318; // sourcenotebook commands - ecNextEditor = ecFirstLazarus + 330; - ecPrevEditor = ecFirstLazarus + 331; - ecMoveEditorLeft = ecFirstLazarus + 332; - ecMoveEditorRight = ecFirstLazarus + 333; - ecAddBreakPoint = ecFirstLazarus + 334; - ecRemoveBreakPoint = ecFirstLazarus + 335; - ecGotoEditor1 = ecFirstLazarus + 350; - ecGotoEditor2 = ecGotoEditor1 + 1; - ecGotoEditor3 = ecGotoEditor2 + 1; - ecGotoEditor4 = ecGotoEditor3 + 1; - ecGotoEditor5 = ecGotoEditor4 + 1; - ecGotoEditor6 = ecGotoEditor5 + 1; - ecGotoEditor7 = ecGotoEditor6 + 1; - ecGotoEditor8 = ecGotoEditor7 + 1; - ecGotoEditor9 = ecGotoEditor8 + 1; - ecGotoEditor0 = ecGotoEditor9 + 1; + ecNextEditor = ecFirstLazarus + 330; + ecPrevEditor = ecFirstLazarus + 331; + ecMoveEditorLeft = ecFirstLazarus + 332; + ecMoveEditorRight = ecFirstLazarus + 333; + ecAddBreakPoint = ecFirstLazarus + 334; + ecRemoveBreakPoint = ecFirstLazarus + 335; + ecGotoEditor1 = ecFirstLazarus + 350; + ecGotoEditor2 = ecGotoEditor1 + 1; + ecGotoEditor3 = ecGotoEditor2 + 1; + ecGotoEditor4 = ecGotoEditor3 + 1; + ecGotoEditor5 = ecGotoEditor4 + 1; + ecGotoEditor6 = ecGotoEditor5 + 1; + ecGotoEditor7 = ecGotoEditor6 + 1; + ecGotoEditor8 = ecGotoEditor7 + 1; + ecGotoEditor9 = ecGotoEditor8 + 1; + ecGotoEditor0 = ecGotoEditor9 + 1; // marker - ecSetFreeBookmark = ecFirstLazarus + 381; - ecPrevBookmark = ecFirstLazarus + 382; - ecNextBookmark = ecFirstLazarus + 383; + ecSetFreeBookmark = ecFirstLazarus + 381; + ecPrevBookmark = ecFirstLazarus + 382; + ecNextBookmark = ecFirstLazarus + 383; // compile menu - ecBuild = ecFirstLazarus + 400; - ecBuildAll = ecFirstLazarus + 401; - ecQuickCompile = ecFirstLazarus + 402; - ecAbortBuild = ecFirstLazarus + 403; - ecRun = ecFirstLazarus + 404; - ecPause = ecFirstLazarus + 405; - ecStepInto = ecFirstLazarus + 406; - ecStepOver = ecFirstLazarus + 407; - ecRunToCursor = ecFirstLazarus + 408; - ecStopProgram = ecFirstLazarus + 409; - ecResetDebugger = ecFirstLazarus + 410; - ecBuildLazarus = ecFirstLazarus + 411; - ecBuildFile = ecFirstLazarus + 412; - ecRunFile = ecFirstLazarus + 413; - ecConfigBuildFile = ecFirstLazarus + 414; - ecInspect = ecFirstLazarus + 415; - ecEvaluate = ecFirstLazarus + 416; - ecAddWatch = ecFirstLazarus + 417; + ecBuild = ecFirstLazarus + 400; + ecBuildAll = ecFirstLazarus + 401; + ecQuickCompile = ecFirstLazarus + 402; + ecAbortBuild = ecFirstLazarus + 403; + ecRun = ecFirstLazarus + 404; + ecPause = ecFirstLazarus + 405; + ecStepInto = ecFirstLazarus + 406; + ecStepOver = ecFirstLazarus + 407; + ecRunToCursor = ecFirstLazarus + 408; + ecStopProgram = ecFirstLazarus + 409; + ecResetDebugger = ecFirstLazarus + 410; + ecBuildLazarus = ecFirstLazarus + 411; + ecBuildFile = ecFirstLazarus + 412; + ecRunFile = ecFirstLazarus + 413; + ecConfigBuildFile = ecFirstLazarus + 414; + ecInspect = ecFirstLazarus + 415; + ecEvaluate = ecFirstLazarus + 416; + ecAddWatch = ecFirstLazarus + 417; // project menu - ecNewProject = ecFirstLazarus + 500; - ecNewProjectFromFile = ecFirstLazarus + 501; - ecOpenProject = ecFirstLazarus + 502; - ecSaveProject = ecFirstLazarus + 503; - ecSaveProjectAs = ecFirstLazarus + 504; - ecPublishProject = ecFirstLazarus + 505; - ecProjectInspector = ecFirstLazarus + 506; - ecAddCurUnitToProj = ecFirstLazarus + 507; - ecRemoveFromProj = ecFirstLazarus + 508; - ecViewProjectSource = ecFirstLazarus + 509; - ecViewProjectTodos = ecFirstLazarus + 510; - ecProjectOptions = ecFirstLazarus + 511; + ecNewProject = ecFirstLazarus + 500; + ecNewProjectFromFile = ecFirstLazarus + 501; + ecOpenProject = ecFirstLazarus + 502; + ecSaveProject = ecFirstLazarus + 503; + ecSaveProjectAs = ecFirstLazarus + 504; + ecPublishProject = ecFirstLazarus + 505; + ecProjectInspector = ecFirstLazarus + 506; + ecAddCurUnitToProj = ecFirstLazarus + 507; + ecRemoveFromProj = ecFirstLazarus + 508; + ecViewProjectSource = ecFirstLazarus + 509; + ecViewProjectTodos = ecFirstLazarus + 510; + ecProjectOptions = ecFirstLazarus + 511; // components menu - ecOpenPackage = ecFirstLazarus + 600; - ecOpenPackageFile = ecFirstLazarus + 601; - ecOpenPackageOfCurUnit = ecFirstLazarus + 602; - ecAddCurUnitToPkg = ecFirstLazarus + 603; - ecPackageGraph = ecFirstLazarus + 604; - ecEditInstallPkgs = ecFirstLazarus + 605; - ecConfigCustomComps = ecFirstLazarus + 606; + ecOpenPackage = ecFirstLazarus + 600; + ecOpenPackageFile = ecFirstLazarus + 601; + ecOpenPackageOfCurUnit = ecFirstLazarus + 602; + ecAddCurUnitToPkg = ecFirstLazarus + 603; + ecPackageGraph = ecFirstLazarus + 604; + ecEditInstallPkgs = ecFirstLazarus + 605; + ecConfigCustomComps = ecFirstLazarus + 606; // custom tools menu - ecExtToolFirst = ecFirstLazarus + 700; - ecExtToolLast = ecFirstLazarus + 799; + ecExtToolFirst = ecFirstLazarus + 700; + ecExtToolLast = ecFirstLazarus + 799; // option commmands - ecRunParameters = ecFirstLazarus + 800; - ecCompilerOptions = ecFirstLazarus + 801; - ecExtToolSettings = ecFirstLazarus + 802; - ecConfigBuildLazarus = ecFirstLazarus + 803; - ecEnvironmentOptions = ecFirstLazarus + 804; - ecEditorOptions = ecFirstLazarus + 805; - ecEditCodeTemplates = ecFirstLazarus + 806; - ecCodeToolsOptions = ecFirstLazarus + 807; - ecCodeToolsDefinesEd = ecFirstLazarus + 808; - ecRescanFPCSrcDir = ecFirstLazarus + 809; + ecRunParameters = ecFirstLazarus + 800; + ecCompilerOptions = ecFirstLazarus + 801; + ecExtToolSettings = ecFirstLazarus + 802; + ecConfigBuildLazarus = ecFirstLazarus + 803; + ecEnvironmentOptions = ecFirstLazarus + 804; + ecEditorOptions = ecFirstLazarus + 805; + ecEditCodeTemplates = ecFirstLazarus + 806; + ecCodeToolsOptions = ecFirstLazarus + 807; + ecCodeToolsDefinesEd = ecFirstLazarus + 808; + ecRescanFPCSrcDir = ecFirstLazarus + 809; // help menu - ecAboutLazarus = ecFirstLazarus + 900; - ecOnlineHelp = ecFirstLazarus + 901; - ecConfigureHelp = ecFirstLazarus + 902; - ecContextHelp = ecFirstLazarus + 903; - ecEditContextHelp = ecFirstLazarus + 904; + ecAboutLazarus = ecFirstLazarus + 900; + ecOnlineHelp = ecFirstLazarus + 901; + ecConfigureHelp = ecFirstLazarus + 902; + ecContextHelp = ecFirstLazarus + 903; + ecEditContextHelp = ecFirstLazarus + 904; // designer - ecDesignerCopy = ecFirstLazarus + 1000; - ecDesignerCut = ecFirstLazarus + 1001; - ecDesignerPaste = ecFirstLazarus + 1002; - ecDesignerSelectParent = ecFirstLazarus + 1003; - ecDesignerMoveToFront = ecFirstLazarus + 1004; - ecDesignerMoveToBack = ecFirstLazarus + 1005; - ecDesignerForwardOne = ecFirstLazarus + 1006; - ecDesignerBackOne = ecFirstLazarus + 1007; + ecDesignerCopy = ecFirstLazarus + 1000; + ecDesignerCut = ecFirstLazarus + 1001; + ecDesignerPaste = ecFirstLazarus + 1002; + ecDesignerSelectParent = ecFirstLazarus + 1003; + ecDesignerMoveToFront = ecFirstLazarus + 1004; + ecDesignerMoveToBack = ecFirstLazarus + 1005; + ecDesignerForwardOne = ecFirstLazarus + 1006; + ecDesignerBackOne = ecFirstLazarus + 1007; // custom commands - ecLazarusLast = ecFirstLazarus + 2000; + ecLazarusLast = ecFirstLazarus + 2000; type diff --git a/ideintf/menuintf.pas b/ideintf/menuintf.pas index f197d883d5..ddfbed237a 100644 --- a/ideintf/menuintf.pas +++ b/ideintf/menuintf.pas @@ -365,6 +365,8 @@ var SrcEditMenuSectionFirstDynamic: TIDEMenuSection; // Source Editor: First static section (e.g. Find Declaration) SrcEditMenuSectionFirstStatic: TIDEMenuSection; + // Source Editor: Find sub menu section (e.g. Procedure Jump) + SrcEditSubMenuFind: TIDEMenuSection; // Source Editor: Clipboard section (e.g. cut, copy, paste) SrcEditMenuSectionClipboard: TIDEMenuSection; // Source Editor: File Specific dynamic section