diff --git a/components/codetools/codetoolmanager.pas b/components/codetools/codetoolmanager.pas index 6c07b30eb0..0b1c570781 100644 --- a/components/codetools/codetoolmanager.pas +++ b/components/codetools/codetoolmanager.pas @@ -202,7 +202,8 @@ type // method jumping function JumpToMethod(Code: TCodeBuffer; X,Y: integer; var NewCode: TCodeBuffer; - var NewX, NewY, NewTopLine: integer): boolean; + var NewX, NewY, NewTopLine: integer; + var RevertableJump: boolean): boolean; // find declaration function FindDeclaration(Code: TCodeBuffer; X,Y: integer; @@ -619,7 +620,8 @@ begin end; function TCodeToolManager.JumpToMethod(Code: TCodeBuffer; X,Y: integer; - var NewCode: TCodeBuffer; var NewX, NewY, NewTopLine: integer): boolean; + var NewCode: TCodeBuffer; var NewX, NewY, NewTopLine: integer; + var RevertableJump: boolean): boolean; var CursorPos: TCodeXYPosition; NewPos: TCodeXYPosition; @@ -636,7 +638,8 @@ begin writeln('TCodeToolManager.JumpToMethod B ',FCurCodeTool.Scanner<>nil); {$ENDIF} try - Result:=FCurCodeTool.FindJumpPoint(CursorPos,NewPos,NewTopLine); + Result:=FCurCodeTool.FindJumpPoint(CursorPos,NewPos,NewTopLine, + RevertableJump); if Result then begin NewX:=NewPos.X; NewY:=NewPos.Y; diff --git a/components/codetools/methodjumptool.pas b/components/codetools/methodjumptool.pas index 96fdd30cbf..29fe3cdf4f 100644 --- a/components/codetools/methodjumptool.pas +++ b/components/codetools/methodjumptool.pas @@ -56,7 +56,8 @@ type const UpperProcName: string): TCodeTreeNode; public function FindJumpPoint(CursorPos: TCodeXYPosition; - var NewPos: TCodeXYPosition; var NewTopLine: integer): boolean; + var NewPos: TCodeXYPosition; var NewTopLine: integer; + var RevertableJump: boolean): boolean; function FindJumpPointInProcNode(ProcNode: TCodeTreeNode; var NewPos: TCodeXYPosition; var NewTopLine: integer): boolean; function GatherProcNodes(StartNode: TCodeTreeNode; @@ -136,7 +137,8 @@ begin end; function TMethodJumpingCodeTool.FindJumpPoint(CursorPos: TCodeXYPosition; - var NewPos: TCodeXYPosition; var NewTopLine: integer): boolean; + var NewPos: TCodeXYPosition; var NewTopLine: integer; + var RevertableJump: boolean): boolean; const JumpToProcAttr = [phpInUpperCase,phpWithoutClassName,phpWithVarModifiers, @@ -201,6 +203,7 @@ const Result:=JumpToCleanPos(ToProcNode.FirstChild.StartPos, ToProcNode.StartPos,NewPos,NewTopLine,false); end; + RevertableJump:=true; end; end; @@ -260,6 +263,7 @@ var CursorNode, ClassNode, ProcNode, StartNode, TypeSectionNode, BodyAVLNode, DefAVLNode: TAVLTreeNode; begin Result:=false; + RevertableJump:=false; NewPos:=CursorPos; // build code tree {$IFDEF CTDEBUG}