+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

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]!