tim Rowledge uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-tpr.919.mcz ==================== Summary ==================== Name: Tools-tpr.919 Author: tpr Time: 26 November 2019, 12:40:22.939049 pm UUID: 28b573d5-943f-4dbe-b825-60a57625a114 Ancestors: Tools-mt.918 Improve MessageBrowser labelling a bit; it will actually show the full message name being browsed instead of truncating it to the first part of any keyword. =============== Diff against Tools-mt.918 =============== Item was changed: ----- Method: MessageSet>>autoSelectString (in category 'private') ----- autoSelectString + "Return the string to be highlighted when making new selections. For actual keyword selectors, only select the first keyword." + + ^ autoSelectString ifNotNil: [:stringOrSelector | + (Symbol lookup: stringOrSelector) + ifNil: [stringOrSelector "no change"] + ifNotNil: [:selector | selector precedence = 3 + "only the first part of the keyword message" + ifTrue: [selector copyFrom: 1 to: (selector indexOf: $:)] + "no change" + ifFalse: [stringOrSelector]]] + ! - "Return the string to be highlighted when making new selections" - ^ autoSelectString! Item was changed: ----- Method: MessageTrace>>addChildMessages:autoSelectString: (in category 'building') ----- addChildMessages: methodReferences autoSelectString: aString | currentIndentionLevel addables selectables selectableString newAnchor | selectableString := aString keywords ifEmpty: [ String empty ] + ifNotEmptyDo: [ : keywords | + "we can probably do something more precise here; perhaps recombining the extracted keywords into a single selector? Then again all usages of this method seem to already enforce use of a selector" + aString ]. - ifNotEmptyDo: [ : keywords | keywords first ]. [ (messageListIndex between: 1 and: autoSelectStrings size) ] whileFalse: [ autoSelectStrings add: selectableString ]. currentIndentionLevel := self currentIndentionLevel. "Don't add mulitple copies of the same method, if a method is already in the list we will merely select it." addables := methodReferences reject: [ : each | messageList includes: each ]. addables do: [ : each | each stringVersion: (self indentionPrefixOfSize: currentIndentionLevel + 1) , each asStringOrText. messageList add: each afterIndex: self messageListIndex. autoSelectStrings add: nil afterIndex: self messageListIndex. messageSelections add: false afterIndex: self messageListIndex ]. selectables := addables copy addAll: (methodReferences select: [ : each | messageList includes: each ]) ; yourself. self deselectAll. anchorIndex := nil. selectables do: [ : each | self messageAt: (newAnchor := messageList indexOf: each) beSelected: true. anchorIndex ifNil: [ anchorIndex := newAnchor ] ]. self changed: #messageList. "Select the first child method." self messageListIndex: (selectables size > 0 ifTrue: [ messageList indexOf: selectables last ] ifFalse: [ messageList ifEmpty: [ 0 ] ifNotEmpty: [ 1 ] ])! Item was changed: ----- Method: MessageTrace>>addParentMessages:autoSelectString: (in category 'building') ----- addParentMessages: methodReferences autoSelectString: aString | currentIndentionLevel addables selectables | addables := methodReferences reject: [ : each | messageList includes: each ]. + "we may need to process aString here in a similar manner to that in #addChildMessages:autoSelectString:" selectables := addables copy addAll: (methodReferences select: [ : each | messageList includes: each ]) ; yourself. currentIndentionLevel := self currentIndentionLevel. (currentIndentionLevel = 0 and: [ addables notEmpty ]) ifTrue: [ self indentEverything. currentIndentionLevel := 1 ]. addables do: [ : each | each stringVersion: (self indentionPrefixOfSize: currentIndentionLevel - 1) , each asStringOrText. messageList add: each afterIndex: self messageListIndex - 1. autoSelectStrings add: aString afterIndex: self messageListIndex - 1. messageSelections add: false afterIndex: self messageListIndex - 1 ]. self deselectAll. selectables do: [ : each | | messageIndex | messageIndex := messageList indexOf: each. self messageAt: messageIndex beSelected: true. autoSelectStrings at: messageIndex put: aString ]. self changed: #messageList. anchorIndex := messageListIndex. selectables size > 0 ifTrue: [ self messageListIndex: (messageList indexOf: selectables first) ]! Item was changed: ----- Method: MessageTrace>>messageListIndex: (in category 'actions') ----- messageListIndex: anInteger + autoSelectStrings ifNotEmpty: - autoSelectStrings notEmpty ifTrue: [ autoSelectString := anInteger = 0 ifTrue: [ defaultSelectString ifNotNil: [:default| self containingWindow setLabel: default]. + "clear the autoSelectString" '' ] ifFalse: + [ messageListIndex := anInteger. + "setting the window label, below, can't wait for this.." - [ messageListIndex := anInteger. "setting the window label, below, can't wait for this.." self containingWindow setLabel: (self windowLabelAt: anInteger). + "work out the string to ask the text view to pre-select. We should do better than this; after all the debugger does" + (autoSelectStrings at: anInteger)] ]. - (autoSelectStrings at: anInteger) ifNotNil: [ : fullSelector | fullSelector keywords first ] ] ]. anInteger > 0 ifTrue: [ self messageAt: anInteger beSelected: true ]. super messageListIndex: anInteger ! |
Free forum by Nabble | Edit this page |