Tools__MethodList.st
changeset 17782 ee0d1bfafb04
parent 17780 1b645a397968
child 17784 ce86bb77b36f
--- a/Tools__MethodList.st	Sat Nov 25 12:11:56 2017 +0100
+++ b/Tools__MethodList.st	Sat Nov 25 13:07:53 2017 +0100
@@ -787,7 +787,9 @@
     ].
 
     changedObject == selectedMethodNameIndices ifTrue:[
-        newSelection := self selectedMethodNameIndices value collect:[:idx | methodList at:idx].
+        newSelection := self selectedMethodNameIndices value 
+                            reject:[:idx | idx > methodList size]
+                            thenCollect:[:idx | methodList at:idx].
         newSelection ~= selection ifTrue:[
             selectionHolder value:newSelection.
             lastSelectedMethods := newSelection.
@@ -853,7 +855,7 @@
 
     "Created: / 05-02-2000 / 13:42:14 / cg"
     "Modified: / 24-08-2013 / 00:41:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 09-11-2017 / 19:53:17 / cg"
+    "Modified: / 25-11-2017 / 12:38:41 / cg"
 !
 
 hideSelectorNameFilter
@@ -1224,7 +1226,7 @@
      generator doShowClass doShowClassFirst doShowCategory enforceClassAndProtocolInList
      theMethod sortByClass anyMethodToWatch mclass
      packageFilterValue nameListEntryForExtensions
-     suppressInheritanceInfoNow startTime|
+     suppressInheritanceInfoNow startTime numFiltered|
 
     suppressInheritanceInfoNow := (showMethodInheritance value ? true) not.
     startTime := Timestamp now.
@@ -1258,15 +1260,18 @@
     "/ generator generates nil-selector entries
     "/ to pass multiple-class and multiple-protocol info
     nameListEntryForExtensions := self class nameListEntryForExtensions.
-
+    numFiltered := 0.
+    
     generator do:[:cls :cat :sel :mthd |
         |categoryIsExtensionsPseudoCategory|
 
         (sel isNil 
         or:[ nameFilter isEmptyOrNil
         or:[ nameFilter = '*'
-        or:[ self isNameFilterMatchingSelector:sel method:mthd]]]) ifTrue:[
-            
+        or:[ ((self isNameFilterMatchingSelector:sel method:mthd) 
+                ifFalse:[ numFiltered := numFiltered + 1. false]
+                ifTrue:[true]) ]]]
+        ) ifTrue:[
             categoryIsExtensionsPseudoCategory := (cat = nameListEntryForExtensions).
             (cls isNil and:[ cat isNil and:[ sel isNil ] ]) ifTrue:[
                 enforceClassAndProtocolInList := true
@@ -1455,6 +1460,12 @@
         methods add:mthd.
         methodNameList add:{ cls name . sel}.
     ].
+
+    numFiltered ~~ 0 ifTrue:[
+        newNameList add:(('* %1 methods filtered (not containing pattern) *' bindWith:numFiltered) withColor:Color gray).
+        "/ methods add:nil.
+        "/ methodNameList add:{ nil . nil}.
+    ].
     
     self makeIndependent.
     classes := newClasses.
@@ -1491,7 +1502,7 @@
     "Created: / 05-02-2000 / 22:43:40 / cg"
     "Modified: / 24-08-2010 / 20:34:09 / Jan Vrany"
     "Modified (comment): / 17-09-2013 / 10:31:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 25-11-2017 / 12:04:50 / cg"
+    "Modified: / 25-11-2017 / 12:39:24 / cg"
 !
 
 makeDependent