[squeak-dev] 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:
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]!



More information about the Squeak-dev mailing list