How do I trace through implementors in Pharo?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

How do I trace through implementors in Pharo?

Tim Mackinnon
As I relearn/learn how to use Pharo, I’m struck by some of the excellent changes and confounded by some of the simple things that boggle me.

So, I wanted to follow a path through some message sends - the use of #alert:title: in UIManager specifically.

So I browser UIManager, find the method (its subclassResponsiblity) - so I find other implementers (cmd+b, cmd+m) - (I’m really liking that there are more keystrokes in newer Pharo’s but not liking that the same operations don’t have the same bindings in different windows - e.g. in the debugger - its not this!!)

Anyway - this gives me an implementors window on TEasilyThemed - great!

In the source, there is another msg send - ^self alert:title:configure:

So I want to follow its implementers - I hi light the source and cmd+b,cmd+m does nothing? hmmm - right click there and the context menu doesn’t have an obvious way - until I spot (Extended Search…) [which by the way should be shown as a submenu - like it does in the SystemBrowser).

In this menu there is “implementers of it” - however this does nothing? (this is in both Pharo 3.0 and Pharo 4.0)

So how do you trace through method calls? Am I doing something wrong - or has this been broken for a long time?

Tim
Reply | Threaded
Open this post in threaded view
|

Re: How do I trace through implementors in Pharo?

philippeback
On Sun, Aug 10, 2014 at 11:33 PM, Tim Mackinnon <[hidden email]> wrote:
As I relearn/learn how to use Pharo, I’m struck by some of the excellent changes and confounded by some of the simple things that boggle me.

So, I wanted to follow a path through some message sends - the use of #alert:title: in UIManager specifically.

So I browser UIManager, find the method (its subclassResponsiblity) - so I find other implementers (cmd+b, cmd+m) - (I’m really liking that there are more keystrokes in newer Pharo’s but not liking that the same operations don’t have the same bindings in different windows - e.g. in the debugger - its not this!!)

Anyway - this gives me an implementors window on TEasilyThemed - great!

In the source, there is another msg send - ^self alert:title:configure:

So I want to follow its implementers - I hi light the source and cmd+b,cmd+m does nothing? hmmm - right click there and the context menu doesn’t have an obvious way - until I spot (Extended Search…) [which by the way should be shown as a submenu - like it does in the SystemBrowser).

In this menu there is “implementers of it” - however this does nothing? (this is in both Pharo 3.0 and Pharo 4.0)

So how do you trace through method calls? Am I doing something wrong - or has this been broken for a long time?

A workspace expression and Debug It?

Now, beware of how you select the code chunk, if you do not select properly, it will not work.
I tried in a fresh 3.0 and highlighting in the code pane and asking for implementors does work from the extended search menu.

I also use spotlight often.

Phil
 

Tim


Reply | Threaded
Open this post in threaded view
|

Re: How do I trace through implementors in Pharo?

Thierry Goubier
In reply to this post by Tim Mackinnon
Le 10/08/2014 23:33, Tim Mackinnon a écrit :

> As I relearn/learn how to use Pharo, I’m struck by some of the excellent changes and confounded by some of the simple things that boggle me.
>
> So, I wanted to follow a path through some message sends - the use of #alert:title: in UIManager specifically.
>
> So I browser UIManager, find the method (its subclassResponsiblity) - so I find other implementers (cmd+b, cmd+m) - (I’m really liking that there are more keystrokes in newer Pharo’s but not liking that the same operations don’t have the same bindings in different windows - e.g. in the debugger - its not this!!)
>
> Anyway - this gives me an implementors window on TEasilyThemed - great!
>
> In the source, there is another msg send - ^self alert:title:configure:
>
> So I want to follow its implementers - I hi light the source and cmd+b,cmd+m does nothing? hmmm - right click there and the context menu doesn’t have an obvious way - until I spot (Extended Search…) [which by the way should be shown as a submenu - like it does in the SystemBrowser).
Try smart suggestions, available through ctrl+t ?

This is also something I use a lot when I browse code: jump from
implementors to implementors...

Thierry
>
> In this menu there is “implementers of it” - however this does nothing? (this is in both Pharo 3.0 and Pharo 4.0)
>
> So how do you trace through method calls? Am I doing something wrong - or has this been broken for a long time?
>
> Tim
>
>


Reply | Threaded
Open this post in threaded view
|

Re: How do I trace through implementors in Pharo?

Dale Henrichs-3
In reply to this post by philippeback
Tim,

If there is a colon in one of the arguments (like in a Symbol) then the selector parser gets confused ...

Dale


On Sun, Aug 10, 2014 at 3:13 PM, [hidden email] <[hidden email]> wrote:
On Sun, Aug 10, 2014 at 11:33 PM, Tim Mackinnon <[hidden email]> wrote:
As I relearn/learn how to use Pharo, I’m struck by some of the excellent changes and confounded by some of the simple things that boggle me.

So, I wanted to follow a path through some message sends - the use of #alert:title: in UIManager specifically.

So I browser UIManager, find the method (its subclassResponsiblity) - so I find other implementers (cmd+b, cmd+m) - (I’m really liking that there are more keystrokes in newer Pharo’s but not liking that the same operations don’t have the same bindings in different windows - e.g. in the debugger - its not this!!)

Anyway - this gives me an implementors window on TEasilyThemed - great!

In the source, there is another msg send - ^self alert:title:configure:

So I want to follow its implementers - I hi light the source and cmd+b,cmd+m does nothing? hmmm - right click there and the context menu doesn’t have an obvious way - until I spot (Extended Search…) [which by the way should be shown as a submenu - like it does in the SystemBrowser).

In this menu there is “implementers of it” - however this does nothing? (this is in both Pharo 3.0 and Pharo 4.0)

So how do you trace through method calls? Am I doing something wrong - or has this been broken for a long time?

A workspace expression and Debug It?

Now, beware of how you select the code chunk, if you do not select properly, it will not work.
I tried in a fresh 3.0 and highlighting in the code pane and asking for implementors does work from the extended search menu.

I also use spotlight often.

Phil
 

Tim



Reply | Threaded
Open this post in threaded view
|

Re: How do I trace through implementors in Pharo?

Ben Coman
Dale Henrichs wrote:
Tim,

If there is a colon in one of the arguments (like in a Symbol) then the selector parser gets confused ...

Dale

I never noticed before, but I've confirmed that behaviour and logged a case.

https://pharo.fogbugz.com/default.asp?13826
Open a System Browser on 
    TEasilyThemed>>alert: aStringOrText title: aString
    ^self
        alert: aStringOrText
        title: aString
        configure: [:d | ]

Select the whole of the last three lines and fromt he selection context menu choose 'Extended search... > Implementors'.

Nothing happens.

Now make the action but exclude the block from the selection.  

Up comes a list of three implementors.

This is non-obvious and confusing behaviour for new users. Blocks should be excluded from the search.

cheers -ben



On Sun, Aug 10, 2014 at 3:13 PM, [hidden email] <[hidden email]> wrote:
On Sun, Aug 10, 2014 at 11:33 PM, Tim Mackinnon <[hidden email]> wrote:
As I relearn/learn how to use Pharo, I’m struck by some of the excellent changes and confounded by some of the simple things that boggle me.

So, I wanted to follow a path through some message sends - the use of #alert:title: in UIManager specifically.

So I browser UIManager, find the method (its subclassResponsiblity) - so I find other implementers (cmd+b, cmd+m) - (I’m really liking that there are more keystrokes in newer Pharo’s but not liking that the same operations don’t have the same bindings in different windows - e.g. in the debugger - its not this!!)

Anyway - this gives me an implementors window on TEasilyThemed - great!

In the source, there is another msg send - ^self alert:title:configure:

So I want to follow its implementers - I hi light the source and cmd+b,cmd+m does nothing? hmmm - right click there and the context menu doesn’t have an obvious way - until I spot (Extended Search…) [which by the way should be shown as a submenu - like it does in the SystemBrowser).

In this menu there is “implementers of it” - however this does nothing? (this is in both Pharo 3.0 and Pharo 4.0)

So how do you trace through method calls? Am I doing something wrong - or has this been broken for a long time?

A workspace expression and Debug It?

Now, beware of how you select the code chunk, if you do not select properly, it will not work.
I tried in a fresh 3.0 and highlighting in the code pane and asking for implementors does work from the extended search menu.

I also use spotlight often.

Phil
 

Tim