[squeak-dev] The Inbox: Tools-ct.1173.mcz

Jakob Reschke jakres+squeak at gmail.com
Sun Sep 11 18:16:15 UTC 2022


Looks reasonable to me in general. There is one "regression" in this:
the packages (and therefore categories) are not ordered the same way
as the class categories in the system browser anymore. I would not
mind it personally, but does somebody else?

Do we actually need an instance variable for the package organizer?
Could we not always use ^ self environment packages packageNames
sorted?

The new class comment sounds a bit confusing to me because the
examples for "system category" are not put in relation with the
examples for "package". In the previous example (that did not match up
with the actual presentation) that was more obvious. :o)

Am Do., 8. Sept. 2022 um 15:05 Uhr schrieb <commits at source.squeak.org>:
>
> A new version of Tools was added to project The Inbox:
> http://source.squeak.org/inbox/Tools-ct.1173.mcz
>
> ==================== Summary ====================
>
> Name: Tools-ct.1173
> Author: ct
> Time: 8 September 2022, 3:05:12.665836 pm
> UUID: f0fe2b64-b27c-6d4b-9670-d920d0580baf
> Ancestors: Tools-ct.1171
>
> Fixes package pane browser to actually use the package organizer instead of parsing the system category list. Resolves https://github.com/squeak-smalltalk/squeak-object-memory/issues/28.
>
> =============== Diff against Tools-ct.1171 ===============
>
> Item was changed:
>   Browser subclass: #PackagePaneBrowser
> +       instanceVariableNames: 'packageOrganizer package packageListIndex packageList'
> -       instanceVariableNames: 'package packageListIndex packageList'
>         classVariableNames: ''
>         poolDictionaries: ''
>         category: 'Tools-Browser'!
>
> + !PackagePaneBrowser commentStamp: 'ct 9/8/2022 15:05' prior: 0!
> + A package browser represents a hierarchical query path through an organization of class and method information.   It nests classes into a two-level hierarchy that consists of the package (e.g., Kernel, FFI-Kernel) and the system category (e.g., Exception, Exceptions-Kernel; Support, empty).
> - !PackagePaneBrowser commentStamp: '<historical>' prior: 0!
> - A package browser represents a hierarchical query path through an organization of class and method information.   It parses class categories into a two-level hierarchy on the first '-' character, giving "packages" (e.g.,  Magnitude, Collections, Graphics, etc.), and "categories" (e.g., Magnitude-General and Magnitude-Number).
>
>   Instance Variables:
> +       packageOrganizer        <PackageOrganizer> the organizer of packages in the current environment
>         package  <Symbol> the "category header," e.g., #Magnitudes or #Collections
>         packageListIndex <Integer> The index in the package list
> +       packageList  <OrderedCollection of String> the list of package names!
> -       packageList  <OrderedCollection of String> the list of package names
> - !
>
> Item was added:
> + ----- Method: PackagePaneBrowser>>initialize (in category 'initialize-release') -----
> + initialize
> +
> +       super initialize.
> +
> +       self packageOrganizer: self environment packageOrganizer.!
>
> Item was changed:
>   ----- Method: PackagePaneBrowser>>packageList (in category 'package list') -----
>   packageList
> -       "Answer a list of the packages in the current system organization."
>
> +       ^ self packageOrganizer packageNames sorted!
> -       | str stream |
> -       str := Set new: 100.
> -       stream := WriteStream on: (Array new: 100).
> -       systemOrganizer categories do:
> -               [ :categ | | cats |
> -               cats := categ asString copyUpTo: $-.
> -               (str includes: cats) ifFalse:
> -                       [str add: cats.
> -                       stream nextPut: cats]].
> -       ^stream contents!
>
> Item was added:
> + ----- Method: PackagePaneBrowser>>packageOrganizer (in category 'accessing') -----
> + packageOrganizer
> +
> +       ^ packageOrganizer!
>
> Item was added:
> + ----- Method: PackagePaneBrowser>>packageOrganizer: (in category 'initialize-release') -----
> + packageOrganizer: aPackageOrganizer
> +
> +       packageOrganizer := aPackageOrganizer.
> +
> +       self systemOrganizer: self systemOrganizer. "reset selections"!
>
> Item was added:
> + ----- Method: PackagePaneBrowser>>selectEnvironment: (in category 'accessing') -----
> + selectEnvironment: anEnvironment
> +
> +       super selectEnvironment: anEnvironment.
> +       self packageOrganizer: anEnvironment packages.!
>
>


More information about the Squeak-dev mailing list