Chris Muller uploaded a new version of Tools to project The Trunk: http://source.squeak.org/trunk/Tools-cmm.812.mcz
==================== Summary ====================
Name: Tools-cmm.812 Author: cmm Time: 8 May 2018, 10:59:15.586524 pm UUID: d05b5ccd-cc99-4f00-85b1-264218092ef2 Ancestors: Tools-dtl.811
- Integrate newly-defined classes into the hierarchy list of a HierarchyBrowser without muting the other classes. If it's outside the hierarchy, spawn it in a new window. - Bug reports can contain sensitive and/or private information (variable values), so use care when sending them electronically. 'copy bug report to clipboard' replaced 'mail out bug report' on the debugger menu.
=============== Diff against Tools-dtl.811 ===============
Item was changed: ----- Method: Browser>>defineClass:notifying: (in category 'class functions') ----- defineClass: defString notifying: aController "The receiver's textual content is a request to define a new class. The source code is defString. If any errors occur in compilation, notify aController." | oldClass class newClassName defTokens keywdIx envt | oldClass := self selectedClassOrMetaClass. defTokens := defString findTokens: Character separators. ((defTokens first = 'Trait' and: [defTokens second = 'named:']) or: [defTokens second = 'classTrait']) ifTrue: [^self defineTrait: defString notifying: aController]. keywdIx := defTokens findFirst: [:x | x beginsWith: 'category']. envt := self selectedEnvironment. keywdIx := defTokens findFirst: [:x | '*subclass*' match: x]. newClassName := (defTokens at: keywdIx+1) copyWithoutAll: '#()'. ((oldClass isNil or: [oldClass theNonMetaClass name asString ~= newClassName]) and: [envt includesKey: newClassName asSymbol]) ifTrue: ["Attempting to define new class over existing one when not looking at the original one in this browser..." (self confirm: ((newClassName , ' is an existing class in this system. Redefining it might cause serious problems. Is this really what you want to do?') asText makeBoldFrom: 1 to: newClassName size)) ifFalse: [^ false]]. "ar 8/29/1999: Use oldClass superclass for defining oldClass since oldClass superclass knows the definerClass of oldClass." oldClass ifNotNil:[oldClass := oldClass superclass]. class := envt beCurrentDuring: [oldClass subclassDefinerClass evaluate: defString in: envt notifying: aController logged: false]. (class isKindOf: Behavior) + ifTrue: [self changed: #systemCategoryList; changed: #classList. + self clearUserEditFlag; spawnOrNavigateTo: class. - ifTrue: [self changed: #systemCategoryList. - self changed: #classList. - self clearUserEditFlag. - self setClass: class selector: nil. - "self clearUserEditFlag; editClass." ^ true] ifFalse: [^ false]!
Item was added: + ----- Method: Browser>>spawnOrNavigateTo: (in category 'private') ----- + spawnOrNavigateTo: aClass + self setClass: aClass selector: nil!
Item was changed: ----- Method: Debugger>>mainContextStackMenu: (in category 'context stack menu') ----- mainContextStackMenu: aMenu "Set up the menu appropriately for the context-stack-list, unshifted" <contextStackMenuShifted: false> ^ 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) - ('references (r)' browseVariableReferences) ('assignments (a)' browseVariableAssignments) - ('class refs (N)' browseClassRefs) ('browse full (b)' browseMethodFull) ('file out ' fileOutMessage) - + ('copy bug report to clipboard' copyBugReportToClipboard)); - ('mail out bug report' mailOutBugReport) - ('bug report to clipboard' copyBugReportToClipboard)); yourself !
Item was changed: ----- Method: HierarchyBrowser>>setClass: (in category 'initialization') ----- + setClass: aClass + self initHierarchyForClass: (centralClass ifNil: [ aClass ]). + super setClass: aClass! - setClass: aClass - - self initHierarchyForClass: aClass. - super setClass: aClass.!
Item was added: + ----- Method: HierarchyBrowser>>spawnOrNavigateTo: (in category 'private') ----- + spawnOrNavigateTo: aClass + (aClass inheritsFrom: centralClass) + ifTrue: [ super spawnOrNavigateTo: aClass ] + ifFalse: [ self systemNavigation browseHierarchy: aClass ]!
Item was changed: ----- Method: HierarchyBrowser>>updateAfterClassChange (in category 'initialization') ----- updateAfterClassChange "It is possible that some the classes comprising the hierarchy have changed, so reinitialize the entire browser."
+ | priorSelection | + priorSelection := self selectedClassName. + (centralClass notNil and: [centralClass isObsolete not]) + ifTrue: [self initHierarchyForClass: centralClass]. + + (self classListIndexOf: priorSelection) > 0 + ifTrue: [self selectClassNamed: priorSelection].! - ifTrue: [self initHierarchyForClass: centralClass]!
packages@lists.squeakfoundation.org