class: Tools::NewSystemBrowser
changed: #askForClassToSearch:single:msgTail:resources:filter:forBrowser:thenDo:
better search-class matching (when namespace is typed in)
--- 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 $'
! !