[squeak-dev] The Trunk: Tools-cmm.347.mcz
Hannes Hirzel
hannes.hirzel at gmail.com
Tue May 3 13:20:30 UTC 2011
I tested this change. I choose 'assignments' and then an instance
variable I get a walkback window.
--Hannes
On Mon, 2 May 2011 23:36:50.009 0000, commits at source.squeak.org
<commits at source.squeak.org> wrote:
> Chris Muller uploaded a new version of Tools to project The Trunk:
> http://source.squeak.org/trunk/Tools-cmm.347.mcz
>
> ==================== Summary ====================
>
> Name: Tools-cmm.347
> Author: cmm
> Time: 2 May 2011, 6:36:40.244 pm
> UUID: 977c180b-7c15-4200-9ceb-319d2e850364
> Ancestors: Tools-fbs.346, Tools-fbs.345
>
> - Update menu "inst var defs" to "assignments..." and "inst var refs" to
> "references...". Each option now includes a selection of the available
> class-variables, enabling "class var refs" to be removed. Each option also
> has an appropriate hot-key assignment.
> - Removed "class vars" because one could simply explore the class'
> classPool.
>
> =============== Diff against Tools-fbs.346 ===============
>
> Item was changed:
> ----- Method: Browser>>classListMenu:shifted: (in category 'class
> functions') -----
> classListMenu: aMenu shifted: shifted
> "Set up the menu to apply to the receiver's class list, honoring the
> #shifted boolean"
> self
> menuHook: aMenu
> named: #classListMenu
> shifted: shifted.
> Preferences useOnlyServicesInMenu ifTrue:[^aMenu].
> shifted ifTrue:[^ self shiftedClassListMenu: aMenu].
> aMenu addList: #(
> -
> ('browse full (b)' browseMethodFull)
> ('browse hierarchy (h)' spawnHierarchy)
> ('browse protocol (p)' browseFullProtocol)
> -
> ('printOut' printOutClass)
> ('fileOut' fileOutClass)
> -
> ('show hierarchy' hierarchy)
> ('show definition' editClass)
> ('show comment' editComment)
> -
> + ('references... (r)' browseVariableReferences)
> + ('assignments... (a)' browseVariableAssignments)
> - ('inst var refs...' browseInstVarRefs)
> - ('inst var defs...' browseInstVarDefs)
> - -
> - ('class var refs...' browseClassVarRefs)
> - ('class vars' browseClassVariables)
> ('class refs (N)' browseClassRefs)
> -
> ('rename class ...' renameClass)
> ('copy class' copyClass)
> ('remove class (x)' removeClass)
> -
> ('find method...' findMethod)
> -
> ('more...' offerShiftedClassListMenu)).
> ^ aMenu
> !
>
> Item was changed:
> ----- Method: Browser>>messageListMenu:shifted: (in category 'message
> functions') -----
> messageListMenu: aMenu shifted: shifted
> "Answer the message-list menu"
> self
> menuHook: aMenu
> named: #messageListMenu
> shifted: shifted.
> Preferences useOnlyServicesInMenu ifTrue:[^aMenu].
> shifted ifTrue: [^ self shiftedMessageListMenu: aMenu].
> aMenu addList: #(
> ('what to show...' offerWhatToShowMenu)
> ('toggle break on entry' toggleBreakOnEntry)
> -
> ('browse full (b)' browseMethodFull)
> ('browse hierarchy (h)' classHierarchy)
> ('browse method (O)' openSingleMessageBrowser)
> ('browse protocol (p)' browseFullProtocol)
> -
> ('fileOut' fileOutMessage)
> ('printOut' printOutMessage)
> ('copy selector (c)' copySelector)
> ('copy reference' copyReference)
> -
> ('senders of... (n)' browseSendersOfMessages)
> ('implementors of... (m)' browseMessages)
> ('inheritance (i)' methodHierarchy)
> ('versions (v)' browseVersions)
> -
> + ('references... (r)' browseVariableReferences)
> + ('assignments... (a)' browseVariableAssignments)
> - ('inst var refs...' browseInstVarRefs)
> - ('inst var defs...' browseInstVarDefs)
> - ('class var refs...' browseClassVarRefs)
> - ('class variables' browseClassVariables)
> ('class refs (N)' browseClassRefs)
> -
> ('remove method (x)' removeMessage)
> ('explore method' exploreMethod)
> ('inspect method' inspectMethod)
> -
> ('more...' shiftedYellowButtonActivity)).
> ^ aMenu!
>
> Item was changed:
> ----- Method: Browser>>reformulateList (in category 'message list') -----
> reformulateList
> "If the receiver has a way of reformulating its message list, here is a
> chance for it to do so"
> super reformulateList.
> (self messageList includes: self selectedMessageName)
> + ifFalse: [ self messageList
> + ifEmpty: [ self selectMessageNamed: nil ]
> + ifNotEmpty: [ self selectMessageNamed: self lastMessageName ]].!
> - ifFalse: [ self selectMessageNamed: self lastMessageName ].!
>
> Item was changed:
> ----- Method: ChangeSorter>>classListMenu:shifted: (in category 'class
> list') -----
> classListMenu: aMenu shifted: shifted
> "Fill aMenu with items appropriate for the class list"
>
> aMenu title: 'class list'.
> aMenu addStayUpItemSpecial.
> (parent notNil and: [shifted not])
> ifTrue: [aMenu addList: #( "These two only apply to dual change sorters"
> ('copy class chgs to other side' copyClassToOther)
> ('move class chgs to other side' moveClassToOther))].
>
> aMenu addList: (shifted
> ifFalse: [#(
> -
> ('delete class from change set (d)' forgetClass)
> ('remove class from system (x)' removeClass)
> -
> ('browse full (b)' browseMethodFull)
> ('browse hierarchy (h)' spawnHierarchy)
> ('browse protocol (p)' browseFullProtocol)
> -
> ('printOut' printOutClass)
> ('fileOut' fileOutClass)
> -
> + ('references... (r)' browseVariableReferences)
> + ('assignments... (a)' browseVariableAssignments)
> - ('inst var refs...' browseInstVarRefs)
> - ('inst var defs...' browseInstVarDefs)
> - ('class var refs...' browseClassVarRefs)
> - ('class vars' browseClassVariables)
> ('class refs (N)' browseClassRefs)
> -
> ('more...' offerShiftedClassListMenu))]
>
> ifTrue: [#(
> -
> ('unsent methods' browseUnusedMethods)
> ('unreferenced inst vars' showUnreferencedInstVars)
> ('unreferenced class vars' showUnreferencedClassVars)
> -
> ('sample instance' makeSampleInstance)
> ('inspect instances' inspectInstances)
> ('inspect subinstances' inspectSubInstances)
> -
> ('more...' offerUnshiftedClassListMenu ))]).
> ^ aMenu!
>
> Item was changed:
> ----- Method: CodeHolder>>abbreviatedWordingFor: (in category 'commands')
> -----
> abbreviatedWordingFor: aButtonSelector
> + "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."
> - "Answer the abbreviated form of wording, from a static table which you'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."
>
> #(
> (browseMethodFull 'browse')
> (browseSendersOfMessages 'senders')
> (browseMessages 'impl')
> (browseVersions 'vers')
> (methodHierarchy 'inher')
> (classHierarchy 'hier')
> + (browseVariableReferences 'refs')
> - (browseInstVarRefs 'iVar')
> - (browseClassVarRefs 'cVar')
> (offerMenu 'menu')) do:
>
> [:pair | pair first == aButtonSelector ifTrue: [^ pair second]].
> ^ nil!
>
> Item was changed:
> ----- Method: CodeHolder>>messageListKey:from: (in category 'message list
> menu') -----
> messageListKey: aChar from: view
> "Respond to a Command key. I am a model with a code pane, and I also
> have a listView that has a list of methods. The view knows how to get
> the list and selection."
>
> | sel class |
> aChar == $D ifTrue: [^ self toggleDiffing].
>
> sel := self selectedMessageName.
> aChar == $m ifTrue: "These next two put up a type in if no message
> selected"
> [^ self useSelector: sel orGetSelectorAndSendQuery:
> #browseAllImplementorsOf: to: self ].
> aChar == $n ifTrue:
> [^ self useSelector: sel orGetSelectorAndSendQuery: #browseAllCallsOn:
> to: self ].
>
> "The following require a class selection"
> (class := self selectedClassOrMetaClass) ifNil: [^ self arrowKey: aChar
> from: view].
> aChar == $b ifTrue: [^ Browser fullOnClass: class selector: sel].
> aChar == $N ifTrue: [^ self browseClassRefs].
> aChar == $i ifTrue: [^ self methodHierarchy].
> aChar == $h ifTrue: [^ self classHierarchy].
> aChar == $p ifTrue: [^ self browseFullProtocol].
> + aChar == $r ifTrue: [^ self browseVariableReferences].
> + aChar == $a ifTrue: [^ self browseVariableAssignments].
>
> +
> "The following require a method selection"
> sel ifNotNil:
> [aChar == $o ifTrue: [^ self fileOutMessage].
> aChar == $c ifTrue: [^ self copySelector].
> aChar == $v ifTrue: [^ self browseVersions].
> aChar == $O ifTrue: [^ self openSingleMessageBrowser].
> aChar == $x ifTrue: [^ self removeMessage].
> aChar == $d ifTrue: [^ self removeMessageFromBrowser].
>
> (aChar == $C and: [self canShowMultipleMessageCategories])
> ifTrue: [^ self showHomeCategory]].
>
> ^ self arrowKey: aChar from: view!
>
> Item was changed:
> ----- Method: CodeHolder>>optionalButtonPairs (in category 'controls')
> -----
> optionalButtonPairs
> "Answer a tuple (formerly pairs) defining buttons, in the format:
> button label
> selector to send
> help message"
>
> | aList |
>
> aList := #(
> ('browse' browseMethodFull 'view this method in a browser')
> ('senders' browseSendersOfMessages 'browse senders of...')
> ('implementors' browseMessages 'browse implementors of...')
> ('versions' browseVersions 'browse versions')),
>
> (Preferences decorateBrowserButtons
> ifTrue:
> [{#('inheritance' methodHierarchy 'browse method inheritance
> green: sends to super
> tan: has override(s)
> mauve: both of the above
> pink: is an override but doesn''t call super
> pinkish tan: has override(s), also is an override but doesn''t call super'
> )}]
> ifFalse:
> [{#('inheritance' methodHierarchy 'browse method inheritance')}]),
>
> #(
> ('hierarchy' classHierarchy 'browse class hierarchy')
> + ('vars' browseVariableReferences 'references...')).
> - ('inst vars' browseInstVarRefs 'inst var refs...')
> - ('class vars' browseClassVarRefs 'class var refs...')).
>
> ^ aList!
>
> Item was added:
> + ----- Method: CodeHolder>>receiverClass (in category 'toolbuilder') -----
> + receiverClass
> + ^ self selectedClassOrMetaClass !
>
> Item was added:
> + ----- Method: Debugger>>classHierarchy (in category 'toolbuilder') -----
> + classHierarchy
> + "Create and schedule a class list browser on the receiver's hierarchy."
> + (self selectedMessageName = #doesNotUnderstand: and: [ self
> selectedClassOrMetaClass = Object ])
> + ifTrue:
> + [ self systemNavigation
> + spawnHierarchyForClass: self receiverClass
> + selector: self selectedMessageName ]
> + ifFalse: [ super classHierarchy ]!
>
> Item was changed:
> ----- Method: Debugger>>contextStackMenu:shifted: (in category 'context
> stack menu') -----
> contextStackMenu: aMenu shifted: shifted
> "Set up the menu appropriately for the context-stack-list, either shifted
> or unshifted as per the parameter provided"
>
> ^ shifted ifFalse:[
> aMenu addList: {
> {'fullStack (f)'. #fullStack}.
> {'restart (r)'. #restart}.
> {'proceed (p)'. #proceed}.
> {'step (t)'. #doStep}.
> {'step through (T)'. #stepIntoBlock}.
> {'send (e)'. #send}.
> {'where (w)'. #where}.
> {'peel to first like this'. #peelToFirst}.
> #-.
> {'return entered value'. #returnValue}.
> #-.
> {'toggle break on entry'. #toggleBreakOnEntry}.
> {'senders of... (n)'. #browseSendersOfMessages}.
> {'implementors of... (m)'. #browseMessages}.
> {'inheritance (i)'. #methodHierarchy}.
> #-.
> {'versions (v)'. #browseVersions}.
> - {'inst var refs...'. #browseInstVarRefs}.
> #-.
> + {'references... (r)'. #browseVariableReferences}.
> + {'assignments... (a)'. #browseVariableAssignments}.
> - {'inst var defs...'. #browseInstVarDefs}.
> - {'class var refs...'. #browseClassVarRefs}.
> - {'class variables'. #browseClassVariables}.
> #-.
> {'class refs (N)'. #browseClassRefs}.
> {'browse full (b)'. #browseMethodFull}.
> {'file out '. #fileOutMessage}.
> #-.
> {'mail out bug report'. #mailOutBugReport}.
> {'more...'. #shiftedYellowButtonActivity}.
> }.
> ] ifTrue: [
> aMenu addList: {
> {'browse class hierarchy'. #classHierarchy}.
> {'browse class'. #browseClass}.
> {'browse method (O)'. #openSingleMessageBrowser}.
> {'implementors of sent messages'. #browseAllMessages}.
> {'change sets with this method'. #findMethodInChangeSets}.
> #-.
> {'inspect instances'. #inspectInstances}.
> {'inspect subinstances'. #inspectSubInstances}.
> #-.
> {'revert to previous version'. #revertToPreviousVersion}.
> {'remove from current change set'. #removeFromCurrentChanges}.
> {'revert & remove from changes'. #revertAndForget}.
> #-.
> {'more...'. #unshiftedYellowButtonActivity}.
> }
> ].!
>
> Item was added:
> + ----- Method: Debugger>>receiverClass (in category 'toolbuilder') -----
> + receiverClass
> + ^ self selectedContext receiver class!
>
> Item was removed:
> - ----- Method: Inspector>>classVarRefs (in category 'menu commands') -----
> - classVarRefs
> - "Request a browser of methods that store into a chosen instance variable"
> -
> - | aClass |
> - (aClass := self classOfSelection) ifNotNil:
> - [self systemNavigation browseClassVarRefs: aClass].
> - !
>
> Item was changed:
> ----- Method: Inspector>>fieldListMenu: (in category 'menu commands')
> -----
> fieldListMenu: aMenu
> "Arm the supplied menu with items for the field-list of the receiver"
>
> aMenu addStayUpItemSpecial.
>
> aMenu addList: #(
> ('inspect (i)' inspectSelection)
> ('explore (I)' exploreSelection)).
>
> self addCollectionItemsTo: aMenu.
>
> aMenu addList: #(
> -
> ('method refs to this inst var' referencesToSelection)
> ('methods storing into this inst var' defsOfSelection)
> ('objects pointing to this value' objectReferencesToSelection)
> ('chase pointers' chasePointers)
> ('explore pointers' explorePointers)
> -
> ('browse full (b)' browseMethodFull)
> ('browse class' browseClass)
> ('browse hierarchy (h)' classHierarchy)
> ('browse protocol (p)' browseFullProtocol)
> -
> + ('references... (r)' browseVariableReferences)
> + ('assignments... (a)' browseVariableAssignments)
> - ('inst var refs...' browseInstVarRefs)
> - ('inst var defs...' browseInstVarDefs)
> - ('class var refs...' classVarRefs)
> - ('class variables' browseClassVariables)
> ('class refs (N)' browseClassRefs)
> -
> ('copy name (c)' copyName)
> ('basic inspect' inspectBasic)).
>
> Smalltalk isMorphic ifTrue:
> [aMenu addList: #(
> -
> ('tile for this value (t)' tearOffTile)
> ('viewer for this value (v)' viewerForValue))].
>
> ^ aMenu
>
>
> " -
> ('alias for this value' aliasForValue)
> ('watcher for this slot' watcherForSlot)"
>
> !
>
> Item was changed:
> ----- Method: RecentMessageSet>>messageListMenu:shifted: (in category
> 'message functions') -----
> messageListMenu: aMenu shifted: shifted
> "Answer the message-list menu"
>
> shifted ifTrue: [^ self shiftedMessageListMenu: aMenu].
> aMenu addList:#(
> ('what to show...' offerWhatToShowMenu)
> -
> ('browse full (b)' browseMethodFull)
> ('browse hierarchy (h)' classHierarchy)
> ('browse method (O)' openSingleMessageBrowser)
> ('browse protocol (p)' browseFullProtocol)
> -
> ('fileOut (o)' fileOutMessage)
> ('printOut' printOutMessage)
> ('copy selector (c)' copySelector)
> ('copy reference' copyReference)
> -
> ('senders of... (n)' browseSendersOfMessages)
> ('implementors of... (m)' browseMessages)
> ('inheritance (i)' methodHierarchy)
> ('versions (v)' browseVersions)
> -
> + ('references... (r)' browseVariableReferences)
> + ('assignments... (a)' browseVariableAssignments)
> - ('inst var refs...' browseInstVarRefs)
> - ('inst var defs...' browseInstVarDefs)
> - ('class var refs...' browseClassVarRefs)
> - ('class variables' browseClassVariables)
> ('class refs (N)' browseClassRefs)
> -
> ('remove method (x)' removeMessage)
> ('remove from RecentSubmissions' removeFromRecentSubmissions)
> -
> ('more...' shiftedYellowButtonActivity)).
> ^ aMenu!
>
> Item was removed:
> - ----- Method: StringHolder>>browseClassVarRefs (in category
> '*Tools-traits') -----
> - browseClassVarRefs
> - "1/17/96 sw: devolve responsibility to the class, so that the code that
> does the real work can be shared"
> -
> - | cls |
> - cls := self selectedClass.
> - (cls notNil and: [cls isTrait not])
> - ifTrue: [self systemNavigation browseClassVarRefs: cls]!
>
> Item was removed:
> - ----- Method: StringHolder>>browseClassVariables (in category
> '*Tools-traits') -----
> - browseClassVariables
> - "Browse the class variables of the selected class. 2/5/96 sw"
> - | cls |
> - cls := self selectedClass.
> - (cls notNil and: [cls isTrait not])
> - ifTrue: [self systemNavigation browseClassVariables: cls]
> - !
>
> Item was removed:
> - ----- Method: StringHolder>>browseInstVarDefs (in category
> '*Tools-traits') -----
> - browseInstVarDefs
> -
> - | cls |
> - cls := self selectedClassOrMetaClass.
> - (cls notNil and: [cls isTrait not])
> - ifTrue: [self systemNavigation browseInstVarDefs: cls]!
>
> Item was removed:
> - ----- Method: StringHolder>>browseInstVarRefs (in category
> '*Tools-traits') -----
> - browseInstVarRefs
> - "1/26/96 sw: real work moved to class, so it can be shared"
> - | cls |
> - cls := self selectedClassOrMetaClass.
> - (cls notNil and: [cls isTrait not])
> - ifTrue: [self systemNavigation browseInstVarRefs: cls]!
>
> Item was added:
> + ----- Method: StringHolder>>browseVariableAssignments (in category
> '*Tools-traits') -----
> + browseVariableAssignments
> + | cls |
> + cls := self selectedClassOrMetaClass.
> + (cls notNil and: [ cls isTrait not ]) ifTrue: [ self systemNavigation
> browseVariableAssignments: cls ]!
>
> Item was added:
> + ----- Method: StringHolder>>browseVariableReferences (in category
> '*Tools-traits') -----
> + browseVariableReferences
> + | cls |
> + cls := self selectedClassOrMetaClass.
> + (cls notNil and: [cls isTrait not])
> + ifTrue: [self systemNavigation browseVariableReferences: cls]!
>
> Item was changed:
> ----- Method: StringHolder>>classListKey:from: (in category '*Tools')
> -----
> classListKey: aChar from: view
> "Respond to a Command key. I am a model with a list of classes and a
> code pane, and I also have a listView that has a list of methods. The
> view knows how to get the list and selection."
>
> aChar == $f ifTrue: [^ self findMethod].
> + aChar == $r ifTrue: [^ self browseVariableReferences].
> + aChar == $a ifTrue: [^ self browseVariableAssignments].
> - aChar == $r ifTrue: [^ self browseInstVarRefs].
> - aChar == $d ifTrue: [^ self browseInstVarDefs].
> aChar == $h ifTrue: [^ self spawnHierarchy].
> aChar == $x ifTrue: [^ self removeClass].
> ^ self messageListKey: aChar from: view!
>
>
>
More information about the Squeak-dev
mailing list
|