Use relaxed search when matching objects in search dialogs.
When no object matches pattern, try again more relaxed search. This should give
better UX (we'll see)
--- a/SmallSense__AbstractSearchDialog.st Fri Jun 20 14:25:09 2014 +0100
+++ b/SmallSense__AbstractSearchDialog.st Fri Jun 20 21:22:23 2014 +0100
@@ -787,9 +787,25 @@
!
matchingObjectsForPattern:pattern inEnvironment:environment
+ | objects |
+
+ objects := self matchingObjectsForPattern:pattern inEnvironment:environment relax: 1.
+ objects notEmptyOrNil ifTrue:[ ^ objects ].
+
+ objects := self matchingObjectsForPattern:pattern inEnvironment:environment relax: 2.
+ objects notEmptyOrNil ifTrue:[ ^ objects ].
+
+ objects := self matchingObjectsForPattern:pattern inEnvironment:environment relax: 3.
+ ^ objects
+
+ "Created: / 28-04-2014 / 23:20:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-06-2014 / 21:19:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectsForPattern:pattern inEnvironment:environment relax: level
self subclassResponsibility
- "Created: / 28-04-2014 / 23:20:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 20-06-2014 / 21:16:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!AbstractSearchDialog class methodsFor:'documentation'!
--- a/SmallSense__ClassSearchDialog.st Fri Jun 20 14:25:09 2014 +0100
+++ b/SmallSense__ClassSearchDialog.st Fri Jun 20 21:22:23 2014 +0100
@@ -246,7 +246,7 @@
"Created: / 30-04-2014 / 09:50:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-matchingObjectsForPattern:pattern inEnvironment:environment
+matchingObjectsForPattern:pattern inEnvironment:environment relax: level
| matching matchFullyQualifiedClassName |
matching := OrderedCollection new.
@@ -256,14 +256,14 @@
matchFullyQualifiedClassName ifFalse:[
environment
allClassesDo:[:cls |
- ((filter isNil or:[filter value: cls]) and:[(pattern match:cls nameWithoutPrefix)]) ifTrue:[
+ ((filter isNil or:[filter value: cls]) and:[(pattern match:cls nameWithoutPrefix relax: level)]) ifTrue:[
matching add:cls.
].
].
] ifTrue:[
environment
allClassesDo:[:cls |
- ((filter isNil or:[filter value: cls]) and:[(pattern match:cls displayString)]) ifTrue:[
+ ((filter isNil or:[filter value: cls]) and:[(pattern match:cls displayString relax: level)]) ifTrue:[
matching add:cls
]
].
@@ -272,7 +272,6 @@
^ matching
- "Created: / 28-04-2014 / 23:20:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 05-05-2014 / 23:47:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 20-06-2014 / 21:17:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
--- a/SmallSense__MethodSearchDialog.st Fri Jun 20 14:25:09 2014 +0100
+++ b/SmallSense__MethodSearchDialog.st Fri Jun 20 21:22:23 2014 +0100
@@ -123,7 +123,7 @@
"Modified: / 20-06-2014 / 14:21:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-matchingObjectsForPattern:pattern inEnvironment:environment
+matchingObjectsForPattern:pattern inEnvironment:environment relax: level
| matching |
matching := OrderedCollection new.
@@ -134,7 +134,7 @@
name := mthd selector.
mthd isJavaMethod ifTrue:[ name := name upTo: $( ].
- ((filter isNil or:[filter value: mthd]) and:[(pattern match:name)]) ifTrue:[
+ ((filter isNil or:[filter value: mthd]) and:[(pattern match:name relax: level)]) ifTrue:[
matching add:mthd.
].
].
@@ -142,7 +142,6 @@
^ matching
- "Created: / 28-04-2014 / 23:20:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 06-05-2014 / 00:34:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 20-06-2014 / 21:17:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
--- a/SmallSense__PackageSearchDialog.st Fri Jun 20 14:25:09 2014 +0100
+++ b/SmallSense__PackageSearchDialog.st Fri Jun 20 21:22:23 2014 +0100
@@ -28,7 +28,7 @@
"Modified: / 19-06-2014 / 12:04:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-matchingObjectsForPattern:pattern inEnvironment:environment
+matchingObjectsForPattern:pattern inEnvironment:environment relax: level
| packages |
packages := Set new.
@@ -38,7 +38,7 @@
pkg := cls package.
((pkg notNil and:[ pkg ~~ PackageId noProjectID and:[ pkg ~= '__temporary__'] ])
and:[(filter isNil or:[ filter value: pkg ])
- and:[pattern isNil or:[pattern match: pkg]]]) ifTrue:[ packages add: pkg ].
+ and:[pattern isNil or:[pattern match: pkg relax: level]]]) ifTrue:[ packages add: pkg ].
].
environment allMethodsDo:[ :mth |
| pkg |
@@ -46,11 +46,10 @@
pkg := mth package.
((pkg notNil and:[ pkg ~~ PackageId noProjectID ])
and:[(filter isNil or:[ filter value: pkg ])
- and:[pattern isNil or:[pattern match: pkg]]]) ifTrue:[ packages add: pkg ].
+ and:[pattern isNil or:[pattern match: pkg relax: level]]]) ifTrue:[ packages add: pkg ].
].
^ packages asArray.
- "Created: / 05-05-2014 / 23:53:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 19-06-2014 / 12:06:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 20-06-2014 / 21:17:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !