Hi folks...while browsing AutomaticMethodCategorizer I found the place where the rules are defined. It is cool becuase we can add the rules we want. I am all ears.
For now, it is doing this: defaultCategorizationRules "The order is relevant, the categorizer uses the first rule matching - DF" ^OrderedCollection new add: MethodCategorizationRule forAccessors; add: (MethodCategorizationRule whenSelectorMatches: 'initialize*' categorizeIn: #initialization); add: (MethodCategorizationRule whenSelectorMatches: 'is*' categorizeIn: #testing); add: (MethodCategorizationRule whenSelectorMatches: 'has*' categorizeIn: #testing); add: (MethodCategorizationRule whenSelectorMatches: '=' categorizeIn: #comparing); add: (MethodCategorizationRule whenSelectorMatches: 'hash' categorizeIn: #comparing); add: (MethodCategorizationRule whenSelectorMatches: 'default*' categorizeIn: #defaults); add: (MethodCategorizationRule whenSelectorMatches: 'printOn:' categorizeIn: #printing); add: (MethodCategorizationRule whenSelectorMatches: 'accept:' categorizeIn: #'visitor accepting'); add: (MethodCategorizationRule whenSelectorMatches: 'visit*:' categorizeIn: #visiting); add: (MethodCategorizationRule whenSelectorMatches: 'value' categorizeIn: #evaluating); add: (MethodCategorizationRule whenSelectorMatches: 'test*' andClassInheritsFrom: TestCase categorizeIn: #tests); add: MethodCategorizationRule usingMostUsedCategoryInSuperClasses; add: MethodCategorizationRule usingMostUsedCategoryInImage; yourself We should improve this guy.... ideas to add/change? Cheers Mariano _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Aug 15, 2010, at 8:55 PM, Mariano Martinez Peck wrote: > Hi folks...while browsing AutomaticMethodCategorizer I found the place where the rules are defined. It is cool becuase we can add the rules we want. I am all ears. yes I would really like to have consistent categories. Now we should pay attention that the automaticmethodcategory does not do anythin when the category is * something. Stef > > For now, it is doing this: > > > defaultCategorizationRules > > "The order is relevant, the categorizer uses the first rule matching - DF" > > ^OrderedCollection new > add: MethodCategorizationRule forAccessors; > add: (MethodCategorizationRule whenSelectorMatches: 'initialize*' categorizeIn: #initialization); > add: (MethodCategorizationRule whenSelectorMatches: 'is*' categorizeIn: #testing); > add: (MethodCategorizationRule whenSelectorMatches: 'has*' categorizeIn: #testing); > add: (MethodCategorizationRule whenSelectorMatches: '=' categorizeIn: #comparing); > add: (MethodCategorizationRule whenSelectorMatches: 'hash' categorizeIn: #comparing); > add: (MethodCategorizationRule whenSelectorMatches: 'default*' categorizeIn: #defaults); > add: (MethodCategorizationRule whenSelectorMatches: 'printOn:' categorizeIn: #printing); > add: (MethodCategorizationRule whenSelectorMatches: 'accept:' categorizeIn: #'visitor accepting'); > add: (MethodCategorizationRule whenSelectorMatches: 'visit*:' categorizeIn: #visiting); > add: (MethodCategorizationRule whenSelectorMatches: 'value' categorizeIn: #evaluating); > add: (MethodCategorizationRule > whenSelectorMatches: 'test*' > andClassInheritsFrom: TestCase > categorizeIn: #tests); > add: MethodCategorizationRule usingMostUsedCategoryInSuperClasses; > add: MethodCategorizationRule usingMostUsedCategoryInImage; > yourself > > > > We should improve this guy.... ideas to add/change? > > Cheers > > Mariano > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Mariano Martinez Peck
new* -> 'instance creation'
write* -> 'writing' add* -> 'adding - removing' remove* -> 'adding - removing' Alexandre On 15 Aug 2010, at 14:55, Mariano Martinez Peck wrote: > Hi folks...while browsing AutomaticMethodCategorizer I found the place where the rules are defined. It is cool becuase we can add the rules we want. I am all ears. > > For now, it is doing this: > > > defaultCategorizationRules > > "The order is relevant, the categorizer uses the first rule matching - DF" > > ^OrderedCollection new > add: MethodCategorizationRule forAccessors; > add: (MethodCategorizationRule whenSelectorMatches: 'initialize*' categorizeIn: #initialization); > add: (MethodCategorizationRule whenSelectorMatches: 'is*' categorizeIn: #testing); > add: (MethodCategorizationRule whenSelectorMatches: 'has*' categorizeIn: #testing); > add: (MethodCategorizationRule whenSelectorMatches: '=' categorizeIn: #comparing); > add: (MethodCategorizationRule whenSelectorMatches: 'hash' categorizeIn: #comparing); > add: (MethodCategorizationRule whenSelectorMatches: 'default*' categorizeIn: #defaults); > add: (MethodCategorizationRule whenSelectorMatches: 'printOn:' categorizeIn: #printing); > add: (MethodCategorizationRule whenSelectorMatches: 'accept:' categorizeIn: #'visitor accepting'); > add: (MethodCategorizationRule whenSelectorMatches: 'visit*:' categorizeIn: #visiting); > add: (MethodCategorizationRule whenSelectorMatches: 'value' categorizeIn: #evaluating); > add: (MethodCategorizationRule > whenSelectorMatches: 'test*' > andClassInheritsFrom: TestCase > categorizeIn: #tests); > add: MethodCategorizationRule usingMostUsedCategoryInSuperClasses; > add: MethodCategorizationRule usingMostUsedCategoryInImage; > yourself > > > > We should improve this guy.... ideas to add/change? > > Cheers > > Mariano > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Sun, Aug 15, 2010 at 11:28 PM, Alexandre Bergel <[hidden email]> wrote: new* -> 'instance creation' Thanks Alexandre. Someone has more ideas? Alexandre _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
In reply to this post by Stéphane Ducasse
On Sun, Aug 15, 2010 at 9:12 PM, Stéphane Ducasse <[hidden email]> wrote:
One important thing I forgot to say is that the order is important here. Notice that the pattern rules are first and then the rules for the most used categories...this means that for example printOn: will be always in 'printing'. However, in the system most printOn: could be in 'print' category... So it is important what you want more...if specific patterns or maintain consistency with what you have in the system... cheers mariano
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
did you check is there is a safe guard when the category start with *?
?Stef > > Hi folks...while browsing AutomaticMethodCategorizer I found the place where the rules are defined. It is cool becuase we can add the rules we want. I am all ears. > > yes I would really like to have consistent categories. > Now we should pay attention that the automaticmethodcategory does not do anythin when the category is * something. > > Stef > > > > For now, it is doing this: > > > > > > defaultCategorizationRules > > > > "The order is relevant, the categorizer uses the first rule matching - DF" > > > > ^OrderedCollection new > > add: MethodCategorizationRule forAccessors; > > add: (MethodCategorizationRule whenSelectorMatches: 'initialize*' categorizeIn: #initialization); > #initialize > > > add: (MethodCategorizationRule whenSelectorMatches: 'is*' categorizeIn: #testing); > > add: (MethodCategorizationRule whenSelectorMatches: 'has*' categorizeIn: #testing); > > add: (MethodCategorizationRule whenSelectorMatches: '=' categorizeIn: #comparing); > > add: (MethodCategorizationRule whenSelectorMatches: 'hash' categorizeIn: #comparing); > > add: (MethodCategorizationRule whenSelectorMatches: 'default*' categorizeIn: #defaults); > > add: (MethodCategorizationRule whenSelectorMatches: 'printOn:' categorizeIn: #printing); > > add: (MethodCategorizationRule whenSelectorMatches: 'accept:' categorizeIn: #'visitor accepting'); > > add: (MethodCategorizationRule whenSelectorMatches: 'visit*:' categorizeIn: #visiting); > > add: (MethodCategorizationRule whenSelectorMatches: 'value' categorizeIn: #evaluating); > > add: (MethodCategorizationRule > > whenSelectorMatches: 'test*' > > andClassInheritsFrom: TestCase > > categorizeIn: #tests); > > add: MethodCategorizationRule usingMostUsedCategoryInSuperClasses; > > add: MethodCategorizationRule usingMostUsedCategoryInImage; > > yourself > > > > > > One important thing I forgot to say is that the order is important here. Notice that the pattern rules are first and then the rules for the most used categories...this means that for example printOn: will be always in 'printing'. However, in the system most printOn: could be in 'print' category... > > So it is important what you want more...if specific patterns or maintain consistency with what you have in the system... > > cheers > > mariano > > > > > > > > We should improve this guy.... ideas to add/change? > > > > Cheers > > > > Mariano > > _______________________________________________ > > Pharo-project mailing list > > [hidden email] > > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
On Mon, Aug 16, 2010 at 9:35 PM, Stéphane Ducasse <[hidden email]> wrote: did you check is there is a safe guard when the category start with *? This is not up to AutomaticMethodCategorizer. I mean, by code, the only defined rules are the ones that are in #defaultCategorizationRules If you want you can add more rules. For a rule you can say something like this: add: (MethodCategorizationRule whenSelectorMatches: 'is*' categorizeIn: #testing); if you do something like this for example: add: (MethodCategorizationRule whenSelectorMatches: 'is*' categorizeIn: #*Something); There will be no error in AutomaticMethodCategorizer and Something will be recognized as it were a package. More or less could happen the same with a selector that doesn't apply to any rule. For example, suppose #aFunnySelector doesn't match any rule, but there are 10 implementors in the image and the 80% of them has category *Something. Then. it will apply *Something also to that selector. That's what I understood. However, I don't think it is a big deal and we can live with that. ?Stef _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
> This is not up to AutomaticMethodCategorizer.
yes it is. The automaticCategorizer should not when it get applied to a class breaks packages > I mean, by code, the only defined rules are the ones that are in #defaultCategorizationRules > If you want you can add more rules. For a rule you can say something like this: > > add: (MethodCategorizationRule whenSelectorMatches: 'is*' categorizeIn: #testing); > > if you do something like this for example: > > add: (MethodCategorizationRule whenSelectorMatches: 'is*' categorizeIn: #*Something); > > There will be no error in AutomaticMethodCategorizer and Something will be recognized as it were a package. > > More or less could happen the same with a selector that doesn't apply to any rule. For example, suppose #aFunnySelector doesn't match any rule, but there are 10 implementors in the image and the 80% of them has category *Something. Then. it will apply *Something also to that selector. > > That's what I understood. However, I don't think it is a big deal and we can live with that. No! Automatic categorizer should be able to be applied system wide and not break all the packages. Stef _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
ok....For those who were not here hahaha. We have just talked with Stef. There is no problem because AutomaticMethodCategorizer ONLY takes into account the methods that are not yet categorized.
Thus....if you have *Something it means it is already categorized...thus, it does nothing. Is it ok? Mariano On Tue, Aug 17, 2010 at 10:08 AM, Stéphane Ducasse <[hidden email]> wrote:
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
> ok....For those who were not here hahaha. We have just talked with Stef. There is no problem because AutomaticMethodCategorizer ONLY takes into account the methods that are not yet categorized.
> Thus....if you have *Something it means it is already categorized...thus, it does nothing. > > Is it ok? I would love to see the categorization selectively happen on methods that are already categorized. Cheers, Alexandre > > Mariano > > On Tue, Aug 17, 2010 at 10:08 AM, Stéphane Ducasse <[hidden email]> wrote: > > This is not up to AutomaticMethodCategorizer. > > yes it is. > The automaticCategorizer should not when it get applied to a class breaks packages > > > I mean, by code, the only defined rules are the ones that are in #defaultCategorizationRules > > If you want you can add more rules. For a rule you can say something like this: > > > > add: (MethodCategorizationRule whenSelectorMatches: 'is*' categorizeIn: #testing); > > > > if you do something like this for example: > > > > add: (MethodCategorizationRule whenSelectorMatches: 'is*' categorizeIn: #*Something); > > > > There will be no error in AutomaticMethodCategorizer and Something will be recognized as it were a package. > > > > More or less could happen the same with a selector that doesn't apply to any rule. For example, suppose #aFunnySelector doesn't match any rule, but there are 10 implementors in the image and the 80% of them has category *Something. Then. it will apply *Something also to that selector. > > > > That's what I understood. However, I don't think it is a big deal and we can live with that. > > No! > Automatic categorizer should be able to be applied system wide and not break all the packages. > > Stef > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > > _______________________________________________ > Pharo-project mailing list > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |