# HG changeset patch # User Claus Gittinger # Date 1405019281 -7200 # Node ID b4e97c6fc82794312d4e772b69c7d8ff68c35235 # Parent 44643d3656c4e5d57942992abbb2a7898d6f13f2 class: Tools::NewSystemBrowser changed: #askForClassToSearch:single:msgTail:resources:filter:forBrowser:thenDo: better search-class matching (when namespace is typed in) diff -r 44643d3656c4 -r b4e97c6fc827 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 $' ! !