[Pkg] The Trunk: Tools-eem.530.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Dec 6 20:47:16 UTC 2014
Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.530.mcz
==================== Summary ====================
Name: Tools-eem.530
Author: eem
Time: 6 December 2014, 12:46:32.373 pm
UUID: 360aa978-7b45-44b7-917e-37a00a467589
Ancestors: Tools-eem.529
Don't make the assumption that Smalltalk at:
answers a class. Hence fix scanning a source file
that includes a definition for TextConstants.
Fix runUntil to not return.
Add an inspect key item to the DictionaryInspector.
=============== Diff against Tools-eem.529 ===============
Item was changed:
----- Method: ChangeList>>scanCategory:class:meta:stamp: (in category 'scanning') -----
scanCategory: category class: class meta: meta stamp: stamp
| itemPosition method selector |
[itemPosition := file position.
method := file nextChunk.
file skipStyleChunk.
method size > 0] "done when double terminators"
whileTrue:
[self addItem: (ChangeRecord new file: file position: itemPosition type: #method
class: class category: category meta: meta stamp: stamp)
text: 'method: ' , class , (meta ifTrue: [' class '] ifFalse: [' '])
+ , ((selector := ((Smalltalk classNamed: class) ifNil: [Object]) newParser parseSelector: method) isNil
- , ((selector := (Smalltalk at: class ifAbsent: [Object]) newParser parseSelector: method) isNil
ifTrue: ['unparsableSelector']
ifFalse: [selector])
, (stamp isEmpty ifTrue: [''] ifFalse: ['; ' , stamp])]!
Item was changed:
----- Method: Debugger>>runUntil (in category 'code pane menu') -----
runUntil
"Step until an expression evaluates to other than false, reporting an error if it doesn't evaluate to true.
Remember the expression in an inst var. If shift is pressed when the expression is supplied, don't update the UI.
If shift is pressed while stepping, stop stepping. Using a user interrupt to break out would be more natural
but Squeak currently doesn't provide a UserInterrupt expection. It should do."
| expression receiver context method value lastUpdate updateUI breakOnShift |
expression := UIManager default
request: 'run until expression is true (shift to disable ui update; shift to break).'
initialAnswer: (untilExpression ifNil: 'boolean expression').
(expression isNil or: [expression isEmpty]) ifTrue:
[^self].
updateUI := breakOnShift := Sensor shiftPressed not.
untilExpression := expression.
context := self selectedContext.
receiver := context receiver.
method := receiver class evaluatorClass new
compiledMethodFor: untilExpression
in: context
to: receiver
notifying: nil
ifFail: [^ #failedDoit].
lastUpdate := Time millisecondClockValue.
Cursor execute showWhile:
[[self selectedContext == context
+ and: [context willReturn not
+ and: [(value := receiver with: context executeMethod: method) == false]]] whileTrue:
- and: [(value := receiver with: context executeMethod: method) == false]] whileTrue:
[interruptedProcess completeStep: self selectedContext.
self selectedContext == context ifTrue:
[self resetContext: interruptedProcess stepToSendOrReturn changeContents: false].
Time millisecondClockValue - lastUpdate > 50 ifTrue:
[updateUI ifTrue:
[self changed: #contentsSelection.
World displayWorldSafely].
breakOnShift
ifTrue: [Sensor shiftPressed ifTrue:
[self changed: #contentsSelection.
self updateInspectors.
^self]]
ifFalse: [Sensor shiftPressed ifFalse: [breakOnShift := true]].
lastUpdate := Time millisecondClockValue]]].
self changed: #contentsSelection.
self updateInspectors.
(value ~~ false and: [value ~~ true]) ifTrue:
[UIManager default inform: 'expression ', (untilExpression contractTo: 40), ' answered ', (value printString contractTo: 20), '!!!!']!
Item was changed:
----- Method: DictionaryInspector>>fieldListMenu: (in category 'menu') -----
fieldListMenu: aMenu
^ aMenu labels:
'inspect
+ inspect key
copy name
references
objects pointing to this value
senders of this key
refresh view
add key
rename key
remove
basic inspect'
lines: #(6 9)
+ selections: #(inspectSelection inspectKey copyName selectionReferences objectReferencesToSelection sendersOfSelectedKey refreshView addEntry renameEntry removeSelection inspectBasic)
- selections: #(inspectSelection copyName selectionReferences objectReferencesToSelection sendersOfSelectedKey refreshView addEntry renameEntry removeSelection inspectBasic)
!
Item was added:
+ ----- Method: DictionaryInspector>>inspectKey (in category 'menu commands') -----
+ inspectKey
+ "Create and schedule an Inspector on the receiver's model's currently selected key."
+
+ selectionIndex >= self numberOfFixedFields ifTrue:
+ [(keyArray at: selectionIndex - self numberOfFixedFields) inspect]!
More information about the Packages
mailing list