<div dir="ltr">Hi Chris,<div><br></div><div> two things. First this is an opportunity to replace <span style="color:rgb(0,0,0);font-size:12.800000190734863px"> </span><font color="#000000"><span style="font-size:12.800000190734863px">(class isKindOf: Behavior) with class isBehavior. Second, why delete mail out bug report? It's still useful right?</span></font></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 8, 2018 at 8:59 PM, <span dir="ltr"><<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Chris Muller uploaded a new version of Tools to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Tools-cmm.812.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/<wbr>trunk/Tools-cmm.812.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Tools-cmm.812<br>
Author: cmm<br>
Time: 8 May 2018, 10:59:15.586524 pm<br>
UUID: d05b5ccd-cc99-4f00-85b1-<wbr>264218092ef2<br>
Ancestors: Tools-dtl.811<br>
<br>
- 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.<br>
- 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.<br>
<br>
=============== Diff against Tools-dtl.811 ===============<br>
<br>
Item was changed:<br>
----- Method: Browser>>defineClass:<wbr>notifying: (in category 'class functions') -----<br>
defineClass: defString notifying: aController <br>
"The receiver's textual content is a request to define a new class. The<br>
source code is defString. If any errors occur in compilation, notify<br>
aController."<br>
| oldClass class newClassName defTokens keywdIx envt |<br>
oldClass := self selectedClassOrMetaClass.<br>
defTokens := defString findTokens: Character separators.<br>
<br>
((defTokens first = 'Trait' and: [defTokens second = 'named:'])<br>
or: [defTokens second = 'classTrait'])<br>
ifTrue: [^self defineTrait: defString notifying: aController].<br>
<br>
keywdIx := defTokens findFirst: [:x | x beginsWith: 'category'].<br>
envt := self selectedEnvironment.<br>
keywdIx := defTokens findFirst: [:x | '*subclass*' match: x].<br>
newClassName := (defTokens at: keywdIx+1) copyWithoutAll: '#()'.<br>
((oldClass isNil or: [oldClass theNonMetaClass name asString ~= newClassName])<br>
and: [envt includesKey: newClassName asSymbol]) ifTrue:<br>
["Attempting to define new class over existing one when<br>
not looking at the original one in this browser..."<br>
(self confirm: ((newClassName , ' is an existing class in this system.<br>
Redefining it might cause serious problems.<br>
Is this really what you want to do?') asText makeBoldFrom: 1 to: newClassName size))<br>
ifFalse: [^ false]].<br>
"ar 8/29/1999: Use oldClass superclass for defining oldClass<br>
since oldClass superclass knows the definerClass of oldClass."<br>
oldClass ifNotNil:[oldClass := oldClass superclass].<br>
class := envt beCurrentDuring: <br>
[oldClass subclassDefinerClass<br>
evaluate: defString<br>
in: envt<br>
notifying: aController<br>
logged: false].<br>
(class isKindOf: Behavior)<br>
+ ifTrue: [self changed: #systemCategoryList; changed: #classList.<br>
+ self clearUserEditFlag; spawnOrNavigateTo: class.<br>
- ifTrue: [self changed: #systemCategoryList.<br>
- self changed: #classList.<br>
- self clearUserEditFlag.<br>
- self setClass: class selector: nil.<br>
- "self clearUserEditFlag; editClass."<br>
^ true]<br>
ifFalse: [^ false]!<br>
<br>
Item was added:<br>
+ ----- Method: Browser>>spawnOrNavigateTo: (in category 'private') -----<br>
+ spawnOrNavigateTo: aClass<br>
+ self setClass: aClass selector: nil!<br>
<br>
Item was changed:<br>
----- Method: Debugger>><wbr>mainContextStackMenu: (in category 'context stack menu') -----<br>
mainContextStackMenu: aMenu<br>
"Set up the menu appropriately for the context-stack-list, unshifted"<br>
<contextStackMenuShifted: false><br>
^ aMenu addList: #(<br>
('fullStack (f)' fullStack) <br>
('restart (r)' restart) <br>
('proceed (p)' proceed) <br>
('step (t)' doStep) <br>
('step through (T)' stepIntoBlock) <br>
('send (e)' send) <br>
('where (w)' where) <br>
('peel to first like this' peelToFirst) <br>
- <br>
('return entered value' returnValue) <br>
- <br>
('toggle break on entry' toggleBreakOnEntry) <br>
('senders of (n)' browseSendersOfMessages) <br>
('implementors of (m)' browseMessages) <br>
('inheritance (i)' methodHierarchy) <br>
- <br>
('versions (v)' browseVersions) <br>
- <br>
('references (r)' browseVariableReferences) <br>
('assignments (a)' browseVariableAssignments) <br>
- <br>
('class refs (N)' browseClassRefs) <br>
('browse full (b)' browseMethodFull) <br>
('file out ' fileOutMessage) <br>
- <br>
+ ('copy bug report to clipboard' copyBugReportToClipboard));<br>
- ('mail out bug report' mailOutBugReport)<br>
- ('bug report to clipboard' copyBugReportToClipboard));<br>
yourself<br>
!<br>
<br>
Item was changed:<br>
----- Method: HierarchyBrowser>>setClass: (in category 'initialization') -----<br>
+ setClass: aClass <br>
+ self initHierarchyForClass: (centralClass ifNil: [ aClass ]).<br>
+ super setClass: aClass!<br>
- setClass: aClass<br>
- <br>
- self initHierarchyForClass: aClass.<br>
- super setClass: aClass.!<br>
<br>
Item was added:<br>
+ ----- Method: HierarchyBrowser>><wbr>spawnOrNavigateTo: (in category 'private') -----<br>
+ spawnOrNavigateTo: aClass <br>
+ (aClass inheritsFrom: centralClass)<br>
+ ifTrue: [ super spawnOrNavigateTo: aClass ]<br>
+ ifFalse: [ self systemNavigation browseHierarchy: aClass ]!<br>
<br>
Item was changed:<br>
----- Method: HierarchyBrowser>><wbr>updateAfterClassChange (in category 'initialization') -----<br>
updateAfterClassChange<br>
"It is possible that some the classes comprising the hierarchy have changed, so reinitialize the entire browser."<br>
<br>
+ | priorSelection |<br>
+ priorSelection := self selectedClassName.<br>
+ <br>
(centralClass notNil and: [centralClass isObsolete not])<br>
+ ifTrue: [self initHierarchyForClass: centralClass].<br>
+ <br>
+ (self classListIndexOf: priorSelection) > 0<br>
+ ifTrue: [self selectClassNamed: priorSelection].!<br>
- ifTrue: [self initHierarchyForClass: centralClass]!<br>
<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</div>