[squeak-dev] The Trunk: Tools-cmm.848.mcz

Chris Muller asqueaker at gmail.com
Sat May 25 22:45:37 UTC 2019


But I had the Inbox selected!

...

... Yup.  Just verified!

Some bug in MC / ToolBuilder?

Oh well, I guess I'll leave it but please let me know if you have any
review findings and I'll replace it if necessary.

 - Chris

On Sat, May 25, 2019 at 5:42 PM <commits at source.squeak.org> wrote:
>
> Chris Muller uploaded a new version of Tools to project The Trunk:
> http://source.squeak.org/trunk/Tools-cmm.848.mcz
>
> ==================== Summary ====================
>
> Name: Tools-cmm.848
> Author: cmm
> Time: 25 May 2019, 5:42:37.546478 pm
> UUID: dd37c4dd-789f-47d8-a059-2595ee4eb451
> Ancestors: Tools-nice.847
>
> - Fix from Tim Johnson prevents a DNU from ChangeSorter under certain conditions.
> - Add ability to filter methods from a MessageSet based on package they're NOT in (helpful for filtering test methods, or identifying methods in the wrong package).
>
> =============== Diff against Tools-nice.847 ===============
>
> Item was changed:
>   ----- Method: ChangeSorter>>setContents (in category 'code pane') -----
>   setContents
>         "return the source code that shows in the bottom pane"
>
>         | sel class strm changeType |
>         self clearUserEditFlag.
> +       myChangeSet ifNil: [^ contents := String empty].   "should not happen but can"
>         currentClassName ifNil: [^ contents := myChangeSet preambleString ifNil: ['']].
>         class := self selectedClassOrMetaClass.
>         (sel := self selectedMessageName) == nil
>                 ifFalse: [changeType := (myChangeSet atSelector: (sel := sel asSymbol) class: class).
>                         changeType == #remove
>                                 ifTrue: [^ contents := 'Method has been removed (see versions)'].
>                         changeType == #addedThenRemoved
>                                 ifTrue: [^ contents := 'Added then removed (see versions)'].
>                         class ifNil: [^ contents := 'Method was added, but cannot be found!!'].
>                         (class includesSelector: sel)
>                                 ifFalse: [^ contents := 'Method was added, but cannot be found!!'].
>                         contents := class sourceCodeAt: sel.
>                         (#(prettyPrint prettyDiffs) includes: contentsSymbol) ifTrue:
>                                 [contents :=  class prettyPrinterClass
>                                         format: contents in: class notifying: nil].
>                         self showingAnyKindOfDiffs
>                                 ifTrue: [contents := self diffFromPriorSourceFor: contents].
>                         ^ contents := contents asText makeSelectorBoldIn: class]
>                 ifTrue: [strm := WriteStream on: (String new: 100).
>                         (myChangeSet classChangeAt: (self withoutItemAnnotation: currentClassName)) do:
>                                 [:each |
>                                 each = #remove ifTrue: [strm nextPutAll: 'Entire class was removed.'; cr].
>                                 each = #addedThenRemoved ifTrue: [strm nextPutAll: 'Class was added then removed.'].
>                                 each = #rename ifTrue: [strm nextPutAll: 'Class name was changed.'; cr].
>                                 each = #add ifTrue: [strm nextPutAll: 'Class definition was added.'; cr].
>                                 each = #change ifTrue: [strm nextPutAll: 'Class definition was changed.'; cr].
>                                 each = #reorganize ifTrue: [strm nextPutAll: 'Class organization was changed.'; cr].
>                                 each = #comment ifTrue: [strm nextPutAll: 'New class comment.'; cr.
>                                 ]].
>                         ^ contents := strm contents].!
>
> Item was changed:
>   ----- Method: MessageSet>>filterMessageList (in category 'filtering') -----
>   filterMessageList
>         "Allow the user to refine the list of messages."
>         | builder menuSpec |
>         builder := ToolBuilder default.
>         menuSpec := builder pluggableMenuSpec new
>                 model: self;
>                 yourself.
>         menuSpec addList:
>                 #(
>                 ('unsent messages' filterToUnsentMessages 'filter to show only messages that have no senders')
>                 -
>                 ('messages that send...' filterToSendersOf 'filter to show only messages that send a selector I specify')
>                 ('messages that do not send...' filterToNotSendersOf 'filter to show only messages that do not send a selector I specify')
>                 -
>                 ('messages whose selector is...' filterToImplementorsOf 'filter to show only messages with a given selector I specify')
>                 ('messages whose selector is NOT...' filterToNotImplementorsOf 'filter to show only messages whose selector is NOT a seletor I specify')
>                 -
>                 ('messages in current change set' filterToCurrentChangeSet 'filter to show only messages that are in the current change set')
>                 ('messages not in current change set' filterToNotCurrentChangeSet 'filter to show only messages that are not in the current change set')
>                 -
>                 ('messages in any change set' filterToAnyChangeSet 'filter to show only messages that occur in at least one change set')
>                 ('messages not in any change set' filterToNotAnyChangeSet 'filter to show only messages that do not occur in any change set in the system')
>                 -
>                 ('messages authored by me' filterToCurrentAuthor 'filter to show only messages whose authoring stamp has my initials')
>                 ('messages not authored by me' filterToNotCurrentAuthor 'filter to show only messages whose authoring stamp does not have my initials')
>                 -
>                 ('messages logged in .changes file' filterToMessagesInChangesFile 'filter to show only messages whose latest source code is logged in the .changes file')
>                 ('messages only in .sources file' filterToMessagesInSourcesFile 'filter to show only messages whose latest source code is logged in the .sources file')
>                 -
>                 ('messages with prior versions'  filterToMessagesWithPriorVersions 'filter to show only messages that have at least one prior version')
>                 ('messages without prior versions' filterToMessagesWithoutPriorVersions 'filter to show only messages that have no prior versions')
>                 -
>                 ('uncommented messages' filterToUncommentedMethods 'filter to show only messages that do not have comments at the beginning')
>                 ('commented messages' filterToCommentedMethods 'filter to show only messages that have comments at the beginning')
>                 -
>                 ('messages in hardened classes' filterToMessagesWithHardenedClasses 'filter to show only messages of established classes (as opposed to Uniclasses such as Player23)')          -
>                 ('methods in classes with matching names' filterToMatchingClassesNames 'filter to show only methods of classes with names that match the given criteria (wildcards are allowed)')
>                 ('methods in package...' filterToPackage 'filter to show only methods of a given package')
> +               ('methods not in package...' filterToNotPackage 'filter to show only methods of a given package')
>                 -
>                 ('messages that...' filterToMessagesThat 'let me type in a block taking a class and a selector, which will specify yea or nay concerning which elements should remain in the list')).
>         builder runModal: (builder open: menuSpec).!
>
> Item was added:
> + ----- Method: MessageSet>>filterToNotPackage (in category 'filtering') -----
> + filterToNotPackage
> +       self requestPackageSelection ifNotNil:
> +               [ : selectedPackage | self filterFrom:
> +                       [ : aClass : aSelector | (selectedPackage
> +                               includesMethod: aSelector
> +                               ofClass: aClass) not ] ]!
>
> Item was changed:
>   ----- Method: MessageSet>>filterToPackage (in category 'filtering') -----
>   filterToPackage
> +       self requestPackageSelection ifNotNil:
> +               [ : selectedPackage | self filterFrom:
> +                       [ : aClass : aSelector | selectedPackage
> +                               includesMethod: aSelector
> +                               ofClass: aClass ] ]!
> -
> -       | packages selectedIndex selectedPackage |
> -
> -       packages := (PackageOrganizer default packages sort: [ :a :b |
> -               a packageName <= b packageName ]).
> -
> -       selectedIndex := UIManager default chooseFrom: (packages collect:[:each | each packageName]) lines: #() title: 'Select a package...'.
> -       selectedIndex isZero ifTrue:[^ self].
> -
> -       selectedPackage := packages at: selectedIndex.
> -       self filterFrom: [:aClass :aSelector | selectedPackage includesMethod: aSelector ofClass: aClass ]
> - !
>
> Item was added:
> + ----- Method: MessageSet>>requestPackageSelection (in category 'private') -----
> + requestPackageSelection
> +       | packages selectedIndex |
> +       packages := PackageOrganizer default packages sort:
> +               [ : a : b | a packageName <= b packageName ].
> +       selectedIndex := UIManager default
> +               chooseFrom: (packages collect: [ : each | each packageName ])
> +               lines: Array empty
> +               title: 'Select a package...'.
> +       ^ packages at: selectedIndex ifAbsent: [ nil ]!
>
>


More information about the Squeak-dev mailing list