[squeak-dev] The Trunk: Tools-cmm.812.mcz
Chris Muller
asqueaker at gmail.com
Wed May 9 17:49:12 UTC 2018
It appears I forgot to delete the mailout bug report method, too...
but is it okay to remove or should it be deprecated? Only one sender,
so I think remove, but Marcel may prefer deprecation. Marcel?
I can take care of that isKindOf: while I'm there...
On Wed, May 9, 2018 at 12:45 PM, Chris Muller <asqueaker at gmail.com> wrote:
> Hi Eliot,
>
>> two things. First this is an opportunity to replace (class isKindOf:
>> Behavior) with class isBehavior.
>
> Indeed, I wish I'd noticed that while I was in there. I'll see if any
> other review comments pop up, before committing a new version.
>
>> Second, why delete mail out bug report?
>> It's still useful right?
>
> Not really, either menu option puts the user within just a couple of
> gestures of sending an email, so having both is fairly redundant.
> This is a good opportunity to reduce the dependency coupling between
> the debugger and emailing functionality, and possibly slightly improve
> safety from accidentally sending sensitive information in an email
> (since cutting and pasting contents of an email requires a more
> separate, deliberate action, than "send a bug report", which sounds
> totally innocent, but possibly encourage the user to not need to
> scrutinize it for sensitive data). That may seem like over-thinking
> it, but the one day it happens could lead to "headlines," :) so I
> almost feel a warning to that effect before the stack trace would be a
> good reminder...
>
>
>> On Tue, May 8, 2018 at 8:59 PM, <commits at source.squeak.org> wrote:
>>>
>>> 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]!
>>>
>>>
>>
>>
>>
>> --
>> _,,,^..^,,,_
>> best, Eliot
>>
>>
>>
More information about the Squeak-dev
mailing list
|