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

Chris Muller asqueaker at gmail.com
Sat May 25 22:46:28 UTC 2019


I already see a problem.  Removing.

On Sat, May 25, 2019 at 5:45 PM Chris Muller <asqueaker at gmail.com> wrote:
>
> 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