[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:
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 Packages
mailing list