--- a/SystemBrowser.st Tue Apr 08 18:37:42 2003 +0200
+++ b/SystemBrowser.st Wed Apr 09 11:17:01 2003 +0200
@@ -4807,7 +4807,7 @@
classWithNameSimilarTo:className
"helper for class-name entry; finds a class by name tolerant w.r.t. case"
- |nm lcName class allClasses|
+ |nm lcName class allClasses triedMatchers|
(className startsWith:'Smalltalk::') ifTrue:[
nm := className copyFrom:('Smalltalk::' size + 1).
@@ -4816,44 +4816,25 @@
].
class := Smalltalk at:nm asSymbol.
- class isBehavior ifTrue:[^ class].
+ class isBehavior ifTrue:[^ class]. "/ a direct hit
lcName := className asLowercase.
allClasses := Smalltalk allClasses.
- class := allClasses
- detect:[:cls | cls name asLowercase = lcName]
- ifNone:nil.
- class notNil ifTrue:[^ class].
-
- class := allClasses
- detect:[:cls | cls name asLowercase startsWith:lcName]
- ifNone:nil.
- class notNil ifTrue:[^ class].
-
- class := allClasses
- detect:[:cls | cls nameWithoutNameSpacePrefix asLowercase = lcName]
- ifNone:nil.
- class notNil ifTrue:[^ class].
-
- class := allClasses
- detect:[:cls | cls nameWithoutNameSpacePrefix asLowercase startsWith:lcName]
- ifNone:nil.
- class notNil ifTrue:[^ class].
-
- class := allClasses
- detect:[:cls | cls nameWithoutPrefix asLowercase = lcName]
- ifNone:nil.
- class notNil ifTrue:[^ class].
-
- class := allClasses
- detect:[:cls | cls nameWithoutPrefix asLowercase startsWith:lcName]
- ifNone:nil.
- class notNil ifTrue:[^ class].
-
- class := allClasses
- detect:[:cls | ('*' , lcName , '*') match:cls nameWithoutPrefix asLowercase]
- ifNone:nil.
- ^ class
+
+ triedMatchers := OrderedCollection new.
+ triedMatchers add:[:cls | cls name asLowercase = lcName].
+ triedMatchers add:[:cls | cls name asLowercase startsWith:lcName].
+ triedMatchers add:[:cls | cls nameWithoutNameSpacePrefix asLowercase = lcName].
+ triedMatchers add:[:cls | cls nameWithoutNameSpacePrefix asLowercase startsWith:lcName].
+ triedMatchers add:[:cls | cls nameWithoutPrefix asLowercase = lcName].
+ triedMatchers add:[:cls | cls nameWithoutPrefix asLowercase startsWith:lcName].
+ triedMatchers add:[:cls | cls nameWithoutPrefix asLowercase includesString:lcName].
+
+ triedMatchers do:[:eachTry |
+ class := allClasses detect:eachTry ifNone:nil.
+ class notNil ifTrue:[^ class].
+ ].
+ ^ nil
!
extractClassAndSelectorFrom:aString into:aBlock
@@ -5005,7 +4986,7 @@
!SystemBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/SystemBrowser.st,v 1.185 2003-02-04 08:42:37 ca Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/SystemBrowser.st,v 1.186 2003-04-09 09:17:01 cg Exp $'
! !
SystemBrowser initialize!