View Issue Details

IDProjectCategoryView StatusLast Update
0026988LazarusIDEpublic2020-03-30 21:24
ReporterNever Assigned ToJuha Manninen  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionno change required 
OSwin7 64 bit 
Product Version1.2.6 
Summary0026988: Code Explorer [Jump To Implementation] is the same with [ Procedure Jump]
DescriptionIn Source editor if you right click there is a popup menu
second choice from top is [Find]
if you click on Find there is a sub menu [ Procedure Jump ]
the specific command [ Procedure Jump ] should renamed to [Jump To Implementation]like in Code Explorer
 and the behavior should be the same with [Jump To Implementation]
this report is related to this
[ http://bugs.freepascal.org/view.php?id=26871 ]
TagsNo tags attached.
Fixed in Revision
LazTarget-
Widgetset
Attached Files

Relationships

related to 0026871 assignedMattias Gaertner Contex menu Find / procedure jump shift+ctrl+up 
related to 0020048 resolvedJuha Manninen Code Explorer -> Go To Implementation 

Activities

Mattias Gaertner

2014-11-03 10:50

manager   ~0078847

"Procedure Jump" works context sensitive: it jumps from implementation to declaration and from declaration to implementation.
Why reduce it to only "from declaration to implementation"?

Never

2014-11-03 11:03

reporter   ~0078848

Last edited: 2014-11-03 11:11

View 5 revisions

The same with "Procedure Jump" is done in contex menu with 'Find Declaration' Alt+up (2 commands for the same thing!)
there is a deference thought between "Procedure Jump" and [Jump To Implementation]
"Procedure Jump" always work for the procedure the user is curently writting while the [Jump To Implementation] can be executed to any procedure is selected this gives the oportiunity to extent the factionality and not redusing it

did this macro as a temporary solution
mentioned here [ http://bugs.freepascal.org/view.php?id=26871 ]
select an identifier (procedure function) while in a procedure and run the macro to see the effect
[code]
begin
ecFindDeclaration;
ecLineEnd;
ecFindProcedureDefinition;
end.

[/code]

Mattias Gaertner

2014-11-03 11:32

manager   ~0078850

The bug title says "Code Explorer [Jump To Implementation] is the same with [ Procedure Jump]".
It is not the same. Code Explorer [Jump To Implementation] jumps to the implementation and Code Explorer [Jump To] jumps to the declaration.
Source Editor [Procedure Jump] is context sensitive and jumps forward and backward between declaration and implementation.

Do you found a bug or is the title wrong?

Never

2014-11-03 12:37

reporter   ~0078853

Last edited: 2014-11-03 12:51

View 4 revisions

Forgive my ignorance but since
context menu Source Editor [Find Declaration] ---> jumps to declaration (a)
context menu Source Editor [Find] [Procedure Jump] ---> jumps to declaration(b)
considered a bug because there is no need for the same command 2 times in the same menu ...from my point of view the title is correct
going one step further
there is also
Code Explorer [Jump To]---> jumps to the declaration(a)
and
Code Explorer [Jump To Implementation]--->jumps to the implementation(b)
wich are behaiving as excpected
so connecting the both return a result that the
context menu Source Editor [Find] [Procedure Jump] it has to be named and execute the same command with Code Explorer [Jump To Implementation]
Thats all
Edit***:Maybe a title
 [
  context menu Source Editor [Find Declaration]
    is the same with
   context menu Source Editor [Find] [Procedure Jump]
 ]
would be more apropriate
 regards

Mattias Gaertner

2014-11-03 12:59

manager   ~0078855

Source Editor [Find Declaration] ---> jumps from an identifier to declaration (a)
Source Editor [Find] [Procedure Jump] ---> jumps from a declaration context (i.e. the whole line) to the implementation or from a procedure implementation (i.e. from procedure..end;) to declaration(b)

The first considers only the identifier at the cursor, the second a whole procedure. The first works with any identifier, the second only with procedures.
The first jumps to the next declaration (always backward), the second jumps between declaration and implementation (forward and backward). e.g. Find Declaration jumps to the inherited method.

The two functions only do the same if the cursor is on the procedure name of the implementation and if there is a declaration in the same unit.

Never

2014-11-03 13:49

reporter   ~0078858

Last edited: 2014-11-03 14:09

View 5 revisions

Exactly
when an identifier is selected inside a procedure the submenu of the context menu
[Find]
executes commants related to the selected identifier
ex: if the current procedure name is proc_Cur and inside this procedure you have selected anothet procedure with the name proc_inside

Find Next Word Occurrence> will find the next proc_inside
Find Previus Word Occurrence>will find the previus proc_inside
...etc same goes for the whole submenu
except for the [Procedure Jump] command wich still executes for the proc_Cur
while expected to execute a command related to proc_inside
and since [Find Declaration] goes to declaration while proc_inside is selected expected
[Find] [Procedure Jump] to go to proc_inside implementation
ps/ All been said according to the common practice that
when there is a selection
all commands of a context menu are aplied to this selection
there are excpetions thought and this leeds to disabled and enabled commands
usually the first level commants in a context menu are more generic while the submenus are more specific
in the case beeing described the more specific submenu command [Procedure Jump] executes the same command with the more generic first level contect menu command [Find Declaration]
this not an ordinary bug like a code that is producing errors is a logical bug

Mattias Gaertner

2014-11-03 15:01

manager   ~0078859

How would you name the "Procedure Jump" to make its function more clear?

Never

2014-11-05 02:03

reporter   ~0078908

Here just a coincidence from forums that is a clear proof of what mentioned in message [ http://bugs.freepascal.org/view.php?id=26988#c78866 ]

[ http://forum.lazarus.freepascal.org/index.php/topic,26354.msg161848/topicseen.html#new ]

Notice About the user [ Posts: 9 ] not familiar with Lazarus ( here is the value)

Is clear that the user excpecting that
since the menu is enabled does something and when it doesn't the user is confused

is not the only one thought and there is no reason to track them all down

Juha Manninen

2020-03-30 21:24

developer   ~0121780

This doesn't make much sense. I think Mattias explained the functionality well.
Resolving.

Issue History

Date Modified Username Field Change
2014-11-02 18:34 Never New Issue
2014-11-02 18:45 Juha Manninen Relationship added related to 0026871
2014-11-03 10:50 Mattias Gaertner Note Added: 0078847
2014-11-03 11:03 Never Note Added: 0078848
2014-11-03 11:08 Never Note Edited: 0078848 View Revisions
2014-11-03 11:08 Never Note Edited: 0078848 View Revisions
2014-11-03 11:09 Never Note Edited: 0078848 View Revisions
2014-11-03 11:11 Never Note Edited: 0078848 View Revisions
2014-11-03 11:32 Mattias Gaertner Note Added: 0078850
2014-11-03 12:37 Never Note Added: 0078853
2014-11-03 12:51 Never Note Edited: 0078853 View Revisions
2014-11-03 12:51 Never Note Edited: 0078853 View Revisions
2014-11-03 12:51 Never Note Edited: 0078853 View Revisions
2014-11-03 12:59 Mattias Gaertner Note Added: 0078855
2014-11-03 13:49 Never Note Added: 0078858
2014-11-03 13:50 Never Note Edited: 0078858 View Revisions
2014-11-03 13:50 Never Note Edited: 0078858 View Revisions
2014-11-03 14:06 Never Note Edited: 0078858 View Revisions
2014-11-03 14:09 Never Note Edited: 0078858 View Revisions
2014-11-03 15:01 Mattias Gaertner Note Added: 0078859
2014-11-05 02:03 Never Note Added: 0078908
2018-01-15 16:13 Juha Manninen Relationship added related to 0020048
2020-03-30 21:24 Juha Manninen Assigned To => Juha Manninen
2020-03-30 21:24 Juha Manninen Status new => resolved
2020-03-30 21:24 Juha Manninen Resolution open => no change required
2020-03-30 21:24 Juha Manninen LazTarget => -
2020-03-30 21:24 Juha Manninen Note Added: 0121780