[squeak-dev] Listing classes by hierarchy

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

[squeak-dev] Listing classes by hierarchy

Robert Krahn-2
Hi,

I really like the way how OmniBrowser lists classes by hierarchy and  
with indentation. I just extended the normal browser to do the same.  
The feature is disabled by default and can be turned on with  
Preferences enable: #listClassesHierarchically.

If you like the change I would be happy if it would be included in the  
trunk. Right now it's here: http://source.squeak.org/inbox/Tools-rkrk.111.mcz

Robert

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Listing classes by hierarchy

Randal L. Schwartz
>>>>> "Robert" == Robert Krahn <[hidden email]> writes:

Robert> I really like the way how OmniBrowser lists classes by hierarchy and
Robert> with indentation. I just extended the normal browser to do the same.
Robert> The feature is disabled by default and can be turned on with
Robert> Preferences enable: #listClassesHierarchically.

I think it's a bit misleading, since it's only within that package.

When I want a hierarchy, I create a hierarchical browser.

--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[hidden email]> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion

Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: Listing classes by hierarchy

Andreas.Raab
In reply to this post by Robert Krahn-2
I was just looking at the code and noticed that there is a bit of
confusion between using classic preferences and pragma preferences. In
this case, we have both Browser class>>listClassesHierarchically which
is a pragma preference and Preferences>>listClassesHierarchically which
is a classic preference. The important part is that when you use pragmas
there should be no references to Preferences anymore. So in this case
instead of

Preferences enable: #listClassesHierarchically.
Preferences disable: #listClassesHierarchically.
Preferences listClassesHierarchically. "test if enabled"

It would be:

Browser listClassesHierarchically: true.
Browser listClassesHierarchically: false.
Browser listClassesHierarchically. "test if enabled"

Notice that with pragma preferences code should not use Preferences
EVER. If you find that you are using pragmas and still refer to
Preferences it is a sign that something is wrong.

Cheers,
   - Andreas

Robert Krahn wrote:

> Hi,
>
> I really like the way how OmniBrowser lists classes by hierarchy and
> with indentation. I just extended the normal browser to do the same. The
> feature is disabled by default and can be turned on with Preferences
> enable: #listClassesHierarchically.
>
> If you like the change I would be happy if it would be included in the
> trunk. Right now it's here:
> http://source.squeak.org/inbox/Tools-rkrk.111.mcz
>
> Robert
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Listing classes by hierarchy

Robert Krahn-2
In reply to this post by Randal L. Schwartz
I think it's a bit misleading, since it's only within that package.

When I want a hierarchy, I create a hierarchical browser.

OK, how would you call it?

Robert


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: Listing classes by hierarchy

Robert Krahn-2
In reply to this post by Andreas.Raab
Notice that with pragma preferences code should not use Preferences EVER. If you find that you are using pragmas and still refer to Preferences it is a sign that something is wrong.

Thanks for the clarification. I removed the references to Preferences.

Robert


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Listing classes by hierarchy

Randal L. Schwartz
In reply to this post by Robert Krahn-2
>>>>> "Robert" == Robert Krahn <[hidden email]> writes:

Robert> OK, how would you call it?

Pick a class, middle-or-right click, select "hierarchical browser".
There's a shortcut, but I never remember it until the second time.

--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[hidden email]> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Listing classes by hierarchy

Robert Krahn-2
Sorry, I misunderstood you. I'm aware of the HierarchyBrowser, however, I think it's really convenient to see the inheritance relationship in a package without opening a new window.

Robert

On Mon, Aug 24, 2009 at 3:17 AM, Randal L. Schwartz <[hidden email]> wrote:
Robert> OK, how would you call it?

Pick a class, middle-or-right click, select "hierarchical browser".
There's a shortcut, but I never remember it until the second time.


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Listing classes by hierarchy

Markus Lampert
In reply to this post by Robert Krahn-2
Love it, thanks!

Markus



----- Original Message ----
From: Robert Krahn <[hidden email]>
To: The general-purpose Squeak developers list <[hidden email]>
Sent: Sunday, August 23, 2009 5:06:35 PM
Subject: [squeak-dev] Listing classes by hierarchy

Hi,

I really like the way how OmniBrowser lists classes by hierarchy and with indentation. I just extended the normal browser to do the same. The feature is disabled by default and can be turned on with Preferences enable: #listClassesHierarchically.

If you like the change I would be happy if it would be included in the trunk. Right now it's here: http://source.squeak.org/inbox/Tools-rkrk.111.mcz

Robert


     

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Listing classes by hierarchy

Ralph Boland
In reply to this post by Robert Krahn-2
> Sorry, I misunderstood you. I'm aware of the HierarchyBrowser,
> however, I think it's really convenient to see the inheritance
> relationship in a package without opening a new window.

> Robert

I kind of have to agree here.  Usually when I open a HierarchyBrowser
what I usually really want is that it replace the current browser
carrying across any pertinent information.
I would find this very useful (though I suspect difficult to implement).
Of course one will want to have in addition the ability to open an
additional browser as is the behavior now.
Though I don't expect to see this feature any time soon it would
address to a small degree one of my difficulties: that is the tendency
to accumulate large numbers of code browsers over a short period of
time (often many are on the same class)  until the system
begins to slow down.
I then usually start over by closing all or nearly all code browsers.
Some kind of coder browser organizing utility would be great, although
I have no idea how it would work.
One of the great features of Smalltalk is the ease with which one can
jump about in the code. But doing this tends to pile up the code
browsers very quickly.  My strategy for this problem is the close most/all
the browsers when my mind is overwhelmed or the system slows down.
Everyone probably has their own strategy but tools to help the user
manage these code browsers effectively would be a great help.
I am not the GUI builder type so I don't want to propose solutions here.
Of course I am prepared to point out the failures of the designs of
others. :-)

Ralph Boland

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Listing classes by hierarchy

Trygve
Have you looked at the superclass-filter in the babyIDE class browser?
The easiest way to look at it is to download the Baby image from
    http://heim.ifi.uio.no/~trygver/themes/babyide/baby-downloads.html

(The basic idea is from the Tektronix Smalltalk browser in the eighties, but the code and browser layout is entirely new. I hope such new implementations of 20 year old ideas do not violate US law.)
--Trygve


On 2009.08.24 08:49, Ralph Boland wrote:
Sorry, I misunderstood you. I'm aware of the HierarchyBrowser,
however, I think it's really convenient to see the inheritance
relationship in a package without opening a new window.
    

  
Robert
    

I kind of have to agree here.  Usually when I open a HierarchyBrowser
what I usually really want is that it replace the current browser
carrying across any pertinent information.
I would find this very useful (though I suspect difficult to implement).
Of course one will want to have in addition the ability to open an
additional browser as is the behavior now.
Though I don't expect to see this feature any time soon it would
address to a small degree one of my difficulties: that is the tendency
to accumulate large numbers of code browsers over a short period of
time (often many are on the same class)  until the system
begins to slow down.
I then usually start over by closing all or nearly all code browsers.
Some kind of coder browser organizing utility would be great, although
I have no idea how it would work.
One of the great features of Smalltalk is the ease with which one can
jump about in the code. But doing this tends to pile up the code
browsers very quickly.  My strategy for this problem is the close most/all
the browsers when my mind is overwhelmed or the system slows down.
Everyone probably has their own strategy but tools to help the user
manage these code browsers effectively would be a great help.
I am not the GUI builder type so I don't want to propose solutions here.
Of course I am prepared to point out the failures of the designs of
others. :-)

Ralph Boland


  

--
--

Trygve Reenskaug       mailto: [hidden email]

Morgedalsvn. 5A         http://heim.ifi.uio.no/~trygver

N-0378 Oslo               Tel: (+47) 22 49 57 27

Norway



Reply | Threaded
Open this post in threaded view
|

Better senders/implementers UI (was Re: [squeak-dev] Listing classes by hierarchy)

Bert Freudenberg
In reply to this post by Ralph Boland

On 24.08.2009, at 08:49, Ralph Boland wrote:

>> Sorry, I misunderstood you. I'm aware of the HierarchyBrowser,
>> however, I think it's really convenient to see the inheritance
>> relationship in a package without opening a new window.
>
>> Robert
>
> I kind of have to agree here.  Usually when I open a HierarchyBrowser
> what I usually really want is that it replace the current browser
> carrying across any pertinent information.
> I would find this very useful (though I suspect difficult to  
> implement).
> Of course one will want to have in addition the ability to open an
> additional browser as is the behavior now.
> Though I don't expect to see this feature any time soon it would
> address to a small degree one of my difficulties: that is the tendency
> to accumulate large numbers of code browsers over a short period of
> time (often many are on the same class)  until the system
> begins to slow down.
> I then usually start over by closing all or nearly all code browsers.
> Some kind of coder browser organizing utility would be great, although
> I have no idea how it would work.
> One of the great features of Smalltalk is the ease with which one can
> jump about in the code. But doing this tends to pile up the code
> browsers very quickly.  My strategy for this problem is the close  
> most/all
> the browsers when my mind is overwhelmed or the system slows down.
> Everyone probably has their own strategy but tools to help the user
> manage these code browsers effectively would be a great help.
> I am not the GUI builder type so I don't want to propose solutions  
> here.
> Of course I am prepared to point out the failures of the designs of
> others. :-)


Scott Wallace made a nice improvement to the regular senders/
implementers browsers. It reuses in the same window, and adds a  
history pane so you can see how you got to a certain point, and can  
back track if necessary.

This has not been updated since 3.8 I think, but if properly  
integrated rather than as separate package it might be quite nice:

http://www.squeaksource.com/Green.html

- Bert -