A new version of Tools was added to project The Inbox: http://source.squeak.org/inbox/Tools-ct.1032.mcz
==================== Summary ====================
Name: Tools-ct.1032 Author: ct Time: 10 March 2021, 6:51:33.356304 pm UUID: 897e4ea2-3740-6a45-a054-d7da65105568 Ancestors: Tools-mt.1030
In the Message Names tool, show definition, comment, and hierarchy for class hits. In particular helpful to find out efficiently whether a selector belongs to a binding or to an actual class.
=============== Diff against Tools-mt.1030 ===============
Item was changed: ----- Method: MessageNames>>computeMessageList (in category 'search') ----- computeMessageList
+ | selector | + selectorListIndex = 0 ifTrue: [^ #()]. + + selector := selectorList at: selectorListIndex. + ^ (selector first isUppercase ifTrue: [Smalltalk classNamed: selector]) + ifNotNil: [:class | + class := Smalltalk classNamed: selector. + #(Definition Comment Hierarchy) collect: [:sel | + MethodReference class: class selector: sel] ] + ifNil: [self systemNavigation allImplementorsOf: selector]! - ^ selectorListIndex = 0 - ifTrue: [#()] - ifFalse: [self systemNavigation - allImplementorsOf: (selectorList at: selectorListIndex)]!
Item was changed: ----- Method: MessageNames>>selectedMessageName (in category 'message list') ----- selectedMessageName selectorList basicSize = 0 ifTrue: [^ nil]. "Deals with selectorList nil or empty" + ^super selectedMessageName ifNil: [ + "only message name selected" + selectorList at: (selectorListIndex max: 1) ifAbsent: [nil] "If no selection we can still find a selector"]! - ^selectorList at: (selectorListIndex max: 1) ifAbsent: [nil] "If no selection we can still find a selector"!
Item was changed: ----- Method: MessageSet>>aboutToStyle: (in category 'code pane') ----- + aboutToStyle: aStyler + "This is a notification that aStyler is about to re-style its text. + Set the classOrMetaClass in aStyler, so that identifiers will be resolved correctly. - aboutToStyle: aPluggableShoutMorphOrView - "This is a notification that aPluggableShoutMorphOrView is about to re-style its text. - Set the classOrMetaClass in aPluggableShoutMorphOrView, so that identifiers - will be resolved correctly. Answer true to allow styling to proceed, or false to veto the styling"
| selectedMessageName showingMethod | self showingSource ifFalse: [^false]. selectedMessageName := self selectedMessageName. showingMethod := (#(Comment Definition Hierarchy) includes: selectedMessageName) not. + aStyler parseAMethod: showingMethod. "Hack!! setting classOrMetaClass: to nil allows doit or class definition colouring." + aStyler classOrMetaClass: (showingMethod ifTrue: [self selectedClassOrMetaClass]). - aPluggableShoutMorphOrView classOrMetaClass: (showingMethod ifTrue: [self selectedClassOrMetaClass]). ^(#(Comment Hierarchy) includes: selectedMessageName) not!
Item was changed: ----- Method: MessageSet>>selectedMessage (in category 'message list') ----- selectedMessage "Answer the source method for the currently selected message."
- self setClassAndSelectorIn: [:class :selector | | source | class ifNil: [^ 'Class vanished']. selector first isUppercase ifTrue: [selector == #Comment ifTrue: + ["currentCompiledMethod := class organization commentRemoteStr." - [currentCompiledMethod := class organization commentRemoteStr. ^ class comment]. selector == #Definition ifTrue: [^ class definition]. selector == #Hierarchy ifTrue: [^ class printHierarchy]]. source := class sourceMethodAt: selector ifAbsent: [currentCompiledMethod := nil. ^ 'Missing'].
self showingDecompile ifTrue: [^ self decompiledSourceIntoContents].
currentCompiledMethod := class compiledMethodAt: selector ifAbsent: [nil]. self showingDocumentation ifTrue: [^ self commentContents].
source := self sourceStringPrettifiedAndDiffed. ^ source asText makeSelectorBoldIn: class]!
Hi all,
any objections if I merge this? :-)
["Tools-ct.1032.png"]
Best, Christoph
--- Sent from Squeak Inbox Talk
On 2021-03-10T17:51:37+00:00, commits@source.squeak.org wrote:
A new version of Tools was added to project The Inbox: http://source.squeak.org/inbox/Tools-ct.1032.mcz
==================== Summary ====================
Name: Tools-ct.1032 Author: ct Time: 10 March 2021, 6:51:33.356304 pm UUID: 897e4ea2-3740-6a45-a054-d7da65105568 Ancestors: Tools-mt.1030
In the Message Names tool, show definition, comment, and hierarchy for class hits. In particular helpful to find out efficiently whether a selector belongs to a binding or to an actual class.
=============== Diff against Tools-mt.1030 ===============
Item was changed: ----- Method: MessageNames>>computeMessageList (in category 'search') ----- computeMessageList
- | selector |
- selectorListIndex = 0 ifTrue: [^ #()].
- selector := selectorList at: selectorListIndex.
- ^ (selector first isUppercase ifTrue: [Smalltalk classNamed: selector])
- ifNotNil: [:class |
- class := Smalltalk classNamed: selector.
- #(Definition Comment Hierarchy) collect: [:sel |
- MethodReference class: class selector: sel] ]
- ifNil: [self systemNavigation allImplementorsOf: selector]!
- ^ selectorListIndex = 0
- ifTrue: [#()]
- ifFalse: [self systemNavigation
- allImplementorsOf: (selectorList at: selectorListIndex)]!
Item was changed: ----- Method: MessageNames>>selectedMessageName (in category 'message list') ----- selectedMessageName selectorList basicSize = 0 ifTrue: [^ nil]. "Deals with selectorList nil or empty"
- ^super selectedMessageName ifNil: [
- "only message name selected"
- selectorList at: (selectorListIndex max: 1) ifAbsent: [nil] "If no selection we can still find a selector"]!
- ^selectorList at: (selectorListIndex max: 1) ifAbsent: [nil] "If no selection we can still find a selector"!
Item was changed: ----- Method: MessageSet>>aboutToStyle: (in category 'code pane') -----
- aboutToStyle: aStyler
- "This is a notification that aStyler is about to re-style its text.
- Set the classOrMetaClass in aStyler, so that identifiers will be resolved correctly.
- aboutToStyle: aPluggableShoutMorphOrView
- "This is a notification that aPluggableShoutMorphOrView is about to re-style its text.
- Set the classOrMetaClass in aPluggableShoutMorphOrView, so that identifiers
- will be resolved correctly.
Answer true to allow styling to proceed, or false to veto the styling"
| selectedMessageName showingMethod | self showingSource ifFalse: [^false]. selectedMessageName := self selectedMessageName. showingMethod := (#(Comment Definition Hierarchy) includes: selectedMessageName) not.
- aStyler parseAMethod: showingMethod.
"Hack!! setting classOrMetaClass: to nil allows doit or class definition colouring."
- aStyler classOrMetaClass: (showingMethod ifTrue: [self selectedClassOrMetaClass]).
- aPluggableShoutMorphOrView classOrMetaClass: (showingMethod ifTrue: [self selectedClassOrMetaClass]).
^(#(Comment Hierarchy) includes: selectedMessageName) not!
Item was changed: ----- Method: MessageSet>>selectedMessage (in category 'message list') ----- selectedMessage "Answer the source method for the currently selected message."
self setClassAndSelectorIn: [:class :selector | | source | class ifNil: [^ 'Class vanished']. selector first isUppercase ifTrue: [selector == #Comment ifTrue:
- ["currentCompiledMethod := class organization commentRemoteStr."
- [currentCompiledMethod := class organization commentRemoteStr.
^ class comment]. selector == #Definition ifTrue: [^ class definition]. selector == #Hierarchy ifTrue: [^ class printHierarchy]]. source := class sourceMethodAt: selector ifAbsent: [currentCompiledMethod := nil. ^ 'Missing'].
self showingDecompile ifTrue: [^ self decompiledSourceIntoContents].
currentCompiledMethod := class compiledMethodAt: selector ifAbsent: [nil]. self showingDocumentation ifTrue: [^ self commentContents].
source := self sourceStringPrettifiedAndDiffed. ^ source asText makeSelectorBoldIn: class]!
+1 Thanks! Am 15.08.2023 15:28:47 schrieb christoph.thiede@student.hpi.uni-potsdam.de christoph.thiede@student.hpi.uni-potsdam.de: Hi all,
any objections if I merge this? :-)
["Tools-ct.1032.png"]
Best, Christoph
--- Sent from Squeak Inbox Talk [https://github.com/hpi-swa-lab/squeak-inbox-talk]
On 2021-03-10T17:51:37+00:00, commits@source.squeak.org wrote:
A new version of Tools was added to project The Inbox: http://source.squeak.org/inbox/Tools-ct.1032.mcz
==================== Summary ====================
Name: Tools-ct.1032 Author: ct Time: 10 March 2021, 6:51:33.356304 pm UUID: 897e4ea2-3740-6a45-a054-d7da65105568 Ancestors: Tools-mt.1030
In the Message Names tool, show definition, comment, and hierarchy for class hits. In particular helpful to find out efficiently whether a selector belongs to a binding or to an actual class.
=============== Diff against Tools-mt.1030 ===============
Item was changed: ----- Method: MessageNames>>computeMessageList (in category 'search') ----- computeMessageList
- | selector |
- selectorListIndex = 0 ifTrue: [^ #()].
- selector := selectorList at: selectorListIndex.
- ^ (selector first isUppercase ifTrue: [Smalltalk classNamed: selector])
- ifNotNil: [:class |
- class := Smalltalk classNamed: selector.
- #(Definition Comment Hierarchy) collect: [:sel |
- MethodReference class: class selector: sel] ]
- ifNil: [self systemNavigation allImplementorsOf: selector]!
- ^ selectorListIndex = 0
- ifTrue: [#()]
- ifFalse: [self systemNavigation
- allImplementorsOf: (selectorList at: selectorListIndex)]!
Item was changed: ----- Method: MessageNames>>selectedMessageName (in category 'message list') ----- selectedMessageName selectorList basicSize = 0 ifTrue: [^ nil]. "Deals with selectorList nil or empty"
- ^super selectedMessageName ifNil: [
- "only message name selected"
- selectorList at: (selectorListIndex max: 1) ifAbsent: [nil] "If no selection we can still find a selector"]!
- ^selectorList at: (selectorListIndex max: 1) ifAbsent: [nil] "If no selection we can still find a selector"!
Item was changed: ----- Method: MessageSet>>aboutToStyle: (in category 'code pane') -----
- aboutToStyle: aStyler
- "This is a notification that aStyler is about to re-style its text.
- Set the classOrMetaClass in aStyler, so that identifiers will be resolved correctly.
- aboutToStyle: aPluggableShoutMorphOrView
- "This is a notification that aPluggableShoutMorphOrView is about to re-style its text.
- Set the classOrMetaClass in aPluggableShoutMorphOrView, so that identifiers
- will be resolved correctly.
Answer true to allow styling to proceed, or false to veto the styling"
| selectedMessageName showingMethod | self showingSource ifFalse: [^false]. selectedMessageName := self selectedMessageName. showingMethod := (#(Comment Definition Hierarchy) includes: selectedMessageName) not.
- aStyler parseAMethod: showingMethod.
"Hack!! setting classOrMetaClass: to nil allows doit or class definition colouring."
- aStyler classOrMetaClass: (showingMethod ifTrue: [self selectedClassOrMetaClass]).
- aPluggableShoutMorphOrView classOrMetaClass: (showingMethod ifTrue: [self selectedClassOrMetaClass]).
^(#(Comment Hierarchy) includes: selectedMessageName) not!
Item was changed: ----- Method: MessageSet>>selectedMessage (in category 'message list') ----- selectedMessage "Answer the source method for the currently selected message."
self setClassAndSelectorIn: [:class :selector | | source | class ifNil: [^ 'Class vanished']. selector first isUppercase ifTrue: [selector == #Comment ifTrue:
- ["currentCompiledMethod := class organization commentRemoteStr."
- [currentCompiledMethod := class organization commentRemoteStr.
^ class comment]. selector == #Definition ifTrue: [^ class definition]. selector == #Hierarchy ifTrue: [^ class printHierarchy]]. source := class sourceMethodAt: selector ifAbsent: [currentCompiledMethod := nil. ^ 'Missing'].
self showingDecompile ifTrue: [^ self decompiledSourceIntoContents].
currentCompiledMethod := class compiledMethodAt: selector ifAbsent: [nil]. self showingDocumentation ifTrue: [^ self commentContents].
source := self sourceStringPrettifiedAndDiffed. ^ source asText makeSelectorBoldIn: class]!
squeak-dev@lists.squeakfoundation.org