Initial work on Navigator, an unified search dialog
authorJan Vrany <jan.vrany@fit.cvut.cz>
Sun, 11 Jan 2015 06:38:54 +0000
changeset 370 b02030d796d8
parent 369 b268b5cfa98c
child 372 84d4383f002e
Initial work on Navigator, an unified search dialog Now it searches for classes and implementors only.
Make.proto
Make.spec
SmallSense__AbstractDIalog.st
SmallSense__AbstractListDialog.st
SmallSense__AbstractSearchDialog.st
SmallSense__AbstractSearchProcessor.st
SmallSense__ClassSearchDialog.st
SmallSense__ClassSearchProcessor.st
SmallSense__CompositeProcessor.st
SmallSense__ImplementorSearchProcessor.st
SmallSense__MethodSearchDialog.st
SmallSense__Navigator.st
SmallSense__PackageSelectDialog.st
SmallSense__ProtocolSelectDialog.st
abbrev.stc
bc.mak
extensions.st
libInit.cc
smallsense.rc
stx_goodies_smallsense.st
--- a/Make.proto	Fri Jan 09 18:17:39 2015 +0000
+++ b/Make.proto	Sun Jan 11 06:38:54 2015 +0000
@@ -34,7 +34,7 @@
 # add the path(es) here:,
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/helpers -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser -I$(INCLUDE_TOP)/stx/goodies/regex -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libbasic3 -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libjava -I$(INCLUDE_TOP)/stx/libjava/tools -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/helpers -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser -I$(INCLUDE_TOP)/stx/goodies/regex -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libbasic3 -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libjava -I$(INCLUDE_TOP)/stx/libjava/tools -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libwidg2
 
 
 # if you need any additional defines for embedded C code,
@@ -134,6 +134,7 @@
 	cd ../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../refactoryBrowser/browser && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../libwidg && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../refactoryBrowser/lint && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../libhtml && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
@@ -200,6 +201,7 @@
 $(OUTDIR)SmallSense__ClassPO.$(O) SmallSense__ClassPO.$(H): SmallSense__ClassPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ClassSearchProcessor.$(O) SmallSense__ClassSearchProcessor.$(H): SmallSense__ClassSearchProcessor.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractSearchProcessor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ClassType.$(O) SmallSense__ClassType.$(H): SmallSense__ClassType.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__Type.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__CompositeProcessor.$(O) SmallSense__CompositeProcessor.$(H): SmallSense__CompositeProcessor.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractSearchProcessor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ConstantPO.$(O) SmallSense__ConstantPO.$(H): SmallSense__ConstantPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__GenericEditSupport.$(O) SmallSense__GenericEditSupport.$(H): SmallSense__GenericEditSupport.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__EditSupport.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ImplementorSearchProcessor.$(O) SmallSense__ImplementorSearchProcessor.$(H): SmallSense__ImplementorSearchProcessor.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractSearchProcessor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -229,6 +231,7 @@
 $(OUTDIR)SmallSense__ClassSearchDialog.$(O) SmallSense__ClassSearchDialog.$(H): SmallSense__ClassSearchDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractSearchDialog.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__JavaCompletionEngineSimple.$(O) SmallSense__JavaCompletionEngineSimple.$(H): SmallSense__JavaCompletionEngineSimple.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__MethodSearchDialog.$(O) SmallSense__MethodSearchDialog.$(H): SmallSense__MethodSearchDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractSearchDialog.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__Navigator.$(O) SmallSense__Navigator.$(H): SmallSense__Navigator.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractSearchDialog.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__PackageSelectDialog.$(O) SmallSense__PackageSelectDialog.$(H): SmallSense__PackageSelectDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractSelectDialog.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ProtocolSelectDialog.$(O) SmallSense__ProtocolSelectDialog.$(H): SmallSense__ProtocolSelectDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractSelectDialog.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__GroovyCompletionEngineSimple.$(O) SmallSense__GroovyCompletionEngineSimple.$(H): SmallSense__GroovyCompletionEngineSimple.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__JavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/Make.spec	Fri Jan 09 18:17:39 2015 +0000
+++ b/Make.spec	Sun Jan 11 06:38:54 2015 +0000
@@ -93,6 +93,7 @@
 	SmallSense::ClassPO \
 	SmallSense::ClassSearchProcessor \
 	SmallSense::ClassType \
+	SmallSense::CompositeProcessor \
 	SmallSense::ConstantPO \
 	SmallSense::GenericEditSupport \
 	SmallSense::ImplementorSearchProcessor \
@@ -122,6 +123,7 @@
 	SmallSense::ClassSearchDialog \
 	SmallSense::JavaCompletionEngineSimple \
 	SmallSense::MethodSearchDialog \
+	SmallSense::Navigator \
 	SmallSense::PackageSelectDialog \
 	SmallSense::ProtocolSelectDialog \
 	SmallSense::GroovyCompletionEngineSimple \
@@ -172,6 +174,7 @@
     $(OUTDIR_SLASH)SmallSense__ClassPO.$(O) \
     $(OUTDIR_SLASH)SmallSense__ClassSearchProcessor.$(O) \
     $(OUTDIR_SLASH)SmallSense__ClassType.$(O) \
+    $(OUTDIR_SLASH)SmallSense__CompositeProcessor.$(O) \
     $(OUTDIR_SLASH)SmallSense__ConstantPO.$(O) \
     $(OUTDIR_SLASH)SmallSense__GenericEditSupport.$(O) \
     $(OUTDIR_SLASH)SmallSense__ImplementorSearchProcessor.$(O) \
@@ -201,6 +204,7 @@
     $(OUTDIR_SLASH)SmallSense__ClassSearchDialog.$(O) \
     $(OUTDIR_SLASH)SmallSense__JavaCompletionEngineSimple.$(O) \
     $(OUTDIR_SLASH)SmallSense__MethodSearchDialog.$(O) \
+    $(OUTDIR_SLASH)SmallSense__Navigator.$(O) \
     $(OUTDIR_SLASH)SmallSense__PackageSelectDialog.$(O) \
     $(OUTDIR_SLASH)SmallSense__ProtocolSelectDialog.$(O) \
     $(OUTDIR_SLASH)SmallSense__GroovyCompletionEngineSimple.$(O) \
--- a/SmallSense__AbstractDIalog.st	Fri Jan 09 18:17:39 2015 +0000
+++ b/SmallSense__AbstractDIalog.st	Sun Jan 11 06:38:54 2015 +0000
@@ -671,3 +671,10 @@
     "Modified: / 28-04-2014 / 22:49:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!AbstractDIalog class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/SmallSense__AbstractListDialog.st	Fri Jan 09 18:17:39 2015 +0000
+++ b/SmallSense__AbstractListDialog.st	Sun Jan 11 06:38:54 2015 +0000
@@ -373,7 +373,10 @@
             ].
         ].
         completion notNil ifTrue:[
-            field contents: completion first.
+            self enqueueDelayedAction:[  
+                matchPatternHolder value: completion first withoutNotifying: self.   
+                "/ field contents: completion first.
+            ].
             completion second size == 1 ifTrue:[
                 matchingObjectsMultiselect ifTrue:[
                     self matchingObjectsSelection: completion second asArray
@@ -387,7 +390,7 @@
     ]
 
     "Created: / 28-04-2014 / 22:30:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 20-06-2014 / 14:12:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 10-01-2015 / 11:07:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 matchPatternHolder
@@ -590,12 +593,13 @@
         pattern := StringPattern fromString: self matchPatternHolder value.
         pos := self matchingObjectPOsForPattern: pattern.
         self updateMatchingObjectPOs: pos.
+        self updateMatchingLabelToNormal
     ] ifFalse:[
         self updateMatchingIgnorePattern
     ].
 
     "Created: / 12-12-2014 / 23:38:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 13-12-2014 / 08:34:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-01-2015 / 06:36:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 updateMatchingIgnorePattern
--- a/SmallSense__AbstractSearchDialog.st	Fri Jan 09 18:17:39 2015 +0000
+++ b/SmallSense__AbstractSearchDialog.st	Sun Jan 11 06:38:54 2015 +0000
@@ -27,7 +27,7 @@
 	category:'SmallSense-Core-Interface-Search'
 !
 
-AbstractSearchDialog class instanceVariableNames:'recentlySearchedPatterns recentlySearchedObjectPOs'
+AbstractSearchDialog class instanceVariableNames:'recentlySearchedPatterns'
 
 "
  The following class instance variables are inherited by this class:
@@ -66,15 +66,6 @@
 
 !AbstractSearchDialog class methodsFor:'accessing'!
 
-recentlySearchedObjectPOs
-    recentlySearchedObjectPOs isNil ifTrue:[
-        recentlySearchedObjectPOs := OrderedSet new.
-    ].
-    ^ recentlySearchedObjectPOs
-
-    "Created: / 13-12-2014 / 08:23:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
 recentlySearchedPatterns
     recentlySearchedPatterns isNil ifTrue:[
         recentlySearchedPatterns := OrderedSet new.
@@ -94,6 +85,14 @@
     ^ self == SmallSense::AbstractSearchDialog.
 ! !
 
+!AbstractSearchDialog class methodsFor:'remembering'!
+
+rememberSearchPattern: pattern
+    self recentlySearchedPatterns add: pattern
+
+    "Created: / 11-01-2015 / 06:16:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !AbstractSearchDialog methodsFor:'accessing'!
 
 processor
@@ -104,6 +103,17 @@
     processor := aAbstractSearchProcessor.
 ! !
 
+!AbstractSearchDialog methodsFor:'accessing - private'!
+
+matchingObjectForString:aString
+    "Creates a new object from given string. Called only when
+     #canCreateMatchingObjectFromString: returns true"
+
+    ^ self shouldNotImplement
+
+    "Created: / 10-01-2015 / 10:24:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !AbstractSearchDialog methodsFor:'change & update'!
 
 update:something with:aParameter from:changedObject
@@ -112,11 +122,11 @@
     changedObject == accept ifTrue:[
         accept value ifTrue:[
             self updateAcceptedValue.
-            recentlySearchedPatterns add: self pattern.
+            self class rememberSearchPattern: self pattern.
             matchingObjectsMultiselect ifTrue:[
-                recentlySearchedObjectPOs addAll: matchingObjectsSelectionHolder value.
+                self processor rememberSearchObjectPOs: matchingObjectsSelectionHolder value.
             ] ifFalse:[
-                recentlySearchedObjectPOs add: matchingObjectsSelectionHolder value.
+                self processor rememberSearchObjectPO: matchingObjectsSelectionHolder value.
             ].
         ].
         ^ self.
@@ -124,7 +134,17 @@
     super update:something with:aParameter from:changedObject
 
     "Created: / 08-12-2014 / 02:36:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 13-12-2014 / 08:27:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-01-2015 / 06:18:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+updateMatchingIgnorePattern
+
+    "/ Show recent searches rather than all items (there may be a lot...)
+    self updateMatchingObjectPOs: processor recentlySearchedObjectPOs.
+    self updateMatchingLabelToRecentSearches
+
+    "Created: / 12-12-2014 / 23:39:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-01-2015 / 06:33:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !AbstractSearchDialog methodsFor:'hooks'!
@@ -145,16 +165,14 @@
     "Modified: / 13-12-2014 / 08:28:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!AbstractSearchDialog methodsFor:'initialization'!
-
-initialize
-    super initialize.
+!AbstractSearchDialog methodsFor:'queries'!
 
-    recentlySearchedPatterns := self class recentlySearchedPatterns.
-    recentlySearchedObjectPOs := self class recentlySearchedObjectPOs.
+canSelect: selection
+    "raise an error: must be redefined in concrete subclass(es)"
 
-    "Created: / 08-12-2014 / 01:51:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 13-12-2014 / 08:25:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    ^ (selection isKindOf: PO) and:[ selection isSmallSensePluggablePO not or:[ selection subject ~~ processor ] ]
+
+    "Created: / 10-01-2015 / 10:23:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !AbstractSearchDialog methodsFor:'searching'!
--- a/SmallSense__AbstractSearchProcessor.st	Fri Jan 09 18:17:39 2015 +0000
+++ b/SmallSense__AbstractSearchProcessor.st	Sun Jan 11 06:38:54 2015 +0000
@@ -27,6 +27,13 @@
 	category:'SmallSense-Core-Interface-Search'
 !
 
+AbstractSearchProcessor class instanceVariableNames:'recentlySearchedObjectPOs'
+
+"
+ No other class instance variables are inherited by this class.
+"
+!
+
 !AbstractSearchProcessor class methodsFor:'documentation'!
 
 copyright
@@ -50,6 +57,17 @@
 "
 ! !
 
+!AbstractSearchProcessor class methodsFor:'accessing'!
+
+recentlySearchedObjectPOs
+    recentlySearchedObjectPOs isNil ifTrue:[
+        recentlySearchedObjectPOs := OrderedSet new.
+    ].
+    ^ recentlySearchedObjectPOs
+
+    "Created: / 13-12-2014 / 08:23:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !AbstractSearchProcessor class methodsFor:'queries'!
 
 isAbstract
@@ -60,6 +78,47 @@
     ^ self == SmallSense::AbstractSearchProcessor.
 ! !
 
+!AbstractSearchProcessor class methodsFor:'remembering'!
+
+rememberSearchObjectPO: aPO
+    self recentlySearchedObjectPOs add: aPO
+
+    "Created: / 11-01-2015 / 06:19:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractSearchProcessor methodsFor:'accessing'!
+
+recentlySearchedObjectPOs
+    ^ self class recentlySearchedObjectPOs asArray reversed
+
+    "Created: / 11-01-2015 / 06:21:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractSearchProcessor methodsFor:'accessing - presentation'!
+
+label
+    "Return a label for this processor. This one is used as section label
+     in Spotter"
+
+    ^ self subclassResponsibility
+
+    "Created: / 10-01-2015 / 06:40:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!AbstractSearchProcessor methodsFor:'remembering'!
+
+rememberSearchObjectPO: po
+    self class rememberSearchObjectPO: po
+
+    "Created: / 11-01-2015 / 06:19:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+rememberSearchObjectPOs: pos
+    pos do:[:po | self rememberSearchObjectPO: po ]
+
+    "Created: / 11-01-2015 / 06:19:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !AbstractSearchProcessor methodsFor:'searching'!
 
 matchingObjectPOsFor: objects
--- a/SmallSense__ClassSearchDialog.st	Fri Jan 09 18:17:39 2015 +0000
+++ b/SmallSense__ClassSearchDialog.st	Sun Jan 11 06:38:54 2015 +0000
@@ -198,27 +198,6 @@
     ^ super update:something with:aParameter from:changedObject
 
     "Created: / 27-04-2014 / 23:45:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-updateMatchingIgnorePattern
-    "/ There's a lot of classes, do not display them all but
-    "/ rather display only recent selections.
-
-    | recent objects |
-
-    "/ Make sure current environment contains them...
-    objects := Set new.
-    recent := recentlySearchedObjectPOs asArray reversed.
-"/    self environment allClassesDo:[:cls|
-"/        (recent includes: cls) ifTrue:[ 
-"/            objects add: cls.
-"/        ].
-"/    ].
-"/    recent := recent select:[ :cls | objects includes: cls ].
-    self updateMatchingObjectPOs: recent.
-
-    "Created: / 12-12-2014 / 23:39:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 13-12-2014 / 08:30:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ClassSearchDialog methodsFor:'initialization'!
@@ -232,13 +211,6 @@
 
 !ClassSearchDialog methodsFor:'queries'!
 
-canSelect: selection
-    ^ selection askFor: #isSmallSenseClassPO.
-
-    "Created: / 22-04-2014 / 13:08:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 02-05-2014 / 23:52:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
 hasOptions
     ^ true
 
--- a/SmallSense__ClassSearchProcessor.st	Fri Jan 09 18:17:39 2015 +0000
+++ b/SmallSense__ClassSearchProcessor.st	Sun Jan 11 06:38:54 2015 +0000
@@ -60,6 +60,17 @@
     matchFullyQualifiedClassName := something.
 ! !
 
+!ClassSearchProcessor methodsFor:'accessing - presentation'!
+
+label
+    "Return a label for this processor. This one is used as section label
+     in Spotter"
+
+    ^ 'Classes'
+
+    "Created: / 10-01-2015 / 06:41:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !ClassSearchProcessor methodsFor:'searching'!
 
 matchingObjectPOsFor: objects
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__CompositeProcessor.st	Sun Jan 11 06:38:54 2015 +0000
@@ -0,0 +1,204 @@
+"
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+Copyright (C) 2013-2014 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+"
+"{ Package: 'stx:goodies/smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+AbstractSearchProcessor subclass:#CompositeProcessor
+	instanceVariableNames:'processors'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Core-Interface-Search'
+!
+
+!CompositeProcessor class methodsFor:'documentation'!
+
+copyright
+"
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+Copyright (C) 2013-2014 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+"
+! !
+
+!CompositeProcessor class methodsFor:'instance creation'!
+
+with: processor1
+    ^ self withAll: (Array with: processor1)
+
+    "Created: / 10-01-2015 / 07:00:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+with: processor1 with: processor2
+    ^ self withAll: (Array with: processor1 with: processor2)
+
+    "Created: / 10-01-2015 / 07:00:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+with: processor1 with: processor2 with: processor3
+    ^ self withAll: (Array with: processor1 with: processor2 with: processor3)
+
+    "Created: / 10-01-2015 / 07:00:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+withAll: processors
+    ^ self new processors: processors
+
+    "Created: / 10-01-2015 / 07:00:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!CompositeProcessor methodsFor:'accessing'!
+
+processors
+    ^ processors
+!
+
+processors:aCollection
+    processors := aCollection asArray
+
+    "Modified: / 10-01-2015 / 06:59:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+recentlySearchedObjectPOs
+    | pos |
+
+    pos := OrderedCollection new: processors size.
+    processors do:[:processor  |
+        | bucket |
+
+        bucket := processor recentlySearchedObjectPOs.
+        bucket notEmptyOrNil ifTrue:[ 
+            | sectionPO bucketPOs|
+
+            sectionPO := PluggablePO new.
+            pos add: sectionPO.
+            sectionPO label: ((processor label bindWith: processor label with: bucket size) asText colorizeAllWith: Color gray).
+            sectionPO subject: self. "/ used as a marker that this is a group PO
+            bucketPOs := bucket.
+            bucketPOs do:[:e | e context: processor ].
+            false ifTrue:[ 
+                sectionPO children: bucketPOs.
+                sectionPO expand
+            ] ifFalse:[ 
+                pos addAll: bucketPOs.
+            ].
+
+
+
+        ].
+    ].
+    ^ pos
+
+    "Created: / 11-01-2015 / 06:25:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!CompositeProcessor methodsFor:'accessing - presentation'!
+
+label
+    "Return a label for this processor. This one is used as section label
+     in Spotter"
+
+    processors notEmptyOrNil ifTrue:[ 
+        processors size == 1 ifTrue:[ ^ processors anElement label ].
+        processors size == 2 ifTrue:[ ^ processors first label , ' & ' , processors second label ].
+        processors size == 2 ifTrue:[ ^ processors first label , ', ', processors second label, ' & ' , processors third label ].
+        ^ processors size , ' search processors'
+    ] ifFalse:[ 
+        ^ 'Empty'
+    ].
+
+    "Created: / 10-01-2015 / 06:44:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!CompositeProcessor methodsFor:'remembering'!
+
+rememberSearchObjectPO: po
+    po context rememberSearchObjectPO: po
+
+    "Created: / 11-01-2015 / 06:22:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!CompositeProcessor methodsFor:'searching'!
+
+matchingObjectPOsFor: objects
+    ^ self matchingObjectPOsFor: objects label: '%1 (%2 matches)'
+
+    "Created: / 10-01-2015 / 06:54:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-01-2015 / 06:24:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectPOsFor: objects label: label
+
+    | pos |
+
+    objects isEmptyOrNil ifTrue:[ ^ #() ].
+    pos := OrderedCollection new: processors size.
+    processors with: objects do:[:processor :bucket |
+        bucket notEmptyOrNil ifTrue:[ 
+            | sectionPO bucketPOs|
+
+            sectionPO := PluggablePO new.
+            pos add: sectionPO.
+            sectionPO label: ((label bindWith: processor label with: bucket size) asText colorizeAllWith: Color gray).
+            sectionPO subject: self. "/ used as a marker that this is a group PO
+            bucketPOs := processor matchingObjectPOsFor: bucket.
+            bucketPOs do:[:e | e context: processor ].
+            false ifTrue:[ 
+                sectionPO children: bucketPOs.
+                sectionPO expand
+            ] ifFalse:[ 
+                pos addAll: bucketPOs.
+            ].
+
+
+
+        ].
+    ].
+    ^ pos
+
+    "Created: / 11-01-2015 / 06:24:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectsForPattern:pattern filter: filter inEnvironment:environment
+    ^ (processors ? #()) collect: [ :processor | processor matchingObjectsForPattern:pattern filter: filter inEnvironment:environment ]
+
+    "Created: / 10-01-2015 / 06:47:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+matchingObjectsForPattern:pattern filter:filter inEnvironment:environment relax:level
+    "superclass SmallSense::AbstractSearchProcessor says that I am responsible to implement this method"
+
+    ^ self shouldNotImplement
+
+    "Created: / 10-01-2015 / 06:45:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__ImplementorSearchProcessor.st	Fri Jan 09 18:17:39 2015 +0000
+++ b/SmallSense__ImplementorSearchProcessor.st	Sun Jan 11 06:38:54 2015 +0000
@@ -50,6 +50,17 @@
 "
 ! !
 
+!ImplementorSearchProcessor methodsFor:'accessing - presentation'!
+
+label
+    "Return a label for this processor. This one is used as section label
+     in Spotter"
+
+    ^ 'Implementors'
+
+    "Created: / 10-01-2015 / 06:41:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !ImplementorSearchProcessor methodsFor:'searching'!
 
 matchingObjectPOsFor: objects
--- a/SmallSense__MethodSearchDialog.st	Fri Jan 09 18:17:39 2015 +0000
+++ b/SmallSense__MethodSearchDialog.st	Sun Jan 11 06:38:54 2015 +0000
@@ -121,18 +121,6 @@
     "Created: / 05-05-2014 / 23:39:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!MethodSearchDialog methodsFor:'change & update'!
-
-updateMatchingIgnorePattern
-    "/ There's a lot of method, do not display them all but
-    "/ rather display only recent selections.                   
-    "/ 
-    self updateMatchingObjectPOs: recentlySearchedObjectPOs asArray reversed.
-
-    "Created: / 12-12-2014 / 23:39:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 13-12-2014 / 08:29:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
 !MethodSearchDialog methodsFor:'initialization'!
 
 initialize  
@@ -142,12 +130,3 @@
     "Created: / 13-12-2014 / 08:46:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!MethodSearchDialog methodsFor:'queries'!
-
-canSelect: selection
-    ^ selection askFor: #isSmallSenseMethodPO.
-
-    "Created: / 22-04-2014 / 13:08:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 06-05-2014 / 00:27:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__Navigator.st	Sun Jan 11 06:38:54 2015 +0000
@@ -0,0 +1,63 @@
+"
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+Copyright (C) 2013-2014 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+"
+"{ Package: 'stx:goodies/smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+AbstractSearchDialog subclass:#Navigator
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Core-Interface-Search'
+!
+
+!Navigator class methodsFor:'documentation'!
+
+copyright
+"
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+Copyright (C) 2013-2014 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+"
+! !
+
+!Navigator methodsFor:'initialization'!
+
+initialize
+    super initialize.
+    processor := CompositeProcessor 
+                    with: ClassSearchProcessor new 
+                    with: ImplementorSearchProcessor new.
+
+    "Created: / 10-01-2015 / 07:03:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__PackageSelectDialog.st	Fri Jan 09 18:17:39 2015 +0000
+++ b/SmallSense__PackageSelectDialog.st	Sun Jan 11 06:38:54 2015 +0000
@@ -74,9 +74,10 @@
 canCreateMatchingObjectFromString:string 
     "Return true, a new object can be created with given string value"
     
-    ^ string allSatisfy:[:c | c isLetterOrDigit or:[ '_:/' includes:c ] ]
+    ^ string notNil and:[ string allSatisfy:[:c | c isLetterOrDigit or:[ '_:/' includes:c ] ] ]
 
     "Created: / 23-06-2014 / 15:15:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 10-01-2015 / 07:23:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 canSelect:selection
--- a/SmallSense__ProtocolSelectDialog.st	Fri Jan 09 18:17:39 2015 +0000
+++ b/SmallSense__ProtocolSelectDialog.st	Sun Jan 11 06:38:54 2015 +0000
@@ -74,10 +74,10 @@
 canCreateMatchingObjectFromString:string 
     "Return true, a new object can be created with given string value"
     
-    ^ string notEmptyOrNil and:[ string allSatisfy:[:c | c isLetterOrDigit or:[ '_:/ ' includes:c ] ] ]
+    ^ string notEmptyOrNil
 
     "Created: / 23-06-2014 / 15:15:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 09-01-2015 / 13:11:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 10-01-2015 / 13:36:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 canSelect:selection
--- a/abbrev.stc	Fri Jan 09 18:17:39 2015 +0000
+++ b/abbrev.stc	Sun Jan 11 06:38:54 2015 +0000
@@ -2,7 +2,9 @@
 # this file is needed for stc to be able to compile modules independently.
 # it provides information about a classes filename, category and especially namespace.
 SmallSense::AbstractDIalog SmallSense__AbstractDIalog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
-SmallSense::AbstractSearchProcessor SmallSense__AbstractSearchProcessor stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 0
+SmallSense::AbstractSearchProcessor SmallSense__AbstractSearchProcessor stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
+SmallSense::AbstractTestCase SmallSense__AbstractTestCase stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::BaseTestClass SmallSense__BaseTestClass stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
 SmallSense::CodeHighlightingService SmallSense__CodeHighlightingService stx:goodies/smallsense 'SmallSense-Core-Services' 0
 SmallSense::CodeNavigationService SmallSense__CodeNavigationService stx:goodies/smallsense 'SmallSense-Core-Services' 0
 SmallSense::CompletionContext SmallSense__CompletionContext stx:goodies/smallsense 'SmallSense-Core' 0
@@ -14,6 +16,7 @@
 SmallSense::EditService SmallSense__EditService stx:goodies/smallsense 'SmallSense-Core-Services' 0
 SmallSense::EditSupport SmallSense__EditSupport stx:goodies/smallsense 'SmallSense-Core-Services' 0
 SmallSense::Info SmallSense__Info stx:goodies/smallsense 'SmallSense-Smalltalk-Types-Info' 0
+SmallSense::JavaCompletionEngineEnvironmentResource SmallSense__JavaCompletionEngineEnvironmentResource stx:goodies/smallsense 'SmallSense-Tests' 1
 SmallSense::Manager SmallSense__Manager stx:goodies/smallsense 'SmallSense-Smalltalk-Types-Info' 0
 SmallSense::PO SmallSense__PO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
 SmallSense::ParseTreeIndex SmallSense__ParseTreeIndex stx:goodies/smallsense 'SmallSense-Core-Index' 0
@@ -29,7 +32,9 @@
 SmallSense::SmalltalkQuickFixer SmallSense__SmalltalkQuickFixer stx:goodies/smallsense 'SmallSense-Smalltalk-Lint' 0
 SmallSense::SmalltalkSyntaxHighlighter SmallSense__SmalltalkSyntaxHighlighter stx:goodies/smallsense 'SmallSense-Smalltalk' 3
 SmallSense::SmalltalkUnacceptedMethodEnvironment SmallSense__SmalltalkUnacceptedMethodEnvironment stx:goodies/smallsense 'SmallSense-Smalltalk-Lint' 0
+SmallSense::TestCase SmallSense__TestCase stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
 SmallSense::TokenPatternMatcher SmallSense__TokenPatternMatcher stx:goodies/smallsense 'SmallSense-Utils-Matcher' 0
+SmallSense::TokenPatternMatcherTests SmallSense__TokenPatternMatcherTests stx:goodies/smallsense 'SmallSense-Tests' 1
 SmallSense::TokenPatternParser SmallSense__TokenPatternParser stx:goodies/smallsense 'SmallSense-Utils-Matcher' 0
 SmallSense::TokenPatternToken SmallSense__TokenPatternToken stx:goodies/smallsense 'SmallSense-Utils-Matcher' 0
 SmallSense::TokenPatternTokenSet SmallSense__TokenPatternTokenSet stx:goodies/smallsense 'SmallSense-Utils-Matcher' 0
@@ -41,11 +46,15 @@
 SmallSense::AbstractListDialog SmallSense__AbstractListDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
 SmallSense::ClassInfo SmallSense__ClassInfo stx:goodies/smallsense 'SmallSense-Smalltalk-Types-Info' 0
 SmallSense::ClassPO SmallSense__ClassPO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
-SmallSense::ClassSearchProcessor SmallSense__ClassSearchProcessor stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 0
+SmallSense::ClassSearchProcessor SmallSense__ClassSearchProcessor stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
 SmallSense::ClassType SmallSense__ClassType stx:goodies/smallsense 'SmallSense-Smalltalk-Types' 0
+SmallSense::CompletionEngineTests SmallSense__CompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::CompositeProcessor SmallSense__CompositeProcessor stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
 SmallSense::ConstantPO SmallSense__ConstantPO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
+SmallSense::EditSupportTests SmallSense__EditSupportTests stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::FinderTests SmallSense__FinderTests stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
 SmallSense::GenericEditSupport SmallSense__GenericEditSupport stx:goodies/smallsense 'SmallSense-Core-Services' 0
-SmallSense::ImplementorSearchProcessor SmallSense__ImplementorSearchProcessor stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 0
+SmallSense::ImplementorSearchProcessor SmallSense__ImplementorSearchProcessor stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
 SmallSense::JavaEditSupport SmallSense__JavaEditSupport stx:goodies/smallsense 'SmallSense-Java' 0
 SmallSense::JavaImportPO SmallSense__JavaImportPO stx:goodies/smallsense 'SmallSense-Java-Interface-PO' 0
 SmallSense::MethodBindingPO SmallSense__MethodBindingPO stx:goodies/smallsense 'SmallSense-Java-Interface-PO' 0
@@ -53,41 +62,34 @@
 SmallSense::MethodPO SmallSense__MethodPO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
 SmallSense::PackagePO SmallSense__PackagePO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
 SmallSense::PluggablePO SmallSense__PluggablePO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
+SmallSense::RecognizerTests SmallSense__RecognizerTests stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
 SmallSense::SmalltalkCompletionEngine SmallSense__SmalltalkCompletionEngine stx:goodies/smallsense 'SmallSense-Smalltalk' 0
 SmallSense::SmalltalkEditSupport SmallSense__SmalltalkEditSupport stx:goodies/smallsense 'SmallSense-Smalltalk' 0
 SmallSense::SmalltalkInferencer SmallSense__SmalltalkInferencer stx:goodies/smallsense 'SmallSense-Smalltalk-Types-Inference' 0
 SmallSense::SmalltalkParseNodeFinder SmallSense__SmalltalkParseNodeFinder stx:goodies/smallsense 'SmallSense-Smalltalk' 0
+SmallSense::SmalltalkParserTests SmallSense__SmalltalkParserTests stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
 SmallSense::SnippetPO SmallSense__SnippetPO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
 SmallSense::UnionType SmallSense__UnionType stx:goodies/smallsense 'SmallSense-Smalltalk-Types' 0
 SmallSense::UnknownType SmallSense__UnknownType stx:goodies/smallsense 'SmallSense-Smalltalk-Types' 1
 SmallSense::VariableBindingPO SmallSense__VariableBindingPO stx:goodies/smallsense 'SmallSense-Java-Interface-PO' 0
 SmallSense::VariablePO SmallSense__VariablePO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
 SmallSense::AbstractJavaCompletionEngineSimple SmallSense__AbstractJavaCompletionEngineSimple stx:goodies/smallsense 'SmallSense-Java' 2
-SmallSense::AbstractSearchDialog SmallSense__AbstractSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 3
+SmallSense::AbstractJavaCompletionEngineTests SmallSense__AbstractJavaCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::AbstractSearchDialog SmallSense__AbstractSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 2
 SmallSense::AbstractSelectDialog SmallSense__AbstractSelectDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
 SmallSense::GroovyEditSupport SmallSense__GroovyEditSupport stx:goodies/smallsense 'SmallSense-Groovy' 0
 SmallSense::JavaCompletionEngine SmallSense__JavaCompletionEngine stx:goodies/smallsense 'SmallSense-Java' 0
 SmallSense::JavaConstructorPO SmallSense__JavaConstructorPO stx:goodies/smallsense 'SmallSense-Java-Interface-PO' 0
+SmallSense::JavaEditSupportTests SmallSense__JavaEditSupportTests stx:goodies/smallsense 'SmallSense-Tests' 1
 SmallSense::MethodKeywordRestPO SmallSense__MethodKeywordRestPO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
-SmallSense::ClassSearchDialog SmallSense__ClassSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 3
+SmallSense::SmalltalkCompletionEngineTests SmallSense__SmalltalkCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::SmalltalkEditSupportTests SmallSense__SmalltalkEditSupportTests stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::ClassSearchDialog SmallSense__ClassSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 2
+SmallSense::GroovyCompletionEngineSimpleTests SmallSense__GroovyCompletionEngineSimpleTests stx:goodies/smallsense 'SmallSense-Tests' 1
 SmallSense::JavaCompletionEngineSimple SmallSense__JavaCompletionEngineSimple stx:goodies/smallsense 'SmallSense-Java' 2
-SmallSense::MethodSearchDialog SmallSense__MethodSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 3
+SmallSense::JavaCompletionEngineTests SmallSense__JavaCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::MethodSearchDialog SmallSense__MethodSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 2
+SmallSense::Navigator SmallSense__Navigator stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 2
 SmallSense::PackageSelectDialog SmallSense__PackageSelectDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
 SmallSense::ProtocolSelectDialog SmallSense__ProtocolSelectDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
 SmallSense::GroovyCompletionEngineSimple SmallSense__GroovyCompletionEngineSimple stx:goodies/smallsense 'SmallSense-Groovy' 2
-SmallSense::AbstractTestCase SmallSense__AbstractTestCase stx:goodies/smallsense 'SmallSense-Tests' 1
-SmallSense::TestCase SmallSense__TestCase stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
-SmallSense::CompletionEngineTests SmallSense__CompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
-SmallSense::AbstractJavaCompletionEngineTests SmallSense__AbstractJavaCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
-SmallSense::BaseTestClass SmallSense__BaseTestClass stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
-SmallSense::EditSupportTests SmallSense__EditSupportTests stx:goodies/smallsense 'SmallSense-Tests' 1
-SmallSense::FinderTests SmallSense__FinderTests stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
-SmallSense::GroovyCompletionEngineSimpleTests SmallSense__GroovyCompletionEngineSimpleTests stx:goodies/smallsense 'SmallSense-Tests' 1
-SmallSense::JavaCompletionEngineEnvironmentResource SmallSense__JavaCompletionEngineEnvironmentResource stx:goodies/smallsense 'SmallSense-Tests' 1
-SmallSense::JavaCompletionEngineTests SmallSense__JavaCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
-SmallSense::JavaEditSupportTests SmallSense__JavaEditSupportTests stx:goodies/smallsense 'SmallSense-Tests' 1
-SmallSense::RecognizerTests SmallSense__RecognizerTests stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
-SmallSense::SmalltalkCompletionEngineTests SmallSense__SmalltalkCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
-SmallSense::SmalltalkEditSupportTests SmallSense__SmalltalkEditSupportTests stx:goodies/smallsense 'SmallSense-Tests' 1
-SmallSense::SmalltalkParserTests SmallSense__SmalltalkParserTests stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
-SmallSense::TokenPatternMatcherTests SmallSense__TokenPatternMatcherTests stx:goodies/smallsense 'SmallSense-Tests' 1
--- a/bc.mak	Fri Jan 09 18:17:39 2015 +0000
+++ b/bc.mak	Sun Jan 11 06:38:54 2015 +0000
@@ -35,7 +35,7 @@
 
 
 
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser -I$(INCLUDE_TOP)\stx\goodies\regex -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libjava -I$(INCLUDE_TOP)\stx\libjava\tools -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser -I$(INCLUDE_TOP)\stx\goodies\regex -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libjava -I$(INCLUDE_TOP)\stx\libjava\tools -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libwidg2
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
@@ -62,6 +62,7 @@
 	pushd ..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\refactoryBrowser\browser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\refactoryBrowser\lint & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\libhtml & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
@@ -125,6 +126,7 @@
 $(OUTDIR)SmallSense__ClassPO.$(O) SmallSense__ClassPO.$(H): SmallSense__ClassPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ClassSearchProcessor.$(O) SmallSense__ClassSearchProcessor.$(H): SmallSense__ClassSearchProcessor.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSearchProcessor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ClassType.$(O) SmallSense__ClassType.$(H): SmallSense__ClassType.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__Type.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__CompositeProcessor.$(O) SmallSense__CompositeProcessor.$(H): SmallSense__CompositeProcessor.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSearchProcessor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ConstantPO.$(O) SmallSense__ConstantPO.$(H): SmallSense__ConstantPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__GenericEditSupport.$(O) SmallSense__GenericEditSupport.$(H): SmallSense__GenericEditSupport.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__EditSupport.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ImplementorSearchProcessor.$(O) SmallSense__ImplementorSearchProcessor.$(H): SmallSense__ImplementorSearchProcessor.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSearchProcessor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -154,6 +156,7 @@
 $(OUTDIR)SmallSense__ClassSearchDialog.$(O) SmallSense__ClassSearchDialog.$(H): SmallSense__ClassSearchDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSearchDialog.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__JavaCompletionEngineSimple.$(O) SmallSense__JavaCompletionEngineSimple.$(H): SmallSense__JavaCompletionEngineSimple.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__MethodSearchDialog.$(O) SmallSense__MethodSearchDialog.$(H): SmallSense__MethodSearchDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSearchDialog.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__Navigator.$(O) SmallSense__Navigator.$(H): SmallSense__Navigator.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSearchDialog.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__PackageSelectDialog.$(O) SmallSense__PackageSelectDialog.$(H): SmallSense__PackageSelectDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSelectDialog.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ProtocolSelectDialog.$(O) SmallSense__ProtocolSelectDialog.$(H): SmallSense__ProtocolSelectDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSelectDialog.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__GroovyCompletionEngineSimple.$(O) SmallSense__GroovyCompletionEngineSimple.$(H): SmallSense__GroovyCompletionEngineSimple.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__JavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/extensions.st	Fri Jan 09 18:17:39 2015 +0000
+++ b/extensions.st	Sun Jan 11 06:38:54 2015 +0000
@@ -714,6 +714,45 @@
     "Created: / 09-01-2015 / 10:44:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!Tools::NewSystemBrowser methodsFor:'user actions-events-SmallSense'!
+
+stx_goodies_smallsense_processEvent:anEvent
+
+    <swizzle: #processEvent:>
+
+    UserPreferences current smallSenseNewDialogsEnabled ifTrue:[ 
+        anEvent isKeyPressEvent ifTrue:[
+            | key |
+
+            key := anEvent key.
+            key == #Find ifTrue:[ 
+                (anEvent targetView isSameOrComponentOf:self codeView) ifFalse:[ 
+                    | result |    
+
+                    result := SmallSense::Navigator open.
+                    result isBehavior ifTrue:[ 
+                        self switchToClass: result.
+                        ^ true
+                    ].
+                    result isMethod ifTrue:[ 
+                        self switchToClass: result mclass selector: result selector.
+                        ^ true
+                    ].
+                    ^ true
+                ].
+            ].
+        ]
+    ].
+    ^ self stx_libtool_processEvent:anEvent
+
+    "
+    stx_goodies_smallsense swizzle: (Tools::NewSystemBrowser >> #stx_goodies_smallsense_processEvent:)
+    "
+
+    "Created: / 10-01-2015 / 13:37:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 10-01-2015 / 15:23:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !Tools::NewSystemBrowser class methodsFor:'utilities'!
 
 stx_goodies_smallsense_askForClassToSearch:doWhatByDefault single:singleClass msgTail:msgTail resources:resourcesOrNil filter:filterOrNil forBrowser:aBrowserOrNil thenDo:aBlock
--- a/libInit.cc	Fri Jan 09 18:17:39 2015 +0000
+++ b/libInit.cc	Sun Jan 11 06:38:54 2015 +0000
@@ -69,6 +69,7 @@
 _SmallSense__ClassPO_Init(pass,__pRT__,snd);
 _SmallSense__ClassSearchProcessor_Init(pass,__pRT__,snd);
 _SmallSense__ClassType_Init(pass,__pRT__,snd);
+_SmallSense__CompositeProcessor_Init(pass,__pRT__,snd);
 _SmallSense__ConstantPO_Init(pass,__pRT__,snd);
 _SmallSense__GenericEditSupport_Init(pass,__pRT__,snd);
 _SmallSense__ImplementorSearchProcessor_Init(pass,__pRT__,snd);
@@ -98,6 +99,7 @@
 _SmallSense__ClassSearchDialog_Init(pass,__pRT__,snd);
 _SmallSense__JavaCompletionEngineSimple_Init(pass,__pRT__,snd);
 _SmallSense__MethodSearchDialog_Init(pass,__pRT__,snd);
+_SmallSense__Navigator_Init(pass,__pRT__,snd);
 _SmallSense__PackageSelectDialog_Init(pass,__pRT__,snd);
 _SmallSense__ProtocolSelectDialog_Init(pass,__pRT__,snd);
 _SmallSense__GroovyCompletionEngineSimple_Init(pass,__pRT__,snd);
--- a/smallsense.rc	Fri Jan 09 18:17:39 2015 +0000
+++ b/smallsense.rc	Sun Jan 11 06:38:54 2015 +0000
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Jan Vrany 2013-2014\0"
       VALUE "ProductName", "SmallSense\0"
       VALUE "ProductVersion", "6.2.5.0\0"
-      VALUE "ProductDate", "Fri, 09 Jan 2015 16:22:06 GMT\0"
+      VALUE "ProductDate", "Sun, 11 Jan 2015 06:38:01 GMT\0"
     END
 
   END
--- a/stx_goodies_smallsense.st	Fri Jan 09 18:17:39 2015 +0000
+++ b/stx_goodies_smallsense.st	Sun Jan 11 06:38:54 2015 +0000
@@ -90,7 +90,8 @@
         #'stx:goodies/refactoryBrowser/lint'    "RBBasicLintRule - extended"
         #'stx:goodies/refactoryBrowser/parser'    "RBBlockNode - extended"
         #'stx:goodies/regex'    "Regex::RxCharSetParser - superclass of SmallSense::TokenPatternParser::TokenSpecParser"
-        #'stx:libbasic'    "Autoload - superclass of SmallSense::AbstractJavaCompletionEngineTests"
+        #'stx:goodies/sunit'    "TestAsserter - superclass of SmallSense::AbstractJavaCompletionEngineTests"
+        #'stx:libbasic'    "Collection - extended"
         #'stx:libcomp'    "AbstractSyntaxHighlighter - superclass of SmallSense::SmalltalkParser"
         #'stx:libhtml'    "HTMLDocumentFrame - extended"
         #'stx:libtool'    "AbstractSettingsApplication - superclass of SmallSense::SettingsAppl"
@@ -138,6 +139,8 @@
         "<className> or (<className> attributes...) in load order"
         #'SmallSense::AbstractDIalog'
         #'SmallSense::AbstractSearchProcessor'
+        (#'SmallSense::AbstractTestCase' autoload)
+        (#'SmallSense::BaseTestClass' autoload)
         #'SmallSense::CodeHighlightingService'
         #'SmallSense::CodeNavigationService'
         #'SmallSense::CompletionContext'
@@ -149,6 +152,7 @@
         #'SmallSense::EditService'
         #'SmallSense::EditSupport'
         #'SmallSense::Info'
+        (#'SmallSense::JavaCompletionEngineEnvironmentResource' autoload)
         #'SmallSense::Manager'
         #'SmallSense::PO'
         #'SmallSense::ParseTreeIndex'
@@ -164,7 +168,9 @@
         #'SmallSense::SmalltalkQuickFixer'
         #'SmallSense::SmalltalkSyntaxHighlighter'
         #'SmallSense::SmalltalkUnacceptedMethodEnvironment'
+        (#'SmallSense::TestCase' autoload)
         #'SmallSense::TokenPatternMatcher'
+        (#'SmallSense::TokenPatternMatcherTests' autoload)
         #'SmallSense::TokenPatternParser'
         #'SmallSense::TokenPatternToken'
         #'SmallSense::TokenPatternTokenSet'
@@ -178,7 +184,11 @@
         #'SmallSense::ClassPO'
         #'SmallSense::ClassSearchProcessor'
         #'SmallSense::ClassType'
+        (#'SmallSense::CompletionEngineTests' autoload)
+        #'SmallSense::CompositeProcessor'
         #'SmallSense::ConstantPO'
+        (#'SmallSense::EditSupportTests' autoload)
+        (#'SmallSense::FinderTests' autoload)
         #'SmallSense::GenericEditSupport'
         #'SmallSense::ImplementorSearchProcessor'
         #'SmallSense::JavaEditSupport'
@@ -188,47 +198,38 @@
         #'SmallSense::MethodPO'
         #'SmallSense::PackagePO'
         #'SmallSense::PluggablePO'
+        (#'SmallSense::RecognizerTests' autoload)
         #'SmallSense::SmalltalkCompletionEngine'
         #'SmallSense::SmalltalkEditSupport'
         #'SmallSense::SmalltalkInferencer'
         #'SmallSense::SmalltalkParseNodeFinder'
+        (#'SmallSense::SmalltalkParserTests' autoload)
         #'SmallSense::SnippetPO'
         #'SmallSense::UnionType'
         #'SmallSense::UnknownType'
         #'SmallSense::VariableBindingPO'
         #'SmallSense::VariablePO'
         #'SmallSense::AbstractJavaCompletionEngineSimple'
+        (#'SmallSense::AbstractJavaCompletionEngineTests' autoload)
         #'SmallSense::AbstractSearchDialog'
         #'SmallSense::AbstractSelectDialog'
         #'SmallSense::GroovyEditSupport'
         #'SmallSense::JavaCompletionEngine'
         #'SmallSense::JavaConstructorPO'
+        (#'SmallSense::JavaEditSupportTests' autoload)
         #'SmallSense::MethodKeywordRestPO'
+        (#'SmallSense::SmalltalkCompletionEngineTests' autoload)
+        (#'SmallSense::SmalltalkEditSupportTests' autoload)
         #'SmallSense::ClassSearchDialog'
+        (#'SmallSense::GroovyCompletionEngineSimpleTests' autoload)
         #'SmallSense::JavaCompletionEngineSimple'
+        (#'SmallSense::JavaCompletionEngineTests' autoload)
         #'SmallSense::MethodSearchDialog'
+        #'SmallSense::Navigator'
         #'SmallSense::PackageSelectDialog'
         #'SmallSense::ProtocolSelectDialog'
         #'SmallSense::GroovyCompletionEngineSimple'
-        (#'SmallSense::AbstractTestCase' autoload)
-        (#'SmallSense::TestCase' autoload)
-        (#'SmallSense::CompletionEngineTests' autoload)
-        (#'SmallSense::AbstractJavaCompletionEngineTests' autoload)
-        (#'SmallSense::BaseTestClass' autoload)
-        (#'SmallSense::EditSupportTests' autoload)
-        (#'SmallSense::FinderTests' autoload)
-        (#'SmallSense::GroovyCompletionEngineSimpleTests' autoload)
-        (#'SmallSense::JavaCompletionEngineEnvironmentResource' autoload)
-        (#'SmallSense::JavaCompletionEngineTests' autoload)
-        (#'SmallSense::JavaEditSupportTests' autoload)
-        (#'SmallSense::RecognizerTests' autoload)
-        (#'SmallSense::SmalltalkCompletionEngineTests' autoload)
-        (#'SmallSense::SmalltalkEditSupportTests' autoload)
-        (#'SmallSense::SmalltalkParserTests' autoload)
-        (#'SmallSense::TokenPatternMatcherTests' autoload)
     )
-
-    "Modified: / 09-01-2015 / 16:21:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 extensionMethodNames
@@ -300,6 +301,7 @@
         #'Tools::LintService' buttonPress:x:y:in:
         #'Tools::LintService' showInfoWindowForLine:
         #'Tools::NewSystemBrowser' #'stx_goodies_smallsense_askForMethodCategory:title:okLabel:list:recentList:initialAnswer:'
+        #'Tools::NewSystemBrowser' #'stx_goodies_smallsense_processEvent:'
     )
 ! !