[squeak-dev] Removing from MessageSet browsers, re: Tools-ul.687

Jakob Reschke jakob.reschke at student.hpi.de
Thu Apr 7 22:32:11 UTC 2016


Hi,

would anybody else be interested in key mappings for "remove from this
browser" in MessageSet/MessageTrace browsers (cyan by default with
colorful windows), i.e. to only remove a method from the displayed set
instead of removing the method from its class?

Use case/user story: when exploring a system, I repeatedly invoke
senders/implementors which collects me lots of methods in such a
browser. In order to keep an overview of the control flow I would like
to tidy that up by removing unrelated matches (methods with equal
names from unrelated classes). But currently that is tedious, because
you have to go through the 2nd level ("more...") context menu for
every single method to be thus removed.

Best regards,
Jakob

2016-04-07 22:04 GMT+02:00 commits at source.squeak.org
<commits at source.squeak.org>:
> Levente Uzonyi uploaded a new version of Tools to project The Trunk:
> http://source.squeak.org/trunk/Tools-ul.687.mcz
>
> ==================== Summary ====================
>
> Name: Tools-ul.687
> Author: ul
> Time: 7 April 2016, 11:04:02.506276 pm
> UUID: 2d6efa2b-2716-439f-8c7e-e351e2e37883
> Ancestors: Tools-ul.686
>
> - removed the hard dependency on HelpBrowser
> - all browser panels respond to Cmd+x with the same behavior: remove
>
> =============== Diff against Tools-ul.686 ===============
>
> Item was changed:
>   ----- Method: Browser>>browseAllCommentsForClass (in category 'message functions') -----
>   browseAllCommentsForClass
>         "Opens a HelpBrowser on the class"
>
>         | myClass |
> +       myClass := self selectedClassOrMetaClass ifNil: [ ^self ].
> +       myClass isTrait ifTrue: [ ^self ].
> +       (Smalltalk classNamed: #HelpBrowser)
> +               ifNil: [ ^self inform: 'HelpBrowser is not available.' ]
> +               ifNotNil: [ :HelpBrowser |
> +                       HelpBrowser openOn: myClass theNonMetaClass ]
> -       ((myClass := self selectedClassOrMetaClass) isNil or: [myClass isTrait])
> -               ifFalse: [HelpBrowser openOn: myClass theNonMetaClass]
>   !
>
> Item was changed:
>   ----- Method: Browser>>buildMessageCategoryListWith: (in category 'toolbuilder') -----
>   buildMessageCategoryListWith: builder
>         | listSpec |
>         listSpec := builder pluggableListSpec new.
>         listSpec
>                 model: self;
>                 list: #messageCategoryList;
>                 getIndex: #messageCategoryListIndex;
>                 setIndex: #messageCategoryListIndex:;
>                 menu: #messageCategoryMenu:;
> +               keyPress: #messageCategoryListKey:from:.
> -               keyPress: #arrowKey:from:.
>         SystemBrowser browseWithDragNDrop ifTrue:[
>                 listSpec
>                         dropAccept: #wantsMessageCategoriesDrop:;
>                         dropItem: #dropOnMessageCategories:at:].
>         ^listSpec
>   !
>
> Item was changed:
>   ----- Method: Browser>>mainMessageCategoryMenu: (in category 'message category functions') -----
>   mainMessageCategoryMenu: aMenu
>         <messageCategoryMenu>
>         ^ aMenu addList: #(
>                         ('browse'                                               buildMessageCategoryBrowser)
>                         ('print out'                                            printOutMessageCategories)
>                         ('file out'                                             fileOutMessageCategories)
>                         -
>                         ('reorganize'                                   editMessageCategories)
>                         ('alphabetize'                                  alphabetizeMessageCategories)
>                         ('remove empty categories'      removeEmptyCategories)
>                         ('categorize all uncategorized' categorizeAllUncategorizedMethods)
>                         ('new category...'                              addCategory)
>                         -
>                         ('rename...'                                            renameCategory)
> +                       ('remove (x)'                                   removeMessageCategory));
> -                       ('remove'                                               removeMessageCategory));
>                 yourself
>   !
>
> Item was changed:
>   ----- Method: Browser>>mainSystemCategoryMenu: (in category 'system category functions') -----
>   mainSystemCategoryMenu: aMenu
>         <systemCategoryMenu>
>         ^ aMenu addList: #(
>                         ('find class... (f)'                    findClass)
>                         ('back... (b)'                          recent)
>                         -
>                         ('browse all'                   browseAllClasses)
>                         ('browse'                               buildSystemCategoryBrowser)
>                         -
>                         ('printOut'                             printOutSystemCategory)
>                         ('fileOut'                              fileOutSystemCategory)
>                         -
>                         ('reorganize'                   editSystemCategories)
>                         ('alphabetize'                  alphabetizeSystemCategories)
>                         -
>                         ('update'                               updateSystemCategories)
>                         ('add item...'                          addSystemCategory)
>                         ('rename...'                            renameSystemCategory)
> +                       ('remove (x)'                   removeSystemCategory));
> -                       ('remove'                               removeSystemCategory));
>                 yourself
>   !
>
> Item was added:
> + ----- Method: Browser>>messageCategoryListKey:from: (in category 'message category list') -----
> + messageCategoryListKey: aCharacter from: view
> +
> +       aCharacter == $x ifTrue: [ ^self removeMessageCategory ].
> +       ^self arrowKey: aCharacter from: view
> +       !
>
>


More information about the Squeak-dev mailing list