Note that we still might want to improve the labels of the spawned message sets (which currently say "implementors of..."). However, this looks like another tiring construction site to me which we should address later ...<br>
<br>
Best,<br>
Christoph<br>
<br>
<font color="#808080">---<br>
</font><i><font color="#808080">Sent from </font></i><i><u><a href="https://github.com/hpi-swa-lab/squeak-inbox-talk"><font color="#808080">Squeak Inbox Talk</font></a></u></i><br>
<br>
On 2021-10-04T14:15:16+00:00, commits@source.squeak.org wrote:<br>
<br>
> A new version of System was added to project The Inbox:<br>
> http://source.squeak.org/inbox/System-ct.1245.mcz<br>
> <br>
> ==================== Summary ====================<br>
> <br>
> Name: System-ct.1245<br>
> Author: ct<br>
> Time: 4 October 2021, 4:15:11.217947 pm<br>
> UUID: ce795acc-c89b-5748-9b42-61b1fde2ac59<br>
> Ancestors: System-mt.1241<br>
> <br>
> Adds support for browsing extension methods to SystemNavigation.<br>
> <br>
> Usage:<br>
> <br>
>     self systemNavigation browseAllExtensionsOfCategory: 'System-Support'.<br>
>     self systemNavigation browseAllExtensionsOfPackage: Project packageInfo.<br>
> <br>
> Replaces System-ct.1131, now also with support for browsing extensions of system categories. Thanks to Jakob and Chris for the feedback!<br>
> <br>
> =============== Diff against System-mt.1241 ===============<br>
> <br>
> Item was added:<br>
> + ----- Method: SystemNavigation>>allExtensionsOfCategory: (in category 'query') -----<br>
> + allExtensionsOfCategory: systemCategory<br>
> + <br>
> +     ^ self environment organization extensionMethodsForCategory: systemCategory!<br>
> <br>
> Item was added:<br>
> + ----- Method: SystemNavigation>>allExtensionsOfPackage: (in category 'query') -----<br>
> + allExtensionsOfPackage: aPackageInfo<br>
> + <br>
> +     ^ aPackageInfo extensionMethods!<br>
> <br>
> Item was added:<br>
> + ----- Method: SystemNavigation>>browseAllExtensionsOfCategory: (in category 'browse') -----<br>
> + browseAllExtensionsOfCategory: systemCategory<br>
> +     "self default browseAllExtensionsOfCategory: 'Tools-Browser'"<br>
> + <br>
> +     ^ self<br>
> +         browseMessageList: [self allExtensionsOfCategory: systemCategory]<br>
> +         name: ('Extensions of category {1}' translated format: {systemCategory})!<br>
> <br>
> Item was added:<br>
> + ----- Method: SystemNavigation>>browseAllExtensionsOfPackage: (in category 'browse') -----<br>
> + browseAllExtensionsOfPackage: aPackageInfo<br>
> +     "self default browseAllExtensionsOfPackage: Morph packageInfo"<br>
> + <br>
> +     ^ self<br>
> +         browseMessageList: [self allExtensionsOfPackage: aPackageInfo]<br>
> +         name: ('Extensions of package {1}' translated format: {aPackageInfo name})!<br>
> <br>
> Item was added:<br>
> + ----- Method: SystemOrganizer>>category:matches: (in category 'as yet unclassified') -----<br>
> + category: categoryName matches: prefix<br>
> + <br>
> +     | prefixSize catSize |<br>
> +     categoryName ifNil: [^ false].<br>
> +     catSize := categoryName size.<br>
> +     prefixSize := prefix size.<br>
> +     catSize < prefixSize ifTrue: [^ false].<br>
> +     (categoryName findString: prefix startingAt: 1 caseSensitive: false) = 1<br>
> +         ifFalse: [^ false].<br>
> +     ^(categoryName at: prefix size + 1 ifAbsent: [^ true]) = $-!<br>
> <br>
> Item was added:<br>
> + ----- Method: SystemOrganizer>>extensionMethodsForCategory: (in category 'as yet unclassified') -----<br>
> + extensionMethodsForCategory: systemCategoryName<br>
> + <br>
> +     | categoryPrefix |<br>
> +     categoryPrefix := '*' , systemCategoryName.<br>
> +     ^ self allElements<br>
> +         gather: [:className | | class |<br>
> +             class := self environment classNamed: className.<br>
> +             (class organization categories<br>
> +                 select: [:methodCategoryName | methodCategoryName notNil<br>
> +                     and: [self category: methodCategoryName matches: categoryPrefix]])<br>
> +                     gather: [:methodCategoryName | (class organization listAtCategoryNamed: methodCategoryName)<br>
> +                         collect: [:selector | MethodReference<br>
> +                             class: class<br>
> +                             selector: selector<br>
> +                             environment: self environment]]]!<br>
> <br>