class: Tools::NewSystemBrowser
authorClaus Gittinger <cg@exept.de>
Thu, 10 Jul 2014 21:08:01 +0200
changeset 14649 b4e97c6fc827
parent 14648 44643d3656c4
child 14650 05bfe211bf49
class: Tools::NewSystemBrowser changed: #askForClassToSearch:single:msgTail:resources:filter:forBrowser:thenDo: better search-class matching (when namespace is typed in)
Tools__NewSystemBrowser.st
--- a/Tools__NewSystemBrowser.st	Thu Jul 10 18:54:25 2014 +0200
+++ b/Tools__NewSystemBrowser.st	Thu Jul 10 21:08:01 2014 +0200
@@ -18002,7 +18002,7 @@
 
     |box boxLabel title okText okText2 okText3 className canFind
      button2 button3 doWhat doWhat2 doWhat3 classNameHolder updateList updateClassAndNameList
-     reallyAllClasses allClasses classNamesInChangeSet classesInChangeSet
+     reallyAllClasses allClasses allClassesByFullName classNamesInChangeSet classesInChangeSet
      allNames allFullNames initialShortNames initialFullNames
      colorizedFullNames colorizedShortNames
      resources check showingWhatLabel 
@@ -18147,6 +18147,7 @@
             onlyShowJavaClassesHolder value ifTrue:[
                 allClasses := reallyAllClasses select:[:cls | cls isJavaClass].
             ].
+            allClassesByFullName := allClasses copy.
 
             allNames := (allClasses
                         collect:[:cls |
@@ -18182,12 +18183,12 @@
                             ] ifFalse:[
                                 nm
                             ].
-                        ]) sortWith:allClasses; yourself.
+                        ]) sortWith:allClassesByFullName; yourself.
         ].
     updateClassAndNameList value.
 
     updateList := [
-            |nameToSearch list namesStarting namesIncluding lcName nameList|
+            |nameToSearch list namesStarting namesIncluding lcName nameList classList|
 
             (nameToSearch := classNameHolder value withoutSeparators) isEmpty ifTrue:[
                 showingWhatLabel label:(resources string:'Recently visited:').
@@ -18197,7 +18198,9 @@
                 nameList := showFullNameHolder value
                                 ifTrue:[ allFullNames ]
                                 ifFalse:[ allNames ].
-
+                classList := showFullNameHolder value
+                                ifTrue:[ allClassesByFullName ]
+                                ifFalse:[ allClasses ].
                 lcName := nameToSearch asLowercase.
                 (lcName includesString:'::') ifTrue:[
                     list := OrderedCollection new.
@@ -18215,13 +18218,22 @@
                     ].
                 ] ifFalse:[
                     (nameToSearch includesMatchCharacters) ifTrue:[
-                        list := nameList select:[:nm | lcName match:nm asLowercase]
+                        list := (1 to:nameList size) 
+                                    select:[:idx |
+                                            |nm| 
+                                            nm := nameList at:idx.
+                                            (lcName match:nm asLowercase) 
+                                            or:[ lcName match:(classList at:idx) name caseSensitive:false]
+                                    ] thenCollect:[:idx | nameList at:idx].
                     ] ifFalse:[
-                        namesIncluding := nameList
-                                            select:[:nm |
-                                                "/ nm asLowercase startsWith:lcName
-                                                nm asLowercase includesString:lcName caseSensitive:false
-                                            ].
+                        namesIncluding := (1 to:nameList size)
+                                            select:[:idx |
+                                                |nm| 
+                                                nm := nameList at:idx.
+                                                (nm asLowercase includesString:lcName caseSensitive:false)
+                                                or:[ (classList at:idx) name includesString:lcName caseSensitive:false]
+                                            ] thenCollect:[:idx | nameList at:idx].  
+
                         namesStarting := namesIncluding select:[:nm | nm asLowercase startsWith:lcName].
                         list := namesStarting , {nil} , (namesIncluding \ namesStarting).
                     ]
@@ -61787,11 +61799,11 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2093 2014-07-09 20:46:26 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2094 2014-07-10 19:08:01 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2093 2014-07-09 20:46:26 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2094 2014-07-10 19:08:01 cg Exp $'
 !
 
 version_HG
@@ -61800,7 +61812,7 @@
 !
 
 version_SVN
-    ^ '$Id: Tools__NewSystemBrowser.st,v 1.2093 2014-07-09 20:46:26 cg Exp $'
+    ^ '$Id: Tools__NewSystemBrowser.st,v 1.2094 2014-07-10 19:08:01 cg Exp $'
 ! !