Tools_ClassCategoryList.st
changeset 12043 9419417e0b19
parent 11944 98b10d0e2fd3
child 12465 aed594275d40
--- a/Tools_ClassCategoryList.st	Wed Nov 07 14:57:05 2012 +0100
+++ b/Tools_ClassCategoryList.st	Wed Nov 07 15:19:04 2012 +0100
@@ -523,7 +523,7 @@
     "return a generator which enumerates the classes from the selected category."
 
     |cats hideUnloadedClasses allName nameSpaceFilter packageFilter 
-     showChangedClasses showUnloaded showUndocumented inclusionTest changedClasses|
+     showChangedClasses showUnloaded showUndocumented showExtendedClasses inclusionTest changedClasses|
 
     cats := self selectedCategoriesStrings.
     cats size == 0 ifTrue:[
@@ -541,6 +541,7 @@
     showChangedClasses := cats includes:(self class nameListEntryForChanged).
     showUnloaded := cats includes:(self class nameListEntryForUnloaded).
     showUndocumented := cats includes:(self class nameListEntryForUndocumented).
+    showExtendedClasses := cats includes:(self class nameListEntryForExtendedClasses).
 
     hideUnloadedClasses := self hideUnloadedClasses value ? false.
     nameSpaceFilter := self nameSpaceFilter value.
@@ -578,6 +579,10 @@
                                             and:[ isLoaded 
                                             and:[ cls isPrivate not    
                                             and:[ (cls theMetaclass includesSelector:#documentation) not ]]].
+                                included ifFalse:[
+                                    included := showExtendedClasses
+                                                and:[ cls hasExtensions ].
+                                ].
                             ].
                         ].
                     ].
@@ -628,8 +633,8 @@
 listOfCategories
     |categories categoriesBag hideUnloadedClasses generator nameSpaceFilter packageFilter allName
      categoriesWithExtensions categoriesWithChangedCode categoriesWithRemoteChangedCode
-     classesInChangeSet classesInRemoteChangeSet 
-     numClassesInChangeSet numClasses numUnloaded numUndocumented pseudoEntryColor|
+     classesInChangeSet classesInRemoteChangeSet classesWithExtensions
+     numClassesInChangeSet numClasses numUnloaded numUndocumented numExtendedClasses pseudoEntryColor|
 
     allName := self class nameListEntryForALL.
 
@@ -643,7 +648,7 @@
         (packageFilter includes:allName) ifTrue:[packageFilter := nil].
     ].
 
-    numClasses := numUndocumented := numUnloaded := numClassesInChangeSet := 0.
+    numClasses := numUndocumented := numUnloaded := numClassesInChangeSet := numExtendedClasses := 0.
 
     categories := Set new.
     categoriesBag := Bag new.
@@ -657,6 +662,8 @@
     classesInRemoteChangeSet := SmallTeam isNil ifTrue:[#()] ifFalse:[ SmallTeam changedClasses ].
     classesInRemoteChangeSet := classesInRemoteChangeSet collect:[:each | each theNonMetaclass].
 
+    classesWithExtensions := IdentitySet new.
+
     classes := IdentitySet new.
     inGeneratorHolder isNil ifTrue:[
         Smalltalk allClassesDo:[:cls | 
@@ -695,7 +702,9 @@
                                 categoriesWithRemoteChangedCode add:cat
                             ].
                             cls hasExtensions ifTrue:[
-                                categoriesWithExtensions add:cat
+                                categoriesWithExtensions add:cat.
+                                classesWithExtensions add:cls.
+                                numExtendedClasses := numExtendedClasses + 1.
                             ].
                         ]
                     ]
@@ -775,6 +784,10 @@
         rawCategoryList add:self class nameListEntryForUnloaded.
         categories add:((self class nameListEntryForUnloadedWithCount bindWith:numUnloaded) allItalic colorizeAllWith:pseudoEntryColor).
     ].
+    numExtendedClasses > 0 ifTrue:[
+        rawCategoryList add:self class nameListEntryForExtendedClasses.
+        categories add:((self class nameListEntryForExtendedClassesWithCount bindWith:numExtendedClasses) allItalic colorizeAllWith:pseudoEntryColor).
+    ].
     numClassesInChangeSet := ChangeSet current changedClasses size.
     numClassesInChangeSet > 0 ifTrue:[
         rawCategoryList addFirst:self class nameListEntryForChanged.
@@ -958,9 +971,9 @@
 !ClassCategoryList class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.39 2012-10-27 10:35:12 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.40 2012-11-07 14:19:04 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.39 2012-10-27 10:35:12 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools_ClassCategoryList.st,v 1.40 2012-11-07 14:19:04 cg Exp $'
 ! !