[Pkg] The Trunk: Tools-cmm.812.mcz

commits at source.squeak.org commits at source.squeak.org
Wed May 9 03:59:48 UTC 2018

Chris Muller uploaded a new version of Tools to project The Trunk:

==================== 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
  	| 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));

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') -----
  	"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]!

More information about the Packages mailing list