<div dir="ltr">I miss the menu options to inspect and explore class variables.<div>This change makes it much harder to inspect values stored in class variables </div><div><br></div><div>Cheers,</div><div>Karl</div><div><br>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, May 3, 2011 at 1:36 AM,  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Chris Muller uploaded a new version of Tools to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Tools-cmm.347.mcz" target="_blank">http://source.squeak.org/trunk/Tools-cmm.347.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Tools-cmm.347<br>
Author: cmm<br>
Time: 2 May 2011, 6:36:40.244 pm<br>
UUID: 977c180b-7c15-4200-9ceb-319d2e850364<br>
Ancestors: Tools-fbs.346, Tools-fbs.345<br>
<br>
- Update menu &quot;inst var defs&quot; to &quot;assignments...&quot; and &quot;inst var refs&quot; to &quot;references...&quot;.  Each option now includes a selection of the available class-variables, enabling &quot;class var refs&quot; to be removed.  Each option also has an appropriate hot-key assignment.<br>

- Removed &quot;class vars&quot; because one could simply explore the class&#39; classPool.<br>
<br>
=============== Diff against Tools-fbs.346 ===============<br>
<br>
Item was changed:<br>
  ----- Method: Browser&gt;&gt;classListMenu:shifted: (in category &#39;class functions&#39;) -----<br>
  classListMenu: aMenu shifted: shifted<br>
        &quot;Set up the menu to apply to the receiver&#39;s class list, honoring the #shifted boolean&quot;<br>
        self<br>
                menuHook: aMenu<br>
                named: #classListMenu<br>
                shifted: shifted.<br>
        Preferences useOnlyServicesInMenu ifTrue:[^aMenu].<br>
        shifted ifTrue:[^ self shiftedClassListMenu: aMenu].<br>
        aMenu addList: #(<br>
                -<br>
                (&#39;browse full (b)&#39;                      browseMethodFull)<br>
                (&#39;browse hierarchy (h)&#39;         spawnHierarchy)<br>
                (&#39;browse protocol (p)&#39;          browseFullProtocol)<br>
                -<br>
                (&#39;printOut&#39;                                     printOutClass)<br>
                (&#39;fileOut&#39;                                      fileOutClass)<br>
                -<br>
                (&#39;show hierarchy&#39;                       hierarchy)<br>
                (&#39;show definition&#39;                      editClass)<br>
                (&#39;show comment&#39;                 editComment)<br>
                -<br>
+               (&#39;references... (r)&#39;                    browseVariableReferences)<br>
+               (&#39;assignments... (a)&#39;                   browseVariableAssignments)<br>
-               (&#39;inst var refs...&#39;                     browseInstVarRefs)<br>
-               (&#39;inst var defs...&#39;                     browseInstVarDefs)<br>
-               -<br>
-               (&#39;class var refs...&#39;                    browseClassVarRefs)<br>
-               (&#39;class vars&#39;                                   browseClassVariables)<br>
                (&#39;class refs (N)&#39;                               browseClassRefs)<br>
                -<br>
                (&#39;rename class ...&#39;                     renameClass)<br>
                (&#39;copy class&#39;                           copyClass)<br>
                (&#39;remove class (x)&#39;                     removeClass)<br>
                -<br>
                (&#39;find method...&#39;                               findMethod)<br>
                -<br>
                (&#39;more...&#39;                                      offerShiftedClassListMenu)).<br>
        ^ aMenu<br>
  !<br>
<br>
Item was changed:<br>
  ----- Method: Browser&gt;&gt;messageListMenu:shifted: (in category &#39;message functions&#39;) -----<br>
  messageListMenu: aMenu shifted: shifted<br>
        &quot;Answer the message-list menu&quot;<br>
        self<br>
                menuHook: aMenu<br>
                named: #messageListMenu<br>
                shifted: shifted.<br>
        Preferences useOnlyServicesInMenu ifTrue:[^aMenu].<br>
        shifted ifTrue: [^ self shiftedMessageListMenu: aMenu].<br>
        aMenu addList: #(<br>
                        (&#39;what to show...&#39;                      offerWhatToShowMenu)<br>
                        (&#39;toggle break on entry&#39;                toggleBreakOnEntry)<br>
                        -<br>
                        (&#39;browse full (b)&#39;                      browseMethodFull)<br>
                        (&#39;browse hierarchy (h)&#39;                 classHierarchy)<br>
                        (&#39;browse method (O)&#39;                    openSingleMessageBrowser)<br>
                        (&#39;browse protocol (p)&#39;                  browseFullProtocol)<br>
                        -<br>
                        (&#39;fileOut&#39;                              fileOutMessage)<br>
                        (&#39;printOut&#39;                             printOutMessage)<br>
                        (&#39;copy selector (c)&#39;                                            copySelector)<br>
                        (&#39;copy reference&#39;                                               copyReference)<br>
                        -<br>
                        (&#39;senders of... (n)&#39;                    browseSendersOfMessages)<br>
                        (&#39;implementors of... (m)&#39;               browseMessages)<br>
                        (&#39;inheritance (i)&#39;                      methodHierarchy)<br>
                        (&#39;versions (v)&#39;                         browseVersions)<br>
                        -<br>
+                       (&#39;references... (r)&#39;                    browseVariableReferences)<br>
+                       (&#39;assignments... (a)&#39;                   browseVariableAssignments)<br>
-                       (&#39;inst var refs...&#39;                     browseInstVarRefs)<br>
-                       (&#39;inst var defs...&#39;                     browseInstVarDefs)<br>
-                       (&#39;class var refs...&#39;                    browseClassVarRefs)<br>
-                       (&#39;class variables&#39;                      browseClassVariables)<br>
                        (&#39;class refs (N)&#39;                       browseClassRefs)<br>
                        -<br>
                        (&#39;remove method (x)&#39;                    removeMessage)<br>
                        (&#39;explore method&#39;                       exploreMethod)<br>
                        (&#39;inspect method&#39;                       inspectMethod)<br>
                        -<br>
                        (&#39;more...&#39;                              shiftedYellowButtonActivity)).<br>
        ^ aMenu!<br>
<br>
Item was changed:<br>
  ----- Method: Browser&gt;&gt;reformulateList (in category &#39;message list&#39;) -----<br>
  reformulateList<br>
        &quot;If the receiver has a way of reformulating its message list, here is a chance for it to do so&quot;<br>
        super reformulateList.<br>
        (self messageList includes: self selectedMessageName)<br>
+               ifFalse: [ self messageList<br>
+                                       ifEmpty: [ self selectMessageNamed: nil ]<br>
+                                       ifNotEmpty: [ self selectMessageNamed: self lastMessageName ]].!<br>
-               ifFalse: [ self selectMessageNamed: self lastMessageName ].!<br>
<br>
Item was changed:<br>
  ----- Method: ChangeSorter&gt;&gt;classListMenu:shifted: (in category &#39;class list&#39;) -----<br>
  classListMenu: aMenu shifted: shifted<br>
        &quot;Fill aMenu with items appropriate for the class list&quot;<br>
<br>
        aMenu title: &#39;class list&#39;.<br>
        aMenu addStayUpItemSpecial.<br>
        (parent notNil and: [shifted not])<br>
                ifTrue: [aMenu addList: #( &quot;These two only apply to dual change sorters&quot;<br>
                        (&#39;copy class chgs to other side&#39;                        copyClassToOther)<br>
                        (&#39;move class chgs to other side&#39;                        moveClassToOther))].<br>
<br>
        aMenu addList: (shifted<br>
                ifFalse: [#(<br>
                        -<br>
                        (&#39;delete class from change set (d)&#39;             forgetClass)<br>
                        (&#39;remove class from system (x)&#39;                 removeClass)<br>
                        -<br>
                        (&#39;browse full (b)&#39;                                              browseMethodFull)<br>
                        (&#39;browse hierarchy (h)&#39;                                 spawnHierarchy)<br>
                        (&#39;browse protocol (p)&#39;                                  browseFullProtocol)<br>
                        -<br>
                        (&#39;printOut&#39;                                                             printOutClass)<br>
                        (&#39;fileOut&#39;                                                              fileOutClass)<br>
                        -<br>
+                       (&#39;references... (r)&#39;                                            browseVariableReferences)<br>
+                       (&#39;assignments... (a)&#39;                                           browseVariableAssignments)<br>
-                       (&#39;inst var refs...&#39;                                             browseInstVarRefs)<br>
-                       (&#39;inst var defs...&#39;                                             browseInstVarDefs)<br>
-                       (&#39;class var refs...&#39;                                            browseClassVarRefs)<br>
-                       (&#39;class vars&#39;                                                           browseClassVariables)<br>
                        (&#39;class refs (N)&#39;                                                       browseClassRefs)<br>
                        -<br>
                        (&#39;more...&#39;                                                              offerShiftedClassListMenu))]<br>
<br>
                ifTrue: [#(<br>
                        -<br>
                        (&#39;unsent methods&#39;                                               browseUnusedMethods)<br>
                        (&#39;unreferenced inst vars&#39;                               showUnreferencedInstVars)<br>
                        (&#39;unreferenced class vars&#39;                              showUnreferencedClassVars)<br>
                        -<br>
                        (&#39;sample instance&#39;                                              makeSampleInstance)<br>
                        (&#39;inspect instances&#39;                                            inspectInstances)<br>
                        (&#39;inspect subinstances&#39;                                 inspectSubInstances)<br>
                        -<br>
                        (&#39;more...&#39;                                                              offerUnshiftedClassListMenu ))]).<br>
        ^ aMenu!<br>
<br>
Item was changed:<br>
  ----- Method: CodeHolder&gt;&gt;abbreviatedWordingFor: (in category &#39;commands&#39;) -----<br>
  abbreviatedWordingFor: aButtonSelector<br>
+       &quot;Answer the abbreviated form of wording, from a static table.  Answer nil if there is no entry -- in which case the long form will be used on the corresponding browser button.&quot;<br>
-       &quot;Answer the abbreviated form of wording, from a static table which you&#39;re welcome to edit.  Answer nil if there is no entry -- in which case the long firm will be used on the corresponding browser button.&quot;<br>

<br>
        #(<br>
        (browseMethodFull                               &#39;browse&#39;)<br>
        (browseSendersOfMessages                &#39;senders&#39;)<br>
        (browseMessages                         &#39;impl&#39;)<br>
        (browseVersions                                 &#39;vers&#39;)<br>
        (methodHierarchy                                &#39;inher&#39;)<br>
        (classHierarchy                                 &#39;hier&#39;)<br>
+       (browseVariableReferences                               &#39;refs&#39;)<br>
-       (browseInstVarRefs                              &#39;iVar&#39;)<br>
-       (browseClassVarRefs                             &#39;cVar&#39;)<br>
        (offerMenu                                              &#39;menu&#39;)) do:<br>
<br>
                [:pair | pair first == aButtonSelector ifTrue: [^ pair second]].<br>
        ^ nil!<br>
<br>
Item was changed:<br>
  ----- Method: CodeHolder&gt;&gt;messageListKey:from: (in category &#39;message list menu&#39;) -----<br>
  messageListKey: aChar from: view<br>
        &quot;Respond to a Command key.  I am a model with a code pane, and I also<br>
        have a listView that has a list of methods.  The view knows how to get<br>
        the list and selection.&quot;<br>
<br>
        | sel class |<br>
        aChar == $D ifTrue: [^ self toggleDiffing].<br>
<br>
        sel := self selectedMessageName.<br>
        aChar == $m ifTrue:  &quot;These next two put up a type in if no message selected&quot;<br>
                [^ self useSelector: sel orGetSelectorAndSendQuery: #browseAllImplementorsOf: to: self ].<br>
        aChar == $n ifTrue:<br>
                [^ self useSelector: sel orGetSelectorAndSendQuery: #browseAllCallsOn: to: self ].<br>
<br>
        &quot;The following require a class selection&quot;<br>
        (class := self selectedClassOrMetaClass) ifNil: [^ self arrowKey: aChar from: view].<br>
        aChar == $b ifTrue: [^ Browser fullOnClass: class selector: sel].<br>
        aChar == $N ifTrue: [^ self browseClassRefs].<br>
        aChar == $i ifTrue: [^ self methodHierarchy].<br>
        aChar == $h ifTrue: [^ self classHierarchy].<br>
        aChar == $p ifTrue: [^ self browseFullProtocol].<br>
+       aChar == $r ifTrue: [^ self browseVariableReferences].<br>
+       aChar == $a ifTrue: [^ self browseVariableAssignments].<br>
<br>
+<br>
        &quot;The following require a method selection&quot;<br>
        sel ifNotNil:<br>
                [aChar == $o ifTrue: [^ self fileOutMessage].<br>
                aChar == $c ifTrue: [^ self copySelector].<br>
                aChar == $v ifTrue: [^ self browseVersions].<br>
                aChar == $O ifTrue: [^ self openSingleMessageBrowser].<br>
                aChar == $x ifTrue: [^ self removeMessage].<br>
                aChar == $d ifTrue: [^ self removeMessageFromBrowser].<br>
<br>
                (aChar == $C and: [self canShowMultipleMessageCategories])<br>
                        ifTrue: [^ self showHomeCategory]].<br>
<br>
        ^ self arrowKey: aChar from: view!<br>
<br>
Item was changed:<br>
  ----- Method: CodeHolder&gt;&gt;optionalButtonPairs (in category &#39;controls&#39;) -----<br>
  optionalButtonPairs<br>
        &quot;Answer a tuple (formerly pairs) defining buttons, in the format:<br>
                        button label<br>
                        selector to send<br>
                        help message&quot;<br>
<br>
        | aList |<br>
<br>
        aList := #(<br>
        (&#39;browse&#39;                       browseMethodFull                        &#39;view this method in a browser&#39;)<br>
        (&#39;senders&#39;                      browseSendersOfMessages &#39;browse senders of...&#39;)<br>
        (&#39;implementors&#39;         browseMessages                          &#39;browse implementors of...&#39;)<br>
        (&#39;versions&#39;                     browseVersions                          &#39;browse versions&#39;)),<br>
<br>
        (Preferences decorateBrowserButtons<br>
                ifTrue:<br>
                        [{#(&#39;inheritance&#39;               methodHierarchy &#39;browse method inheritance<br>
  green: sends to super<br>
  tan: has override(s)<br>
  mauve: both of the above<br>
  pink: is an override but doesn&#39;&#39;t call super<br>
  pinkish tan: has override(s), also is an override but doesn&#39;&#39;t call super&#39; )}]<br>
                ifFalse:<br>
                        [{#(&#39;inheritance&#39;               methodHierarchy                 &#39;browse method inheritance&#39;)}]),<br>
<br>
        #(<br>
        (&#39;hierarchy&#39;            classHierarchy                          &#39;browse class hierarchy&#39;)<br>
+       (&#39;vars&#39;                 browseVariableReferences                        &#39;references...&#39;)).<br>
-       (&#39;inst vars&#39;                    browseInstVarRefs                       &#39;inst var refs...&#39;)<br>
-       (&#39;class vars&#39;                   browseClassVarRefs                      &#39;class var refs...&#39;)).<br>
<br>
        ^ aList!<br>
<br>
Item was added:<br>
+ ----- Method: CodeHolder&gt;&gt;receiverClass (in category &#39;toolbuilder&#39;) -----<br>
+ receiverClass<br>
+       ^ self selectedClassOrMetaClass !<br>
<br>
Item was added:<br>
+ ----- Method: Debugger&gt;&gt;classHierarchy (in category &#39;toolbuilder&#39;) -----<br>
+ classHierarchy<br>
+       &quot;Create and schedule a class list browser on the receiver&#39;s hierarchy.&quot;<br>
+       (self selectedMessageName = #doesNotUnderstand: and: [ self selectedClassOrMetaClass = Object ])<br>
+               ifTrue:<br>
+                       [ self systemNavigation<br>
+                               spawnHierarchyForClass: self receiverClass<br>
+                               selector: self selectedMessageName ]<br>
+               ifFalse: [ super classHierarchy ]!<br>
<br>
Item was changed:<br>
  ----- Method: Debugger&gt;&gt;contextStackMenu:shifted: (in category &#39;context stack menu&#39;) -----<br>
  contextStackMenu: aMenu shifted: shifted<br>
        &quot;Set up the menu appropriately for the context-stack-list, either shifted or unshifted as per the parameter provided&quot;<br>
<br>
        ^ shifted ifFalse:[<br>
                aMenu addList: {<br>
                        {&#39;fullStack (f)&#39;.               #fullStack}.<br>
                        {&#39;restart (r)&#39;.         #restart}.<br>
                        {&#39;proceed (p)&#39;.         #proceed}.<br>
                        {&#39;step (t)&#39;.                    #doStep}.<br>
                        {&#39;step through (T)&#39;.    #stepIntoBlock}.<br>
                        {&#39;send (e)&#39;.                    #send}.<br>
                        {&#39;where (w)&#39;.           #where}.<br>
                        {&#39;peel to first like this&#39;.             #peelToFirst}.<br>
                        #-.<br>
                        {&#39;return entered value&#39;.                #returnValue}.<br>
                        #-.<br>
                        {&#39;toggle break on entry&#39;.       #toggleBreakOnEntry}.<br>
                        {&#39;senders of... (n)&#39;.                   #browseSendersOfMessages}.<br>
                        {&#39;implementors of... (m)&#39;.      #browseMessages}.<br>
                        {&#39;inheritance (i)&#39;.     #methodHierarchy}.<br>
                        #-.<br>
                        {&#39;versions (v)&#39;.                #browseVersions}.<br>
-                       {&#39;inst var refs...&#39;.            #browseInstVarRefs}.<br>
                        #-.<br>
+                       {&#39;references... (r)&#39;.           #browseVariableReferences}.<br>
+                       {&#39;assignments... (a)&#39;.  #browseVariableAssignments}.<br>
-                       {&#39;inst var defs...&#39;.    #browseInstVarDefs}.<br>
-                       {&#39;class var refs...&#39;.   #browseClassVarRefs}.<br>
-                       {&#39;class variables&#39;.     #browseClassVariables}.<br>
                        #-.<br>
                        {&#39;class refs (N)&#39;.              #browseClassRefs}.<br>
                        {&#39;browse full (b)&#39;.     #browseMethodFull}.<br>
                        {&#39;file out &#39;.                   #fileOutMessage}.<br>
                        #-.<br>
                        {&#39;mail out bug report&#39;. #mailOutBugReport}.<br>
                        {&#39;more...&#39;.             #shiftedYellowButtonActivity}.<br>
                }.<br>
        ] ifTrue: [<br>
                aMenu addList: {<br>
                        {&#39;browse class hierarchy&#39;.      #classHierarchy}.<br>
                        {&#39;browse class&#39;.                                #browseClass}.<br>
                        {&#39;browse method (O)&#39;.           #openSingleMessageBrowser}.<br>
                        {&#39;implementors of sent messages&#39;.               #browseAllMessages}.<br>
                        {&#39;change sets with this method&#39;.                #findMethodInChangeSets}.<br>
                        #-.<br>
                        {&#39;inspect instances&#39;.           #inspectInstances}.<br>
                        {&#39;inspect subinstances&#39;.                #inspectSubInstances}.<br>
                        #-.<br>
                        {&#39;revert to previous version&#39;.                  #revertToPreviousVersion}.<br>
                        {&#39;remove from current change set&#39;.              #removeFromCurrentChanges}.<br>
                        {&#39;revert &amp; remove from changes&#39;.                #revertAndForget}.<br>
                        #-.<br>
                        {&#39;more...&#39;.                                     #unshiftedYellowButtonActivity}.<br>
                }<br>
        ].!<br>
<br>
Item was added:<br>
+ ----- Method: Debugger&gt;&gt;receiverClass (in category &#39;toolbuilder&#39;) -----<br>
+ receiverClass<br>
+       ^ self selectedContext receiver class!<br>
<br>
Item was removed:<br>
- ----- Method: Inspector&gt;&gt;classVarRefs (in category &#39;menu commands&#39;) -----<br>
- classVarRefs<br>
-       &quot;Request a browser of methods that store into a chosen instance variable&quot;<br>
-<br>
-       | aClass |<br>
-       (aClass := self classOfSelection) ifNotNil:<br>
-               [self systemNavigation  browseClassVarRefs: aClass].<br>
- !<br>
<br>
Item was changed:<br>
  ----- Method: Inspector&gt;&gt;fieldListMenu: (in category &#39;menu commands&#39;) -----<br>
  fieldListMenu: aMenu<br>
        &quot;Arm the supplied menu with items for the field-list of the receiver&quot;<br>
<br>
        aMenu addStayUpItemSpecial.<br>
<br>
        aMenu addList: #(<br>
                (&#39;inspect (i)&#39;                                          inspectSelection)<br>
                (&#39;explore (I)&#39;                                          exploreSelection)).<br>
<br>
        self addCollectionItemsTo: aMenu.<br>
<br>
        aMenu addList: #(<br>
                -<br>
                (&#39;method refs to this inst var&#39;         referencesToSelection)<br>
                (&#39;methods storing into this inst var&#39;   defsOfSelection)<br>
                (&#39;objects pointing to this value&#39;               objectReferencesToSelection)<br>
                (&#39;chase pointers&#39;                                       chasePointers)<br>
                (&#39;explore pointers&#39;                             explorePointers)<br>
                -<br>
                (&#39;browse full (b)&#39;                                      browseMethodFull)<br>
                (&#39;browse class&#39;                                         browseClass)<br>
                (&#39;browse hierarchy (h)&#39;                                 classHierarchy)<br>
                (&#39;browse protocol (p)&#39;                          browseFullProtocol)<br>
                -<br>
+               (&#39;references... (r)&#39;                                    browseVariableReferences)<br>
+               (&#39;assignments... (a)&#39;                                   browseVariableAssignments)<br>
-               (&#39;inst var refs...&#39;                                     browseInstVarRefs)<br>
-               (&#39;inst var defs...&#39;                                     browseInstVarDefs)<br>
-               (&#39;class var refs...&#39;                                    classVarRefs)<br>
-               (&#39;class variables&#39;                                      browseClassVariables)<br>
                (&#39;class refs (N)&#39;                                               browseClassRefs)<br>
                -<br>
                (&#39;copy name (c)&#39;                                        copyName)<br>
                (&#39;basic inspect&#39;                                                inspectBasic)).<br>
<br>
        Smalltalk isMorphic ifTrue:<br>
                [aMenu addList: #(<br>
                        -<br>
                        (&#39;tile for this value   (t)&#39;                    tearOffTile)<br>
                        (&#39;viewer for this value (v)&#39;            viewerForValue))].<br>
<br>
        ^ aMenu<br>
<br>
<br>
  &quot;                     -<br>
                        (&#39;alias for this value&#39;                 aliasForValue)<br>
                        (&#39;watcher for this slot&#39;                        watcherForSlot)&quot;<br>
<br>
  !<br>
<br>
Item was changed:<br>
  ----- Method: RecentMessageSet&gt;&gt;messageListMenu:shifted: (in category &#39;message functions&#39;) -----<br>
  messageListMenu: aMenu shifted: shifted<br>
        &quot;Answer the message-list menu&quot;<br>
<br>
        shifted ifTrue: [^ self shiftedMessageListMenu: aMenu].<br>
        aMenu addList:#(<br>
                        (&#39;what to show...&#39;                                              offerWhatToShowMenu)<br>
                        -<br>
                        (&#39;browse full (b)&#39;                                              browseMethodFull)<br>
                        (&#39;browse hierarchy (h)&#39;                                 classHierarchy)<br>
                        (&#39;browse method (O)&#39;                                    openSingleMessageBrowser)<br>
                        (&#39;browse protocol (p)&#39;                                  browseFullProtocol)<br>
                        -<br>
                        (&#39;fileOut (o)&#39;                                                  fileOutMessage)<br>
                        (&#39;printOut&#39;                                                             printOutMessage)<br>
                        (&#39;copy selector (c)&#39;                                            copySelector)<br>
                        (&#39;copy reference&#39;                                               copyReference)<br>
                        -<br>
                        (&#39;senders of... (n)&#39;                                            browseSendersOfMessages)<br>
                        (&#39;implementors of... (m)&#39;                                       browseMessages)<br>
                        (&#39;inheritance (i)&#39;                                              methodHierarchy)<br>
                        (&#39;versions (v)&#39;                                                 browseVersions)<br>
                        -<br>
+                       (&#39;references... (r)&#39;                                            browseVariableReferences)<br>
+                       (&#39;assignments... (a)&#39;                                           browseVariableAssignments)<br>
-                       (&#39;inst var refs...&#39;                                             browseInstVarRefs)<br>
-                       (&#39;inst var defs...&#39;                                             browseInstVarDefs)<br>
-                       (&#39;class var refs...&#39;                                            browseClassVarRefs)<br>
-                       (&#39;class variables&#39;                                              browseClassVariables)<br>
                        (&#39;class refs (N)&#39;                                                       browseClassRefs)<br>
                        -<br>
                        (&#39;remove method (x)&#39;                                    removeMessage)<br>
                        (&#39;remove from RecentSubmissions&#39;                removeFromRecentSubmissions)<br>
                        -<br>
                        (&#39;more...&#39;                                                              shiftedYellowButtonActivity)).<br>
        ^ aMenu!<br>
<br>
Item was removed:<br>
- ----- Method: StringHolder&gt;&gt;browseClassVarRefs (in category &#39;*Tools-traits&#39;) -----<br>
- browseClassVarRefs<br>
-       &quot;1/17/96 sw: devolve responsibility to the class, so that the code that does the real work can be shared&quot;<br>
-<br>
-       | cls |<br>
-       cls := self selectedClass.<br>
-       (cls notNil and: [cls isTrait not])<br>
-               ifTrue: [self systemNavigation  browseClassVarRefs: cls]!<br>
<br>
Item was removed:<br>
- ----- Method: StringHolder&gt;&gt;browseClassVariables (in category &#39;*Tools-traits&#39;) -----<br>
- browseClassVariables<br>
-       &quot;Browse the class variables of the selected class. 2/5/96 sw&quot;<br>
-       | cls |<br>
-       cls := self selectedClass.<br>
-       (cls notNil and: [cls isTrait not])<br>
-               ifTrue: [self systemNavigation  browseClassVariables: cls]<br>
- !<br>
<br>
Item was removed:<br>
- ----- Method: StringHolder&gt;&gt;browseInstVarDefs (in category &#39;*Tools-traits&#39;) -----<br>
- browseInstVarDefs<br>
-<br>
-       | cls |<br>
-       cls := self selectedClassOrMetaClass.<br>
-       (cls notNil and: [cls isTrait not])<br>
-               ifTrue: [self systemNavigation browseInstVarDefs: cls]!<br>
<br>
Item was removed:<br>
- ----- Method: StringHolder&gt;&gt;browseInstVarRefs (in category &#39;*Tools-traits&#39;) -----<br>
- browseInstVarRefs<br>
-       &quot;1/26/96 sw: real work moved to class, so it can be shared&quot;<br>
-       | cls |<br>
-       cls := self selectedClassOrMetaClass.<br>
-       (cls notNil and: [cls isTrait not])<br>
-               ifTrue: [self systemNavigation browseInstVarRefs: cls]!<br>
<br>
Item was added:<br>
+ ----- Method: StringHolder&gt;&gt;browseVariableAssignments (in category &#39;*Tools-traits&#39;) -----<br>
+ browseVariableAssignments<br>
+       | cls |<br>
+       cls := self selectedClassOrMetaClass.<br>
+       (cls notNil and: [ cls isTrait not ]) ifTrue: [ self systemNavigation browseVariableAssignments: cls ]!<br>
<br>
Item was added:<br>
+ ----- Method: StringHolder&gt;&gt;browseVariableReferences (in category &#39;*Tools-traits&#39;) -----<br>
+ browseVariableReferences<br>
+       | cls |<br>
+       cls := self selectedClassOrMetaClass.<br>
+       (cls notNil and: [cls isTrait not])<br>
+               ifTrue: [self systemNavigation browseVariableReferences: cls]!<br>
<br>
Item was changed:<br>
  ----- Method: StringHolder&gt;&gt;classListKey:from: (in category &#39;*Tools&#39;) -----<br>
  classListKey: aChar from: view<br>
        &quot;Respond to a Command key.  I am a model with a list of classes and a<br>
        code pane, and I also have a listView that has a list of methods.  The<br>
        view knows how to get the list and selection.&quot;<br>
<br>
        aChar == $f ifTrue: [^ self findMethod].<br>
+       aChar == $r ifTrue: [^ self browseVariableReferences].<br>
+       aChar == $a ifTrue: [^ self browseVariableAssignments].<br>
-       aChar == $r ifTrue: [^ self browseInstVarRefs].<br>
-       aChar == $d ifTrue: [^ self browseInstVarDefs].<br>
        aChar == $h ifTrue: [^ self spawnHierarchy].<br>
        aChar == $x ifTrue: [^ self removeClass].<br>
        ^ self messageListKey: aChar from: view!<br>
<br>
<br>
</blockquote></div><br></div>