Merged b1170c3a4585 and f65e37b6bd77
authorJan Vrany <jan.vrany@fit.cvut.cz>
Wed, 01 Oct 2014 23:44:32 +0100
changeset 354 cbffe76c9b5a
parent 353 b1170c3a4585 (current diff)
parent 287 f65e37b6bd77 (diff)
child 355 c5b093508242
Merged b1170c3a4585 and f65e37b6bd77
Make.proto
Make.spec
SmallSense__ClassPO.st
SmallSense__ConstantPO.st
SmallSense__GroovyCompletionEngineSimple.st
SmallSense__MethodPO.st
SmallSense__PO.st
SmallSense__SettingsAppl.st
SmallSense__SmalltalkEditSupport.st
SmallSense__TestCase.st
SmallSense__TokenPatternParser.st
SmallSense__VariablePO.st
abbrev.stc
bc.mak
extensions.st
libInit.cc
smallsense.rc
stx_goodies_smallsense.st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.hgtags	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,5 @@
+a27be88be57fe3d2ec05f2c08cf9baa9f22c7a14 expecco_2_7_0
+a27be88be57fe3d2ec05f2c08cf9baa9f22c7a14 expecco_2_7_0
+feba6ee5c81409691496b92dabd87217d18adf11 expecco_2_7_0
+feba6ee5c81409691496b92dabd87217d18adf11 expecco_2_7_0
+3542abc630fa233edd1aae6244227ae417c69ea5 expecco_2_7_0
--- a/Make.proto	Wed Jul 09 12:23:50 2014 +0100
+++ b/Make.proto	Wed Oct 01 23:44:32 2014 +0100
@@ -17,7 +17,7 @@
 #
 # position (of this package) in directory hierarchy:
 # (must point to ST/X top directory, for tools and includes)
-TOP=../../../stx
+TOP=../..
 INCLUDE_TOP=$(TOP)/..
 
 # subdirectories where targets are to be made:
@@ -123,23 +123,23 @@
 
 # build all mandatory prerequisite packages (containing superclasses) for this package
 prereq:
-	cd $(TOP)/libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/goodies/refactoryBrowser/helpers && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/goodies/refactoryBrowser/parser && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/goodies/regex && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/libcomp && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/libui && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/goodies/refactoryBrowser/browser && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/libwidg && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/goodies/refactoryBrowser/lint && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/libhtml && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/libwidg2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/libtool && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../refactoryBrowser/helpers && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../refactoryBrowser/parser && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../regex && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libcomp && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libui && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	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)"
+	cd ../../libwidg2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libtool && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 
 
 
@@ -173,7 +173,7 @@
 $(OUTDIR)SmallSense__Info.$(O) SmallSense__Info.$(H): SmallSense__Info.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__Manager.$(O) SmallSense__Manager.$(H): SmallSense__Manager.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__PO.$(O) SmallSense__PO.$(H): SmallSense__PO.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__ParseTreeIndex.$(O) SmallSense__ParseTreeIndex.$(H): SmallSense__ParseTreeIndex.st $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/OrderedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SortedCollection.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__ParseTreeIndex.$(O) SmallSense__ParseTreeIndex.$(H): SmallSense__ParseTreeIndex.st $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/OrderedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ParseTreeIndexEntry.$(O) SmallSense__ParseTreeIndexEntry.$(H): SmallSense__ParseTreeIndexEntry.st $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ParseTreeInspector.$(O) SmallSense__ParseTreeInspector.$(H): SmallSense__ParseTreeInspector.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SelectorNode.$(O) SmallSense__SelectorNode.$(H): SmallSense__SelectorNode.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(STCHDR)
@@ -205,9 +205,9 @@
 $(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__JavaEditSupport.$(O) SmallSense__JavaEditSupport.$(H): SmallSense__JavaEditSupport.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__EditSupport.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__JavaImportPO.$(O) SmallSense__JavaImportPO.$(H): SmallSense__JavaImportPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__MethodBindingPO.$(O) SmallSense__MethodBindingPO.$(H): SmallSense__MethodBindingPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__MethodInfo.$(O) SmallSense__MethodInfo.$(H): SmallSense__MethodInfo.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__Info.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__MethodPO.$(O) SmallSense__MethodPO.$(H): SmallSense__MethodPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__PackagePO.$(O) SmallSense__PackagePO.$(H): SmallSense__PackagePO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkCompletionEngine.$(O) SmallSense__SmalltalkCompletionEngine.$(H): SmallSense__SmalltalkCompletionEngine.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkEditSupport.$(O) SmallSense__SmalltalkEditSupport.$(H): SmallSense__SmalltalkEditSupport.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__EditSupport.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkInferencer.$(O) SmallSense__SmalltalkInferencer.$(H): SmallSense__SmalltalkInferencer.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__SmalltalkParseNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -215,13 +215,18 @@
 $(OUTDIR)SmallSense__SnippetPO.$(O) SmallSense__SnippetPO.$(H): SmallSense__SnippetPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__UnionType.$(O) SmallSense__UnionType.$(H): SmallSense__UnionType.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__SmalltalkInferencerParameters.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__Type.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__UnknownType.$(O) SmallSense__UnknownType.$(H): SmallSense__UnknownType.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__Type.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__VariableBindingPO.$(O) SmallSense__VariableBindingPO.$(H): SmallSense__VariableBindingPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__VariablePO.$(O) SmallSense__VariablePO.$(H): SmallSense__VariablePO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__AbstractJavaCompletionEngineSimple.$(O) SmallSense__AbstractJavaCompletionEngineSimple.$(H): SmallSense__AbstractJavaCompletionEngineSimple.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__ClassSearchDialog.$(O) SmallSense__ClassSearchDialog.$(H): SmallSense__ClassSearchDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(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__GroovyEditSupport.$(O) SmallSense__GroovyEditSupport.$(H): SmallSense__GroovyEditSupport.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__EditSupport.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__JavaEditSupport.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__JavaCompletionEngine.$(O) SmallSense__JavaCompletionEngine.$(H): SmallSense__JavaCompletionEngine.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__JavaConstructorPO.$(O) SmallSense__JavaConstructorPO.$(H): SmallSense__JavaConstructorPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__MethodPO.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__MethodKeywordRestPO.$(O) SmallSense__MethodKeywordRestPO.$(H): SmallSense__MethodKeywordRestPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__MethodPO.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(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__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)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBTransformationRule.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Method.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libcomp/AssignmentNode.$(H) $(INCLUDE_TOP)/stx/libcomp/BlockNode.$(H) $(INCLUDE_TOP)/stx/libcomp/MessageNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseErrorNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimaryNode.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimitiveNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ReturnNode.$(H) $(INCLUDE_TOP)/stx/libcomp/StatementNode.$(H) $(INCLUDE_TOP)/stx/libcomp/VariableNode.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentFrame.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentView.$(H) $(INCLUDE_TOP)/stx/libtool/SystemBrowser.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeCompletionService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeViewService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NavigationState.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextViewCompletionSupport.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextCollector.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(INCLUDE_TOP)/stx/libwidg/Workspace.$(H) $(INCLUDE_TOP)/stx/libwidg2/DoWhatIMeanSupport.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__ClassSearchDialog.$(O) SmallSense__ClassSearchDialog.$(H): SmallSense__ClassSearchDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(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__MethodKeywordRestPO.$(O) SmallSense__MethodKeywordRestPO.$(H): SmallSense__MethodKeywordRestPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__MethodPO.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(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__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__PackageSearchDialog.$(O) SmallSense__PackageSearchDialog.$(H): SmallSense__PackageSearchDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(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)
--- a/Make.spec	Wed Jul 09 12:23:50 2014 +0100
+++ b/Make.spec	Wed Oct 01 23:44:32 2014 +0100
@@ -96,6 +96,7 @@
 	SmallSense::GenericEditSupport \
 	SmallSense::JavaEditSupport \
 	SmallSense::JavaImportPO \
+	SmallSense::MethodBindingPO \
 	SmallSense::MethodInfo \
 	SmallSense::MethodPO \
 	SmallSense::PackagePO \
@@ -106,6 +107,7 @@
 	SmallSense::SnippetPO \
 	SmallSense::UnionType \
 	SmallSense::UnknownType \
+	SmallSense::VariableBindingPO \
 	SmallSense::VariablePO \
 	SmallSense::AbstractJavaCompletionEngineSimple \
 	SmallSense::ClassSearchDialog \
@@ -168,6 +170,7 @@
     $(OUTDIR_SLASH)SmallSense__GenericEditSupport.$(O) \
     $(OUTDIR_SLASH)SmallSense__JavaEditSupport.$(O) \
     $(OUTDIR_SLASH)SmallSense__JavaImportPO.$(O) \
+    $(OUTDIR_SLASH)SmallSense__MethodBindingPO.$(O) \
     $(OUTDIR_SLASH)SmallSense__MethodInfo.$(O) \
     $(OUTDIR_SLASH)SmallSense__MethodPO.$(O) \
     $(OUTDIR_SLASH)SmallSense__PackagePO.$(O) \
@@ -178,6 +181,7 @@
     $(OUTDIR_SLASH)SmallSense__SnippetPO.$(O) \
     $(OUTDIR_SLASH)SmallSense__UnionType.$(O) \
     $(OUTDIR_SLASH)SmallSense__UnknownType.$(O) \
+    $(OUTDIR_SLASH)SmallSense__VariableBindingPO.$(O) \
     $(OUTDIR_SLASH)SmallSense__VariablePO.$(O) \
     $(OUTDIR_SLASH)SmallSense__AbstractJavaCompletionEngineSimple.$(O) \
     $(OUTDIR_SLASH)SmallSense__ClassSearchDialog.$(O) \
--- a/README.md	Wed Jul 09 12:23:50 2014 +0100
+++ b/README.md	Wed Oct 01 23:44:32 2014 +0100
@@ -2,26 +2,27 @@
 
 *Developer's productivity plugin for Smalltalk/X IDE.*
 
-## About 
+## About
 
 **SmallSense** is a set of tools that speed up development and make
 Smalltalk programming even more fun. Features:
 
-* **Code-completion** -- a fast code completion system for Smalltalk using both static and runtime type inference. 
-* **Syntax-driven editing** -- a nice little feature that helps you with editing and formatting the code, all syntax- and formate-preferences aware! 
+* **Code-completion** -- a fast code completion system for Smalltalk using both static and runtime type inference.
+* **Syntax-driven editing** -- a nice little feature that helps you with editing and formatting the code, all syntax- and formater-preferences aware!
 * **Instant static analysis** -- to detect & fix common errors and code smells as you type
 
 There are many more features already on the TODO list :-) Besides, *SmallSense*
-provides a common infrastructure to implement support for other languages as well.
+provides (limited) support for Java anf Groovy as well (to be used together with
+[STX:LIBJAVA](https://swing.fit.cvut.cz/projects/stx-libjava))
 
 ## Installation
 
-Just download and compile the package. Then, load the package into running Smalltalk/X IDE: 
+Just download and compile the package. Then, load the package into running Smalltalk/X IDE:
 
-    Smalltalk loadPackage:`jv:smallsense`
+    Smalltalk loadPackage:'stx:goodies/smallsense'
 
-*Note*: In Smalltalk/X jv-branch, SmallSense is already included so no need to 
-download and load.   
+*Note*: In [Smalltalk/X jv-branch](https://swing.fit.cvut.cz/projects/stx-jv), SmallSense is already included so no need to
+download and load.
 
 ## Authors
 
@@ -31,8 +32,18 @@
 
 Contributors:
 
-* Jakub Zelenka (first version of code completion, type inference and syntax-error tolerant Smalltalk parser) 
+* Jakub Zelenka (first version of code completion, type inference and syntax-error tolerant Smalltalk parser)
+
+## License
+
+The SmallSense is available under GNU Lesser General Public License.
+Please find full text of the license in file license.txt.
+For other licensing options, please contact the SmallSense author at
+jan.vrany { at } fit.cvut.cz.
 
 
 
 
+
+
+
--- a/SmallSense__AbstractJavaCompletionEngine.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__AbstractJavaCompletionEngine.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,29 @@
 	category:'SmallSense-Java'
 !
 
+!AbstractJavaCompletionEngine 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
+"
+! !
+
 !AbstractJavaCompletionEngine class methodsFor:'queries'!
 
 isAbstract
@@ -22,42 +63,68 @@
 !AbstractJavaCompletionEngine methodsFor:'completion-individual'!
 
 addClassesStartingWith: prefix
-    ^ self addClassesStartingWith: prefix fullName: false
+    ^ self addClassesStartingWith:prefix matchFullName:false
 
     "Created: / 03-10-2013 / 11:16:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 15-05-2014 / 07:25:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-addClassesStartingWith: prefixArg fullName: matchFullName
+addClassesStartingWith:prefixArg filter: filter
+    ^ self addClassesStartingWith:prefixArg matchFullName:false filter: filter
+
+    "Created: / 07-08-2014 / 15:04:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+addClassesStartingWith:prefixArg matchFullName:matchFullName 
+    ^ self addClassesStartingWith:prefixArg matchFullName:matchFullName filter: nil
+
+    "Created: / 15-05-2014 / 07:24:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 15:03:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+addClassesStartingWith:prefixArg matchFullName:matchFullName filter: filter 
     | prefix |
 
     prefix := prefixArg.
     matchFullName ifTrue:[
-        prefix := prefix copyReplaceAll: $. with: $/.
+        prefix := prefix copyReplaceAll:$. with:$/.
     ].
-    context environment allClassesDo: [:cls |
-        cls isJavaClass ifTrue:[
-            | name i |
+    context environment 
+        allClassesDo:[:cls | 
+            (cls isJavaClass and:[ cls isAnonymous not and:[filter isNil or:[filter value: cls]]]) ifTrue:[
+                | name  i |
 
-            matchFullName ifTrue:[
-                (cls binaryName startsWith: prefix) ifTrue:[
-                    result add: ((PO forClas: cls) showPrefix: true; yourself).
+                matchFullName ifTrue:[
+                    (prefix isEmpty or:[cls binaryName startsWith:prefix]) ifTrue:[
+                        result add:((PO forClass:cls)
+                                    showPrefix:true;
+                                    yourself).
+                    ].
+                ] ifFalse:[
+                    name := cls lastName.
+                    i := name lastIndexOf:$/.
+                    prefix isEmptyOrNil ifTrue:[ 
+                        result add:(PO forClass:cls).
+                    ] ifFalse:[
+                        ((name size >= (i + prefix size)) 
+                            and:[
+                                (name at:i + 1) == prefix first 
+                                    and:[
+                                        (name at:i + prefix size) == prefix last 
+                                            and:[
+                                                (2 to:prefix size - 1) 
+                                                    allSatisfy:[:o | (name at:i + o) == (prefix at:o) ]
+                                            ]
+                                    ]
+                            ]) 
+                                ifTrue:[ result add:(PO forClass:cls). ].
+                    ]
                 ].
-            ] ifFalse:[
-                name := cls lastName.
-                i := name lastIndexOf: $/.
-                ((name size >= (i + prefix size))
-                    and:[(name at: i + 1) == prefix first
-                    and:[(name at: i + prefix size) == prefix last
-                    and:[(2 to: prefix size - 1) allSatisfy:[:o| (name at: i + o) == (prefix at: o)]]]])
-                    ifTrue:[
-                        result add: (PO forClass: cls).
-                    ].
             ].
         ].
-    ].
 
-    "Created: / 15-05-2014 / 07:24:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 07-08-2014 / 15:03:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 16:05:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 addConstructorsForClass: aJavaClass fullName: showFullName
@@ -70,6 +137,20 @@
     "Created: / 15-05-2014 / 12:05:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+addExceptionsStartingWith: prefix
+    "raise an error: this method should be implemented (TODO)"
+
+    ^ self addExceptionsStartingWith: prefix matchFullName: false
+
+    "Created: / 07-08-2014 / 14:59:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+addExceptionsStartingWith: prefix matchFullName: matchFullName
+    ^ self addClassesStartingWith: prefix matchFullName: matchFullName filter: [ :cls | cls isThrowable ].
+
+    "Created: / 07-08-2014 / 15:04:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 addFieldsForType: type
     | seen |
 
@@ -128,3 +209,10 @@
     "Modified: / 08-04-2014 / 21:37:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!AbstractJavaCompletionEngine class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/SmallSense__AbstractJavaCompletionEngineSimple.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__AbstractJavaCompletionEngineSimple.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -16,6 +34,28 @@
 "
 !
 
+!AbstractJavaCompletionEngineSimple 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
+"
+! !
 
 !AbstractJavaCompletionEngineSimple class methodsFor:'initialization'!
 
@@ -82,13 +122,15 @@
         #completeImport:                . '[[:import:]] ( [[:Identifier:]](\.[[:Identifier:]])*\.? )? [[:CARET:]]' .
         #completeNew:                   . '[[:new:]] ( [[:Identifier:]](\.[[:Identifier:]])*\.?)? [[:CARET:]]' .
         #completeLocalDef:              . '( ', PatternPrimitiveType , ' | ' , PatternReferenceType , ') [[:Identifier:]] [[:CARET:]]' .
+        #completeCatch:                 . '[[:catch:]] \( (' , PatternReferenceType , ' \.? )? [[:CARET:]]' .
     }
 
     "
-    self flush
+    self flush. self patternsForCompletion
     "
 
     "Created: / 19-05-2014 / 11:51:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 16:44:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !AbstractJavaCompletionEngineSimple class methodsFor:'queries'!
@@ -137,11 +179,13 @@
 !AbstractJavaCompletionEngineSimple methodsFor:'analysis'!
 
 analyze
-    | stream |
+    | scanner stream |
 
     imports := OrderedCollection new.
     locals := Dictionary new.
-    stream := TokenStream on: (self scannerClass for: codeView contents).
+    scanner := self scannerClass for: codeView contents.
+    scanner allowRunawayString: true.  
+    stream := TokenStream on: scanner.
     self patternsForAnalysis keysAndValuesDo:[ :action :pattern |
         | matcher |
 
@@ -153,7 +197,7 @@
     ].
 
     "Created: / 19-05-2014 / 13:06:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 13-06-2014 / 16:47:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 21:18:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 analyzeImport: match
@@ -205,7 +249,7 @@
 !AbstractJavaCompletionEngineSimple methodsFor:'completion-private'!
 
 complete
-    | line col stream tokens anyMatched |
+    | line col scanner stream tokens anyMatched |
 
     line := codeView listAt: codeView cursorLine.
     col := codeView cursorCol.
@@ -214,7 +258,9 @@
 
     self analyze.
 
-    stream := TokenStream on: (self scannerClass for: line string) cursor: col - 1.
+    scanner := self scannerClass for: line string.
+    scanner allowRunawayString: true.  
+    stream := TokenStream on: scanner cursor: col - 1.
     anyMatched := false.
     self patternsForCompletion keysAndValuesDo:[ :action :pattern |
         | matcher |
@@ -265,7 +311,32 @@
     ^ result
 
     "Created: / 02-10-2013 / 13:55:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 24-06-2014 / 11:13:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 21:19:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+completeCatch: match
+    | prefix |
+
+    match size == 3 ifTrue:[ 
+        self addExceptionsStartingWith: nil matchFullName: false.
+    ] ifFalse:[
+        match size == 4 ifTrue:[ 
+            prefix := (match at: 3) value asString.
+            self addExceptionsStartingWith: prefix matchFullName: prefix first isLowercase.
+        ] ifFalse:[ 
+            | last |
+
+            last := match size - 1"Carret token".
+            (match at: last) value == $. ifTrue:[ 
+                last := last - 1.
+            ].
+            prefix := String streamContents:[:s | 3 to: last do:[:i | s nextPutAll: (match at: i) value asString] ].    
+            self addExceptionsStartingWith: prefix matchFullName: true   
+        ].
+    ].
+
+    "Created: / 07-08-2014 / 14:59:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 16:10:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 completeImport: match
--- a/SmallSense__AbstractJavaCompletionEngineTests.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__AbstractJavaCompletionEngineTests.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,23 @@
+"{ Encoding: utf8 }"
+
+"
+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 }"
@@ -9,6 +29,29 @@
 	category:'SmallSense-Tests'
 !
 
+!AbstractJavaCompletionEngineTests 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
+"
+! !
+
 !AbstractJavaCompletionEngineTests class methodsFor:'accessing'!
 
 resources
@@ -27,3 +70,115 @@
     ^ self == AbstractJavaCompletionEngineTests.
 ! !
 
+!AbstractJavaCompletionEngineTests methodsFor:'tests - completion'!
+
+test_complete_catch_01a
+    "
+    Test catch completion
+    "
+
+    | java_io_IOException |
+
+    self complete:'try { 
+        do(something);
+    } catch ( IOE┃'.
+
+    java_io_IOException := context environment == Smalltalk 
+                            ifTrue:[ context environment classNamed: #'JAVA::java::io::IOException'  ]
+                            ifFalse:[ context environment classNamed: #'java/io/IOException'].
+
+    self assert: result notEmpty.
+    self assert: (result allSatisfy:[:each | each isSmallSenseClassPO ]).
+    self assert: (result contains:[:each | each klass == java_io_IOException ]).
+
+    "Created: / 07-08-2014 / 15:11:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_complete_catch_01b
+    "
+    Test catch completion
+    "
+
+    | java_io_IOException |
+
+    self complete:'try { 
+        do(something);
+    } catch ( ┃'.
+
+    java_io_IOException := context environment == Smalltalk 
+                            ifTrue:[ context environment classNamed: #'JAVA::java::io::IOException'  ]
+                            ifFalse:[ context environment classNamed: #'java/io/IOException'].
+
+    self assert: result notEmpty.
+    self assert: (result allSatisfy:[:each | each isSmallSenseClassPO ]).
+    self assert: (result contains:[:each | each klass == java_io_IOException ]).
+
+    "Created: / 07-08-2014 / 16:02:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_complete_catch_01c
+    "
+    Test catch completion
+    "
+
+    | java_io_IOException |
+
+    self complete:'try { 
+        do(something);
+    } catch ( java.io.IO┃'.
+
+    java_io_IOException := context environment == Smalltalk 
+                            ifTrue:[ context environment classNamed: #'JAVA::java::io::IOException'  ]
+                            ifFalse:[ context environment classNamed: #'java/io/IOException'].
+
+    self assert: result notEmpty.
+    self assert: (result allSatisfy:[:each | each isSmallSenseClassPO ]).
+    self assert: (result contains:[:each | each klass == java_io_IOException ]).
+
+    "Created: / 07-08-2014 / 16:07:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_complete_catch_01d
+    "
+    Test catch completion
+    "
+
+    | java_io_IOException |
+
+    self complete:'try { 
+        do(something);
+    } catch ( java.io.┃'.
+
+    java_io_IOException := context environment == Smalltalk 
+                            ifTrue:[ context environment classNamed: #'JAVA::java::io::IOException'  ]
+                            ifFalse:[ context environment classNamed: #'java/io/IOException'].
+
+    self assert: result notEmpty.
+    self assert: (result allSatisfy:[:each | each isSmallSenseClassPO ]).
+    self assert: (result contains:[:each | each klass == java_io_IOException ]).
+
+    "Created: / 07-08-2014 / 16:08:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_complete_catch_01e
+    "
+    Test catch completion
+    "
+
+    | java_io_IOException |
+
+    self complete:'try { 
+        do(something);
+    } catch ( jav┃'.
+
+    java_io_IOException := context environment == Smalltalk 
+                            ifTrue:[ context environment classNamed: #'JAVA::java::io::IOException'  ]
+                            ifFalse:[ context environment classNamed: #'java/io/IOException'].
+
+    self assert: result notEmpty.
+    self assert: (result allSatisfy:[:each | each isSmallSenseClassPO ]).
+    self assert: (result contains:[:each | each klass == java_io_IOException ]).
+
+    "Created: / 07-08-2014 / 16:20:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__AbstractTestCase.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,101 @@
+"
+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 }"
+
+Smalltalk::TestCase subclass:#AbstractTestCase
+	instanceVariableNames:'preferences'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Tests'
+!
+
+!AbstractTestCase 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
+"
+! !
+
+!AbstractTestCase class methodsFor:'queries'!
+
+isAbstract
+    "Return if this class is an abstract class.
+     True is returned here for myself only; false for subclasses.
+     Abstract subclasses must redefine again."
+
+    ^ self == SmallSense::AbstractTestCase.
+! !
+
+!AbstractTestCase methodsFor:'running'!
+
+setUp
+    | keysToRemove |
+    preferences := Dictionary new.
+    keysToRemove := Set new.
+    UserPreferences current keysAndValuesDo:[ :key :value |
+        (key startsWith: 'smallSense') ifTrue:[ 
+            preferences at: key put: value.
+            keysToRemove add: key.
+        ].
+    ].
+    keysToRemove do:[:key | 
+        UserPreferences current removeKey: key.
+    ].
+    UserPreferences current smallSenseEnabled: true.
+
+    "Modified: / 11-08-2014 / 14:25:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+tearDown
+    | keysToRemove |
+
+    keysToRemove := Set new.
+    UserPreferences current keysAndValuesDo:[ :key :value |
+        (key startsWith: 'smallSense') ifTrue:[ 
+            keysToRemove add: key.
+        ].
+    ].
+    keysToRemove do:[:key | 
+        UserPreferences current removeKey: key.
+    ].
+    preferences keysAndValuesDo:[ :key :value |
+        UserPreferences current at: key put: value.
+    ].
+
+    "Created: / 11-08-2014 / 14:24:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__BaseTestClass.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__BaseTestClass.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Tests-Obsolete'
 !
 
+!BaseTestClass 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
+"
+! !
 
 !BaseTestClass methodsFor:'generate'!
 
--- a/SmallSense__ClassInfo.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__ClassInfo.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk-Types-Info'
 !
 
+!ClassInfo 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
+"
+! !
 
 !ClassInfo class methodsFor:'instance creation'!
 
--- a/SmallSense__ClassPO.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__ClassPO.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core-Interface-PO'
 !
 
+!ClassPO 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
+"
+! !
 
 !ClassPO methodsFor:'accessing'!
 
@@ -17,16 +57,17 @@
 
     namespace := nil.
     showPrefix ifFalse:[
-	namespace := klass isJavaClass
-			ifTrue:[klass javaPackage]
-			ifFalse:[klass nameSpace name].
-	(namespace notNil and:[namespace ~~ #Smalltalk]) ifTrue:[
-	    ^ 'in ', namespace.
-	].
+        namespace := klass isJavaClass
+                        ifTrue:[klass javaPackage]
+                        ifFalse:[ | ns | ns := klass nameSpace. [ ns isNameSpace ] whileFalse:[ ns := ns nameSpace ]. ns name].
+        (namespace notNil and:[namespace ~~ #Smalltalk]) ifTrue:[
+            ^ 'in ', namespace.
+        ].
     ].
     ^ nil
 
     "Created: / 20-05-2014 / 12:21:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-07-2014 / 17:31:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 icon
@@ -52,25 +93,31 @@
 
 label
     label isNil ifTrue:[
-	showPrefix ifTrue:[
-	    label := klass name.
-	    (context notNil and:[klass isJavaClass]) ifTrue:[
-		context language isJava ifTrue:[
-		    label := klass javaName
-		] ifFalse:[
-		    context language isSmalltalk ifTrue:[
-		       label := 'JAVA ' , (klass  binaryName copyReplaceAll: $/ with: Character space)
-		     ]
-		]
-	    ].
-	] ifFalse:[
-	    label := klass nameWithoutPrefix.
-	].
+        showPrefix ifTrue:[
+            label := klass name.
+            (context notNil and:[klass isJavaClass]) ifTrue:[
+                | lang |
+
+                lang := context language.
+                (lang notNil and:[lang isJava]) ifTrue:[
+                    label := klass javaName
+                ] ifFalse:[
+                    (lang notNil and:[lang isSmalltalk]) ifTrue:[
+                       label := 'JAVA ' , (klass  binaryName copyReplaceAll: $/ with: Character space)
+                     ] ifFalse:[ 
+                        label := klass nameWithoutNameSpacePrefix.
+                     ].
+                ]
+            ].
+        ] ifFalse:[
+            label := klass nameWithoutNameSpacePrefix.
+        ].
     ].
 
     ^label
 
     "Created: / 20-05-2014 / 11:29:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 16:19:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 showPrefix
@@ -85,25 +132,25 @@
     "Answers a string already written in the textview"
 
     klass isJavaClass ifTrue:[
-	context language isSmalltalk ifTrue:[
-	    | rec |
+        context language isSmalltalk ifTrue:[
+            | rec |
 
-	    rec := context node .
-	    [ rec isUnaryMessage ] whileTrue:[
-		rec := rec receiver.
-	    ].
-	    (rec isVariableNode and:['JAVA' startsWith: rec name]) ifTrue:[
-		^ context codeView contents asString copyFrom: rec startPosition to: context node endPosition
-	    ].
-	] ifFalse:[
-	context language isJavaLike ifTrue:[
-	     ^ context wordBeforeCursorConsisitingOfCharactersMatching:[:c | c isAlphaNumeric or:['$_.' includes: c] ]
-	]].
+            rec := context node .
+            [ rec isUnaryMessage ] whileTrue:[
+                rec := rec receiver.
+            ].
+            (rec isVariableNode and:['JAVA' startsWith: rec name]) ifTrue:[
+                ^ context codeView contents string copyFrom: rec startPosition to: context node endPosition
+            ].
+        ] ifFalse:[
+        context language isJavaLike ifTrue:[
+             ^ context wordBeforeCursorConsisitingOfCharactersMatching:[:c | c isAlphaNumeric or:['$_.' includes: c] ]
+        ]].
     ].
     ^ super stringAlreadyWritten
 
     "Created: / 20-10-2013 / 02:46:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 15-05-2014 / 07:31:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 08-08-2014 / 16:23:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 stringToCompleteForLanguage: language
@@ -117,17 +164,6 @@
     "Modified: / 20-05-2014 / 11:41:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!ClassPO methodsFor:'accessing-private'!
-
-subject
-    "Return the real object for which the receiver
-     is a presentor."
-
-    ^ klass
-
-    "Created: / 20-06-2014 / 11:10:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
 !ClassPO methodsFor:'converting'!
 
 asString
--- a/SmallSense__ClassType.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__ClassType.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk-Types'
 !
 
+!ClassType 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
+"
+! !
 
 !ClassType methodsFor:'accessing'!
 
--- a/SmallSense__CodeHighlightingService.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__CodeHighlightingService.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core-Services'
 !
 
+!CodeHighlightingService 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
+"
+! !
 
 !CodeHighlightingService class methodsFor:'accessing'!
 
@@ -88,12 +128,14 @@
     self sourceChanged:true from:start to:end
 
     "Created: / 27-07-2013 / 22:51:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 01:41:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 linesInsertedFrom:start to:end 
     self sourceChanged:true from:start to:end
 
     "Created: / 27-07-2013 / 22:51:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 01:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 linesModifiedFrom:start to:end 
@@ -285,7 +327,7 @@
                             "/ switch codeAspect
                             "/ case method
                                 codeAspect == SyntaxHighlighter codeAspectMethod ifTrue:[
-                                    (interval notNil and:[highlighters first respondsTo:#formatMethod:source:line:number:in:using:]) ifTrue:[
+                                    (interval notNil and:[interval size == 1 and:[highlighters first respondsTo:#formatMethod:source:line:number:in:using:]]) ifTrue:[
                                         newCodeList := oldCodeList.
                                         newCode := newCodeList asString.
                                     ] ifFalse:[
@@ -424,7 +466,7 @@
     ]
 
     "Created: / 03-08-2013 / 11:11:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 09-04-2014 / 09:50:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 01:41:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !CodeHighlightingService class methodsFor:'documentation'!
--- a/SmallSense__CodeNavigationService.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__CodeNavigationService.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -16,6 +34,28 @@
 	privateIn:CodeNavigationService
 !
 
+!CodeNavigationService 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
+"
+! !
 
 !CodeNavigationService class methodsFor:'accessing'!
 
@@ -221,14 +261,22 @@
     classType notNil ifTrue:[
         className := node resolvedType leafComponentType compoundName asStringWith: $/.
     ] ifFalse:[ 
-        | unit |
+        | unit typeName |
 
         unit := service codeView syntaxElements tree.
-        "/ Search imports...
-        unit imports do:[:import | 
-            import tokens last = node token ifTrue:[ 
-                className := import tokens asStringWith:$/.
+        typeName := node getTypeName. "/ returns char[][]
+        typeName size == 1 ifTrue:[
+            "/ Search imports...
+            unit imports do:[:import | 
+                | importedName typeName |
+
+                importedName := import getImportName. "/ returns char[][].                                
+                importedName last = typeName last ifTrue:[ 
+                    className := import tokens asStringWith:$/.
+                ].
             ].
+        ] ifFalse:[ 
+            className := typeName asStringWith: $/.
         ].
         "/ If not imported, Try compilation unit's package...
         className isNil ifTrue:[ 
@@ -251,7 +299,7 @@
     self halt: 'Not yet supported'.
 
     "Created: / 24-09-2013 / 10:16:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 15-02-2014 / 23:27:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-08-2014 / 15:17:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !CodeNavigationService::Navigator methodsFor:'navigation - Smalltalk'!
--- a/SmallSense__CompletionContext.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__CompletionContext.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core'
 !
 
+!CompletionContext 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
+"
+! !
 
 !CompletionContext class methodsFor:'instance creation'!
 
@@ -43,10 +83,28 @@
     "Modified (comment): / 13-05-2014 / 11:55:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+klass
+    "Return a class in which to complete, i.e., class whose source is being edited. 
+     If there's no class set, return nil (for example, for XML there's no such thing
+     like class)"
+
+     | codeView |
+
+     codeView := self codeView.
+     ^ codeView isCodeView2
+                 ifTrue: [ codeView klass ]
+                 ifFalse: [ codeView editedClass ].
+
+    "Created: / 24-07-2014 / 12:09:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 language
+    "Return a programming language in which to complete. i.e., the language of edited source code"
+
     ^ support language
 
     "Modified: / 21-01-2014 / 23:16:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 24-07-2014 / 12:00:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 node
--- a/SmallSense__CompletionController.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__CompletionController.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core'
 !
 
+!CompletionController 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
+"
+! !
 
 !CompletionController class methodsFor:'instance creation'!
 
@@ -225,10 +265,20 @@
 !
 
 complete: item
-    self closeCompletionView.
-    item insert
+    ^ self complete: item afterKeyPress: nil
 
     "Created: / 31-03-2014 / 23:21:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:53:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+complete: item afterKeyPress: keyOrNil
+     self closeCompletionView.
+     item insert.
+     keyOrNil notNil ifTrue:[  
+         support keyPressIgnored.
+     ].
+
+    "Created: / 11-08-2014 / 14:53:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 prefixAlreadyWritten
@@ -304,10 +354,14 @@
     matches1 := list select:[:po | matcher1 value: prefix value: po stringToComplete ].
     matches1 notEmptyOrNil ifTrue:[
         matches1 size == 1 ifTrue:[
-            completionView selection:  matches1 anElement.
-            completeIfUnambiguous ifTrue:[
-                self complete.
+            | selection |
+
+            selection := matches1 anElement.
+            (completeIfUnambiguous and: [(editView sensor hasKeyEventFor:editView) not]) ifTrue:[
+                self complete: selection afterKeyPress: keyOrNil.
                 ^ true
+            ] ifFalse:[ 
+                completionView selection: selection
             ].
         ] ifFalse:[
             | selection |
@@ -342,7 +396,7 @@
     ^ false.
 
     "Created: / 17-06-2014 / 07:19:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 24-06-2014 / 11:41:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:52:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !CompletionController methodsFor:'private-API'!
--- a/SmallSense__CompletionEngine.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__CompletionEngine.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core'
 !
 
+!CompletionEngine 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
+"
+! !
 
 !CompletionEngine class methodsFor:'accessing'!
 
--- a/SmallSense__CompletionEngineTests.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__CompletionEngineTests.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,16 +1,56 @@
 "{ Encoding: utf8 }"
 
+"
+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 }"
 
-Smalltalk::TestCase subclass:#CompletionEngineTests
+AbstractTestCase subclass:#CompletionEngineTests
 	instanceVariableNames:'engine context result'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'SmallSense-Tests'
 !
 
+!CompletionEngineTests 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
+"
+! !
 
 !CompletionEngineTests class methodsFor:'queries'!
 
--- a/SmallSense__CompletionResult.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__CompletionResult.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,29 @@
 	category:'SmallSense-Core'
 !
 
+!CompletionResult 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
+"
+! !
+
 !CompletionResult class methodsFor:'instance creation'!
 
 new
--- a/SmallSense__CompletionView.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__CompletionView.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -10,6 +28,28 @@
 	category:'SmallSense-Core-Interface'
 !
 
+!CompletionView 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
+"
+! !
 
 !CompletionView methodsFor:'accessing'!
 
@@ -22,13 +62,13 @@
 
     completionContext := aCompletionContext.
     node := completionContext node.
-    (node notNil and:[node isMessage]) ifTrue:[ 
+    (node notNil and:[node askFor:#isMessage]) ifTrue:[ 
         helpHolder value: 'Receiver type: ', node receiver inferedType displayString
     ] ifFalse:[ 
         helpHolder value: 'Up/Down to select, Enter to paste' asText.
     ].
 
-    "Modified: / 09-04-2014 / 12:59:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 12-08-2014 / 10:54:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 completionController
--- a/SmallSense__ConstantPO.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__ConstantPO.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core-Interface-PO'
 !
 
+!ConstantPO 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
+"
+! !
 
 !ConstantPO methodsFor:'accessing'!
 
--- a/SmallSense__CriticsWindow.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__CriticsWindow.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -10,6 +28,28 @@
 	category:'SmallSense-Core-Interface'
 !
 
+!CriticsWindow 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
+"
+! !
 
 !CriticsWindow class methodsFor:'interface specs'!
 
--- a/SmallSense__EditService.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__EditService.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core-Services'
 !
 
+!EditService 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
+"
+! !
 
 !EditService class methodsFor:'initialization'!
 
--- a/SmallSense__EditSupport.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__EditSupport.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -11,6 +29,28 @@
 	category:'SmallSense-Core-Services'
 !
 
+!EditSupport 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
+"
+! !
 
 !EditSupport class methodsFor:'instance creation'!
 
@@ -270,9 +310,22 @@
     "Modified: / 17-05-2014 / 21:22:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+keyPressIgnored
+    "Advance position in keyPressIgnore buffer. Return true if position has been edvanced, false othwrwise"
+    ignoreKeystrokes notNil ifTrue:[
+        ignoreKeystrokesPosition := ignoreKeystrokesPosition + 1.
+        ignoreKeystrokesPosition > ignoreKeystrokes size ifTrue:[
+            "/ Nil out instvars if there's no more keys to ignore.
+            ignoreKeystrokes := ignoreKeystrokesPosition := nil.
+        ].
+        ^ true.
+    ].
+    ^ false.
+
+    "Created: / 11-08-2014 / 14:56:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 keyPressIgnored: key
-    "raise an error: this method should be implemented (TODO)"
-
     ignoreKeystrokes notNil ifTrue:[
         (ignoreKeystrokes at: ignoreKeystrokesPosition) == key ifTrue:[
             "/ Key stroke should be ignored...
@@ -291,6 +344,7 @@
     ^ false.
 
     "Created: / 20-01-2014 / 09:11:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 11-08-2014 / 14:54:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 keyPressSpace
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__EditSupportTests.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,95 @@
+"
+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 }"
+
+AbstractTestCase subclass:#EditSupportTests
+	instanceVariableNames:'codeView codeViewInteractor editService editSupport'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Tests'
+!
+
+!EditSupportTests 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
+"
+! !
+
+!EditSupportTests methodsFor:'accessing-classes'!
+
+editSupportClass
+    self subclassResponsibility
+
+    "Created: / 23-07-2014 / 07:15:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!EditSupportTests methodsFor:'running'!
+
+setUp
+    | topView |
+
+    Smalltalk loadPackage: 'stx:goodies/sunitext/ui'.
+
+    topView := StandardSystemView new.
+    topView extent: 320 @ 200.
+    topView label: self printString.
+    codeView := Tools::CodeView2 origin: 0.0@0.0 extent: 1.0@1.0 in: topView.
+    codeViewInteractor := codeView interactor.
+
+    editService := EditService new.
+    editSupport := self editSupportClass new.
+    codeView services: (Array with: editService).
+    codeView language: editSupport language.
+    editService updateSupport: editSupport.
+
+    topView open.
+    topView waitUntilVisible.
+
+    "Created: / 23-07-2014 / 07:15:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:35:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+tearDown
+
+    editService := nil.
+    editSupport := nil.
+    codeView topView destroy.
+
+    "Created: / 23-07-2014 / 07:17:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__FinderTests.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__FinderTests.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Tests-Obsolete'
 !
 
+!FinderTests 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
+"
+! !
 
 !FinderTests methodsFor:'BeforeStatementTests'!
 
--- a/SmallSense__GenericEditSupport.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__GenericEditSupport.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core-Services'
 !
 
+!GenericEditSupport 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
+"
+! !
 
 !GenericEditSupport methodsFor:'accessing'!
 
--- a/SmallSense__GroovyCompletionEngineSimple.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__GroovyCompletionEngineSimple.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,11 +27,33 @@
 	category:'SmallSense-Groovy'
 !
 
+!GroovyCompletionEngineSimple 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
+"
+! !
 
 !GroovyCompletionEngineSimple class methodsFor:'accessing-definitions'!
 
 patternDefinitionsForAnalysis
-    ^ super patternDefinitionsForAnalysis , { 
+    ^ super patternDefinitionsForAnalysis , {
         #analyzeLocalDef1:              .  '[[:def:]] [[:Identifier:]] ( = | ; )' .
     }
 
@@ -25,8 +65,8 @@
 !
 
 patternDefinitionsForCompletion
-    
-    ^super patternDefinitionsForCompletion , { 
+
+    ^super patternDefinitionsForCompletion , {
         #completeLocalDef:              . '( ', PatternPrimitiveType , ' | ' , PatternReferenceType , ' | [[:def:]] ) [[:Identifier:]] [[:CARET:]]' .
     }
 
--- a/SmallSense__GroovyCompletionEngineSimpleTests.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__GroovyCompletionEngineSimpleTests.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,5 +1,23 @@
 "{ Encoding: utf8 }"
 
+"
+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 }"
@@ -11,6 +29,29 @@
 	category:'SmallSense-Tests'
 !
 
+!GroovyCompletionEngineSimpleTests 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
+"
+! !
+
 !GroovyCompletionEngineSimpleTests methodsFor:'accessing-classes'!
 
 completionEngineClass
@@ -399,3 +440,10 @@
     "Created: / 23-05-2014 / 11:43:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!GroovyCompletionEngineSimpleTests class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/SmallSense__GroovyEditSupport.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__GroovyEditSupport.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,29 @@
 	category:'SmallSense-Groovy'
 !
 
+!GroovyEditSupport 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
+"
+! !
+
 !GroovyEditSupport methodsFor:'accessing'!
 
 language
--- a/SmallSense__Info.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__Info.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk-Types-Info'
 !
 
+!Info 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
+"
+! !
 
 !Info class methodsFor:'documentation'!
 
--- a/SmallSense__JavaCompletionEngine.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__JavaCompletionEngine.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,98 +1,70 @@
+"
+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 }"
 
 AbstractJavaCompletionEngine subclass:#JavaCompletionEngine
-	instanceVariableNames:'classTree methodTree'
+	instanceVariableNames:'completionNode completionScope'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'SmallSense-Java'
 !
 
-!JavaCompletionEngine methodsFor:'completion'!
+!JavaCompletionEngine class methodsFor:'documentation'!
+
+copyright
+"
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+Copyright (C) 2013-2014 Jan Vrany
 
-completeNode: node
-    Transcript 
-        show: 'Java Simple Completion on node: ';
-        show: node printString;
-        show: ' [';
-        show: node class printString;
-        showCR: ']'.
+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. 
 
-    "Created: / 20-10-2013 / 01:34:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+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
+"
 ! !
 
 !JavaCompletionEngine methodsFor:'completion-individual'!
 
-addFieldsStartingWith: prefix
-    | klass |
+addFieldsForTypeBinding:binding
+    | current |
 
-    classTree notNil ifTrue:[
-        (classTree fields ? #()) do:[:field |
-            result add: (VariablePO instanceVariable: field name in: class).            
-        ].
-    ] ifFalse:[
-        klass := class.
-    ].
-
-    [ klass notNil ] whileTrue:[
-        klass instVarNames do:[:nm |
-            result add: (VariablePO instanceVariable: nm in: klass).
-        ].
-        klass := klass superclass.
+    current := binding.        
+    [ current notNil ] whileTrue:[  
+        current fields do:[:fbinding | 
+            result add: (PO forFieldBinding: fbinding )
+        ].  
+        current := current superclass.
     ].
 
-    "Created: / 03-10-2013 / 11:16:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 20-10-2013 / 02:04:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-addImportsStartingWith: prefix
-    | packages |
-
-    packages := Set new.
-
-    "/ Class imports...
-    self javaClassesDo:[:cls|
-        | name i |
-
-        name := cls javaName.
-        (cls isPublic and:[name startsWith: prefix]) ifTrue:[
-            result add: (JavaImportPO new subject: name; klass: cls; yourself).        
-            packages add: cls javaPackage.
-        ].
-    ].
-    "/ Package imports...
-    packages do:[:each |
-        result add: (JavaImportPO new subject: (each , '.*'))
-    ].
-
-    "Created: / 19-10-2013 / 17:54:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 20-10-2013 / 00:35:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-addLocalsStartingWith: prefix
-    | queue |
-
-    methodTree isNil ifTrue:[ ^ self ].
-    methodTree scope isNil ifTrue:[ ^ self ].
-
-    queue := OrderedCollection with: methodTree scope.
-    [ queue notEmpty ] whileTrue:[
-        | scope |
-
-        scope := queue removeFirst.
-        1 to: scope localIndex do:[:i|
-            | nm |
-
-            nm := (scope locals at: i) name.
-            (nm startsWith: prefix) ifTrue:[
-                result add: (VariablePO instanceVariable: nm in: class). 
-            ].
-        ].
-    ].
-
-    "Created: / 03-10-2013 / 17:46:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 20-10-2013 / 02:15:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 13-08-2014 / 21:39:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-08-2014 / 09:06:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 addMethodsForReceiver: maybeReceiverToken startingWith: prefix    
@@ -101,44 +73,142 @@
     "Created: / 03-10-2013 / 17:46:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-addMethodsStartingWith: prefix    
-    ^ self addMethodsStartingWith: prefix stripOff: nil filter: [:m | m isJavaMethod ]
+addMethodsForTypeBinding: binding
+    | current seen |
+
+    current := binding.        
+    seen := Set new.
+    [ current notNil ] whileTrue:[  
+        current methods do:[:mbinding |
+            mbinding isConstructor ifFalse:[
+                | selector |
+
+                selector := mbinding selector , mbinding signature.
+                (seen includes: selector) ifFalse:[
+                    result add: (PO forMethodBinding: mbinding).
+                    seen add: selector.
+                ].
+            ].
+        ].  
+        current := current superclass.
+    ].
+
+    "Created: / 13-08-2014 / 21:39:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 13-08-2014 / 22:54:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+addVariablesInScope: scope
+    ((scope kind == JAVA org eclipse jdt internal compiler lookup Scope METHOD_SCOPE) or:[
+    scope kind == JAVA org eclipse jdt internal compiler lookup Scope BLOCK_SCOPE]) ifTrue:[ 
+        1 to: scope localIndex do:[:i | 
+            result add: (PO forLocalVariableBinding: (scope locals at:i) ) 
+        ].
+        self addVariablesInScope: (scope instVarNamed: #parent). "/ !!?!! Why 'scope parent' does not work?
+    ].
+
+    scope kind == JAVA org eclipse jdt internal compiler lookup Scope CLASS_SCOPE ifTrue:[ 
+        | type |
 
-    "Created: / 03-10-2013 / 18:01:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 08-04-2014 / 21:37:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+        type := scope referenceType.
+        type notNil ifTrue:[ 
+            self addFieldsForTypeBinding: type binding.  
+        ].
+    ].
+
+    "Created: / 12-08-2014 / 10:41:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-08-2014 / 09:08:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaCompletionEngine methodsFor:'completion-nodes'!
+
+completeOnFieldType: node
+    node type acceptCompletionEngine: self
+
+    "Created: / 13-08-2014 / 21:04:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+completeOnQualifiedNameReference: node
+    | binding |
+
+    binding := node binding.
+    (binding notNil and:[binding problemId ~~ JAVA org eclipse jdt internal compiler lookup ProblemReasons NoError]) ifTrue:[
+        binding := binding type.
+        binding notNil ifTrue:[ 
+            self addMethodsForTypeBinding: binding.
+            self addFieldsForTypeBinding: binding.  
+        ].
+    ].
+
+    "Created: / 13-08-2014 / 21:32:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-08-2014 / 11:13:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+completeOnSingleNameReference: node
+    self addVariablesInScope: completionScope.
+    self addClassesStartingWith: node token.
+
+    "Created: / 13-08-2014 / 21:05:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+completeOnSingleTypeReference: node
+    self addClassesStartingWith: node token
+
+    "Created: / 13-08-2014 / 21:05:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaCompletionEngine methodsFor:'completion-private'!
 
 complete
     
-    | position entry node |
+    | position source rslt problemReporter parser tree searcher resolver  |
 
     position := context codeView characterPositionOfCursor.
-    codeView syntaxElements notEmptyOrNil ifTrue:[
-        entry := codeView syntaxElements atCharacterPosition: position - 1. 
-        entry notNil ifTrue:[
-            node := entry node
-        ].
-        codeView syntaxElements tree notNil ifTrue:[
-            classTree := (codeView syntaxElements tree types ? #()) detect:[:t | (position - 1) between: t declarationSourceStart and: t declarationSourceEnd ] ifNone:[nil].
-            classTree notNil ifTrue:[
-                methodTree := (classTree methods ? #()) detect:[:m | (position - 1) between: m declarationSourceStart and: m declarationSourceEnd ] ifNone:[nil].
-            ]
-        ].
+
+    source := JAVA stx libjava tools Source new.
+    source setContents: codeView list asStringWithoutEmphasis.
+"/    parser := JAVA stx libjava tools parser Parser new.
+    rslt := JAVA org eclipse jdt internal compiler CompilationResult
+                new: source _: 1 _: 1 _: 1000.  
+    problemReporter := JAVA org eclipse jdt internal compiler problem ProblemReporter
+                new: JAVA org eclipse jdt internal compiler DefaultErrorHandlingPolicies proceedWithAllProblems
+                  _: JAVA stx libjava tools parser Parser defaultCompilerOptions   
+                  _: JAVA stx libjava tools parser Parser defaultProblemFactory.
+
+    parser := JAVA org eclipse jdt internal codeassist complete CompletionParser 
+                new: problemReporter _: true.
+
+"/    tree := parser parse: source diet: true resolve: true.
+    tree := parser dietParse: source _: rslt _: position - 1"Java is 0-based" - 1"cursor is actualy one fter the end of token".
+    searcher := JAVA org eclipse jdt core dom NodeSearcher new: position - 1"Java is 0-based" - 1"cursor is actualy one fter the end of token".
+    tree traverse: searcher _: tree scope.
+    (searcher found notNil and:[searcher found isKindOf: JAVA org eclipse jdt internal compiler ast AbstractMethodDeclaration]) ifTrue:[ 
+        parser parseBlockStatements: searcher found _: tree.
     ].
 
-    context node: node position: position.
+
+    "
+    (SmallSense::ParseTreeInspector new node:tree source: codeView list asString) open
+    "
 
-    node isNil ifTrue:[
+    resolver := (Java classForName: 'stx.libjava.tools.environment.Resolver') new: problemReporter.
+    [ 
+        resolver resolve: tree.
+    ] on: JAVA org eclipse jdt internal codeassist complete CompletionNodeFound do:[:ex |  
+        completionNode := ex astNode.
+        completionScope := ex scope.
+    ].
+
+    context node: completionNode position: position.
+
+    (completionNode isNil or:[completionScope isNil]) ifTrue:[
         result := JavaCompletionEngineSimple new complete: context.
     ] ifFalse:[
-        self completeNode: node.
+        completionNode acceptCompletionEngine: self.
     ].
 
     ^ result
 
     "Created: / 02-10-2013 / 13:55:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 13-05-2014 / 17:21:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 13-08-2014 / 21:08:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
--- a/SmallSense__JavaCompletionEngineEnvironmentResource.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__JavaCompletionEngineEnvironmentResource.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,29 @@
 	category:'SmallSense-Tests'
 !
 
+!JavaCompletionEngineEnvironmentResource 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
+"
+! !
+
 !JavaCompletionEngineEnvironmentResource methodsFor:'running'!
 
 setUp
--- a/SmallSense__JavaCompletionEngineSimple.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__JavaCompletionEngineSimple.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Java'
 !
 
+!JavaCompletionEngineSimple 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
+"
+! !
 
 !JavaCompletionEngineSimple methodsFor:'accessing-class'!
 
@@ -20,34 +60,6 @@
     "Created: / 13-05-2014 / 17:46:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!JavaCompletionEngineSimple methodsFor:'completion'!
-
-
-
- !
-
-!JavaCompletionEngineSimple methodsFor:'completion-helpers'!
-
- !
-
-!JavaCompletionEngineSimple methodsFor:'completion-individual'!
-
-
-
-
-
-
-
-
-
-
-
- !
-
-!JavaCompletionEngineSimple methodsFor:'completion-private'!
-
- !
-
 !JavaCompletionEngineSimple class methodsFor:'documentation'!
 
 version_HG
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__JavaCompletionEngineTests.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,140 @@
+"{ Encoding: utf8 }"
+
+"
+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 }"
+
+AbstractJavaCompletionEngineTests subclass:#JavaCompletionEngineTests
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Tests'
+!
+
+!JavaCompletionEngineTests 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
+"
+! !
+
+!JavaCompletionEngineTests methodsFor:'accessing-classes'!
+
+completionEngineClass
+    "superclass SmallSense::CompletionEngineTests says that I am responsible to implement this method"
+
+    ^ JavaCompletionEngine
+
+    "Created: / 07-08-2014 / 02:00:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaCompletionEngineTests methodsFor:'tests'!
+
+test_method_01
+
+    <skip>
+
+    self complete:'public class Foo {
+        public int bar(Object o) {
+            return o.has┃
+        }
+    }'.
+
+    self assert: result notEmpty.
+    self assert: (result contains:[:each | each isSmallSenseMethodBindingPO
+                                                and:[ each binding selector = 'hashCode' ] ])
+
+    "Created: / 13-08-2014 / 02:05:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 13-08-2014 / 22:45:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_types_01
+
+    <skip>
+
+    self complete:'public class Foo {
+        public int addTo(Arra┃
+        }
+    }'.
+
+    self assert: result notEmpty.
+    self assert: (result contains:[:each | each isSmallSenseClassPO 
+                                                and:[ each klass == JAVA java util ArrayList ] ])
+
+    "Created: / 13-08-2014 / 00:35:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 13-08-2014 / 02:02:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_types_02
+
+    <skip>
+
+    self complete:'public class Foo {
+        protected Arra┃
+    }'.
+
+    self assert: result notEmpty.
+    self assert: (result contains:[:each | each isSmallSenseClassPO 
+                                                and:[ each klass == JAVA java util ArrayList ] ])
+
+    "Created: / 13-08-2014 / 00:40:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 13-08-2014 / 02:02:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_variables_01
+
+    <skip>
+
+    self complete:'public class Foo {
+        public int field;
+        public int sum(int number1, int number2) {
+            return num┃
+        }
+    }'.
+
+    self assert: result size == 3.
+    self assert: (result contains:[:each | each isSmallSenseVariableBindingPO
+                                                and:[ each binding name = 'number1' ] ]).
+    self assert: (result contains:[:each | each isSmallSenseVariableBindingPO
+                                                and:[ each binding name = 'number2' ] ]).
+    self assert: (result contains:[:each | each isSmallSenseVariableBindingPO
+                                                and:[ each binding name = 'field' ] ]).
+
+    "Created: / 07-08-2014 / 02:00:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 14-08-2014 / 09:08:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__JavaConstructorPO.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__JavaConstructorPO.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Java-Interface-PO'
 !
 
+!JavaConstructorPO 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
+"
+! !
 
 !JavaConstructorPO methodsFor:'accessing'!
 
--- a/SmallSense__JavaEditSupport.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__JavaEditSupport.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Java'
 !
 
+!JavaEditSupport 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
+"
+! !
 
 !JavaEditSupport methodsFor:'accessing'!
 
@@ -29,13 +69,13 @@
     "Returns a code completion engine class or nil, of 
      no completion is supported"
 
-"/    OperatingSystem getLoginName = 'jv' ifTrue:[
-"/        ^ SmallSense::JavaCompletionEngine
-"/    ].
+    OperatingSystem getLoginName = 'jv' ifTrue:[
+        ^ SmallSense::JavaCompletionEngine
+    ].
     ^ SmallSense::JavaCompletionEngineSimple
 
     "Created: / 03-10-2013 / 17:45:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 20-10-2013 / 02:53:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 12-08-2014 / 10:53:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 scannerClass
@@ -156,7 +196,11 @@
             ^ controller handleKeyPress:key x:x y:y 
         ].
         ^ false
-    ].     
+    ]. 
+
+    key == #Return ifTrue:[ 
+        ^ self keyPressReturn.
+    ]. 
 
     key == ${ ifTrue:[
         ^ self keyPressOpenCurly
@@ -169,7 +213,7 @@
     ^ false
 
     "Created: / 07-03-2010 / 09:36:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 18-05-2014 / 12:45:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 13-08-2014 / 15:30:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 keyPressOpenCurly
@@ -207,6 +251,50 @@
 
     "Created: / 04-08-2013 / 01:54:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 25-10-2013 / 18:03:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+keyPressReturn
+    | line c i indent lineNr ccontroler  |
+
+    textView isInInsertMode ifFalse:[ ^ false ].
+    ccontroler := textView completionSupport.
+    (ccontroler notNil and:[ ccontroler isCompletionViewShown ]) ifTrue:[ 
+        ^ false.
+    ].
+
+    "/ First, check if the cursor is at the end of line, i.e., if
+    "/ there's no text after the cursor...
+    lineNr := textView cursorLine.
+    line := textView list at: lineNr.
+    i := line size.
+    [ i > 0 and:[ (c := line at:i) isSeparator ] ] whileTrue:[ i := i - 1 ].    
+    i <= textView cursorCol ifFalse:[ 
+        "/ If not, do not indent...
+        ^ false 
+    ].
+
+    "/ Search for closest non-empty line above
+    lineNr := textView cursorLine.
+    [ (line := textView list at: lineNr) isEmptyOrNil and:[lineNr > 0 ] ] whileTrue:[ lineNr := lineNr - 1 ].
+    lineNr == 0 ifTrue:[ 
+        "/ No such line found, givin up
+        ^ false.
+    ].
+    indent := line indexOfNonSeparator.
+    "/ Look for opening curly, if found, increase indent...
+    i := line size.
+    [ i > 0 and:[ (c := line at:i) isSeparator ] ] whileTrue:[ i := i - 1 ].
+    (i > 0 and:[ c == ${ ]) ifTrue:[ 
+        indent := indent + 4.
+    ].
+    textView undoableDo:[
+        textView insertCharAtCursor:(Character cr).
+        textView cursorCol: indent.
+    ].
+    ^ true
+
+    "Created: / 13-08-2014 / 15:30:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 13-08-2014 / 20:38:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaEditSupport methodsFor:'initialization'!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__JavaEditSupportTests.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,153 @@
+"
+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 }"
+
+EditSupportTests subclass:#JavaEditSupportTests
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Tests'
+!
+
+!JavaEditSupportTests 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
+"
+! !
+
+!JavaEditSupportTests methodsFor:'accessing-classes'!
+
+editSupportClass
+    "superclass SmallSense::EditSupportTests says that I am responsible to implement this method"
+
+    ^ JavaEditSupport
+
+    "Created: / 13-08-2014 / 15:16:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaEditSupportTests methodsFor:'tests - return'!
+
+test_return_01a
+    UserPreferences current smallSenseElectricEditSupportEnabled: true.
+    codeView contents:'
+public class SimpleClient {
+}'.
+
+    codeView setCursorLine: 2 col: 28.
+
+    codeViewInteractor type: #Return.
+
+    self assert: (codeView cursorCol = 5).  
+    self assert: (codeView cursorLine = 3).
+    self assert: (codeView list at: 3) isEmptyOrNil.
+
+    "Created: / 13-08-2014 / 15:34:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_return_01b
+    UserPreferences current smallSenseElectricEditSupportEnabled: true.
+    codeView contents:'
+public class SimpleClient {
+}'.
+
+    codeView setCursorLine: 2 col: 35.
+
+    codeViewInteractor type: #Return.
+
+    self assert: (codeView cursorCol = 5).  
+    self assert: (codeView cursorLine = 3).
+
+    "Created: / 13-08-2014 / 15:34:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_return_02a
+    UserPreferences current smallSenseElectricEditSupportEnabled: true.
+    codeView contents:'
+public class SimpleClient {
+    int i;
+}'.
+
+    codeView setCursorLine: 3 col: 11.
+
+    codeViewInteractor type: #Return.
+
+    self assert: (codeView cursorCol = 5).  
+    self assert: (codeView cursorLine = 4).
+
+    "Created: / 13-08-2014 / 15:33:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_return_02b
+    UserPreferences current smallSenseElectricEditSupportEnabled: true.
+    codeView contents:'
+public class SimpleClient {
+    int i;
+
+
+}'.
+
+    codeView setCursorLine: 4 col: 15.
+
+    codeViewInteractor type: #Return.
+
+    self assert: (codeView cursorCol = 5).  
+    self assert: (codeView cursorLine = 5).
+
+    "Created: / 13-08-2014 / 15:33:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_return_03b
+    UserPreferences current smallSenseElectricEditSupportEnabled: true.
+    codeView contents:'
+public class SimpleClient {
+    int i;
+
+
+}'.
+
+    codeView setCursorLine: 3 col: 9.
+
+    codeViewInteractor type: #Return.
+
+    self assert: (codeView cursorCol = 1).  
+    self assert: (codeView cursorLine = 4).
+    self assert: (codeView list at: 4) = 'i;'
+
+    "Created: / 13-08-2014 / 20:39:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__JavaImportPO.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__JavaImportPO.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Java-Interface-PO'
 !
 
+!JavaImportPO 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
+"
+! !
 
 !JavaImportPO class methodsFor:'image specs'!
 
--- a/SmallSense__Manager.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__Manager.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk-Types-Info'
 !
 
+!Manager 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
+"
+! !
 
 !Manager class methodsFor:'instance creation'!
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__MethodBindingPO.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,110 @@
+"
+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 }"
+
+PO subclass:#MethodBindingPO
+	instanceVariableNames:'binding'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Java-Interface-PO'
+!
+
+!MethodBindingPO 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
+"
+! !
+
+!MethodBindingPO methodsFor:'accessing'!
+
+binding
+    ^ binding
+!
+
+binding:b
+    binding := b.
+!
+
+label
+    "Return a text to be displayed. The label may be cached
+     `label` instvar."
+
+    label isNil ifTrue:[
+        | descriptor |
+
+        descriptor := binding signature.
+        label := JavaMethod specTextFromSignature:descriptor in: nil withName: binding selector isConstructor: binding isConstructor.   
+
+
+"/        | parameters |
+"/
+"/        label := String streamContents: [ :s |
+"/            s nextPutAll: binding selector.
+"/            s nextPut: $(.
+"/            parameters := binding parameters.
+"/            parameters notEmptyOrNil ifTrue:[ 
+"/                s nextPutAll: parameters first displayString.
+"/                parameters size > 1 ifTrue:[ 
+"/                    1 to: parameters size do:[:i |  
+"/                        s nextPutAll: ', '.
+"/                        s nextPutAll: (parameters at: i) displayString.
+"/                    ]
+"/                ].
+"/            ].
+"/            s nextPut: $).
+"/        ]
+    ].
+    ^ label
+
+    "Created: / 13-08-2014 / 22:33:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+stringToCompleteForLanguage:aProgrammingLanguage
+    ^ binding selector , '()'
+
+    "Created: / 13-08-2014 / 22:39:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!MethodBindingPO methodsFor:'testing'!
+
+isSmallSenseMethodBindingPO
+    ^ true
+
+    "Created: / 13-08-2014 / 22:44:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__MethodInfo.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__MethodInfo.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk-Types-Info'
 !
 
+!MethodInfo 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
+"
+! !
 
 !MethodInfo class methodsFor:'instance creation'!
 
--- a/SmallSense__MethodKeywordRestPO.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__MethodKeywordRestPO.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core-Interface-PO'
 !
 
+!MethodKeywordRestPO 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
+"
+! !
 
 !MethodKeywordRestPO class methodsFor:'accessing'!
 
--- a/SmallSense__MethodPO.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__MethodPO.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core-Interface-PO'
 !
 
+!MethodPO 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
+"
+! !
 
 !MethodPO methodsFor:'accessing'!
 
--- a/SmallSense__PO.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__PO.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core-Interface-PO'
 !
 
+!PO 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
+"
+! !
 
 !PO class methodsFor:'initialization'!
 
@@ -50,10 +90,34 @@
     "Created: / 20-05-2014 / 10:43:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-forPackage: package
-    ^ PackagePO new initializeWithPackage: package
+forFieldBinding: binding
+    ^ VariableBindingPO new binding: binding
+
+    "Created: / 14-08-2014 / 09:04:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+forGlobalNamed: name
+    ^ VariablePO globalVariable: name
+
+    "Created: / 24-07-2014 / 16:50:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
 
-    "Created: / 19-06-2014 / 12:01:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+forInstanceVariableNamed: nm in: cls
+    ^ VariablePO instanceVariable: nm in: cls.
+
+    "Created: / 13-08-2014 / 21:27:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+forLocalVariableBinding: binding
+    ^ VariableBindingPO new binding: binding
+
+    "Created: / 14-08-2014 / 09:04:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+forLocalVariableNamed: nm
+    ^ VariablePO variable: nm
+
+    "Created: / 12-08-2014 / 10:40:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 subject: anObject
@@ -64,6 +128,14 @@
     "Created: / 06-04-2011 / 21:01:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!PO class methodsFor:'instance creation-java'!
+
+forMethodBinding: binding
+    ^ MethodBindingPO new binding: binding
+
+    "Created: / 13-08-2014 / 22:24:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !PO methodsFor:'accessing'!
 
 context
@@ -329,10 +401,10 @@
 
     super printOn:aStream.
     aStream nextPut:$(.
-    self label.
+    aStream nextPutAll:self label.
     aStream nextPut:$).
 
-    "Modified: / 20-05-2014 / 11:18:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 13-08-2014 / 01:53:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !PO methodsFor:'queries'!
@@ -354,6 +426,12 @@
     ^ false
 !
 
+isSmallSenseMethodBindingPO
+    "return false here; to be redefined in subclass(es)"
+
+    ^ false
+!
+
 isSmallSenseMethodPO
     ^ false
 !
@@ -362,6 +440,12 @@
     ^ false
 !
 
+isSmallSenseVariableBindingPO
+    "return false here; to be redefined in subclass(es)"
+
+    ^ false
+!
+
 isSmallSenseVariablePO
     ^ false
 ! !
--- a/SmallSense__ParseTreeIndex.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__ParseTreeIndex.st	Wed Oct 01 23:44:32 2014 +0100
@@ -13,7 +13,7 @@
 
 "{ NameSpace: SmallSense }"
 
-SortedCollection subclass:#ParseTreeIndex
+OrderedCollection subclass:#ParseTreeIndex
 	instanceVariableNames:'tree source'
 	classVariableNames:''
 	poolDictionaries:''
@@ -130,3 +130,10 @@
     "Created: / 16-02-2012 / 21:00:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!ParseTreeIndex class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- a/SmallSense__ParseTreeInspector.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__ParseTreeInspector.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -17,6 +35,28 @@
 	privateIn:ParseTreeInspector
 !
 
+!ParseTreeInspector 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
+"
+! !
 
 !ParseTreeInspector class methodsFor:'instance creation'!
 
@@ -435,11 +475,15 @@
         ifAbsentPut:
             [PluggableAdaptor on: self nodeHolder getter:
                 [:m|
-                | rootAstNodeItem hl |
+                | rootAstNodeItem rootAstNode hl |
+
+                rootAstNode := self nodeHolder value.
+
                 rootAstNodeItem := ParseTreeItem new
-                                        ivarName: 'AST';
-                                        astNode: self nodeHolder value;
-                                        yourself.
+                                            ivarName: 'AST';
+                                            astNode: rootAstNode;
+                                            yourself.
+
 
                 hl := HierarchicalList new
                         root: rootAstNodeItem;
@@ -451,7 +495,7 @@
     "Created: / 28-03-2007 / 15:58:31 / janfrog"
     "Modified: / 31-10-2007 / 12:11:46 / janfrog"
     "Created: / 14-09-2011 / 17:24:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 10-04-2014 / 08:59:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 10:19:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 selectionHolder
@@ -571,6 +615,7 @@
     | astNode startPosition stopPosition |
     sourceView ifNil:[^self].
     (astNode := self selection) ifNil:[^self].
+    astNode node isNil ifTrue:[ ^ self ].
     (startPosition := astNode node startPosition)
         ifNil:[^sourceView unselect].
     (stopPosition := astNode node endPosition)
@@ -582,7 +627,7 @@
     sourceView makeCursorVisible
 
     "Created: / 12-04-2007 / 12:29:42 / janfrog"
-    "Modified: / 30-08-2013 / 02:06:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 10:21:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ParseTreeInspector methodsFor:'menu actions'!
@@ -627,21 +672,23 @@
 children
 
     children isNil ifTrue:[
-        children := OrderedCollection new.        
-        astNode childNamesAndValuesDo:[:ivarName :astNode|
-            astNode notNil ifTrue:[
-                children add: (self class new
-                                ivarName: ivarName;
-                                astNode: astNode;
-                                parent: self)
-            ]
+        children := OrderedCollection new.
+        astNode notNil ifTrue:[
+            astNode childNamesAndValuesDo:[:ivarName :astNode|
+                astNode notNil ifTrue:[
+                    children add: (self class new
+                                    ivarName: ivarName;
+                                    astNode: astNode;
+                                    parent: self)
+                ]
+            ].
         ].
     ].
     ^children
 
     "Created: / 28-03-2007 / 15:55:24 / janfrog"
     "Modified: / 12-04-2007 / 11:35:24 / janfrog"
-    "Modified: / 26-11-2011 / 10:46:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 10:20:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 icon
@@ -666,6 +713,9 @@
 
 label
     | label start stop |
+
+    astNode isNil ifTrue:[ ^ 'No AST' ].
+
     start := astNode startPosition.
     stop := astNode endPosition.
 
@@ -681,7 +731,7 @@
 
     "Created: / 28-03-2007 / 15:53:18 / janfrog"
     "Modified: / 12-04-2007 / 11:30:23 / janfrog"
-    "Modified: / 10-04-2014 / 08:43:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 10:20:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 leafNodeAt: pos
--- a/SmallSense__RecognizerTests.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__RecognizerTests.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Tests-Obsolete'
 !
 
+!RecognizerTests 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
+"
+! !
 
 !RecognizerTests methodsFor:'RecognizerTest'!
 
--- a/SmallSense__SelectorNode.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SelectorNode.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -11,6 +29,27 @@
 
 !SelectorNode 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
+"
+!
+
 documentation
 "
     A (helper) node that represents a selector (or its part).
--- a/SmallSense__SettingsAppl.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SettingsAppl.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -12,6 +30,28 @@
 	category:'SmallSense-Core-Interface'
 !
 
+!SettingsAppl 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
+"
+! !
 
 !SettingsAppl class methodsFor:'class initialization'!
 
--- a/SmallSense__SmalltalkChecker.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SmalltalkChecker.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -11,6 +29,27 @@
 
 !SmalltalkChecker 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
+"
+!
+
 documentation
 "
     SmallSenseChecker is customized SmalllintChecker used
@@ -58,9 +97,13 @@
         RBImplementedNotSentRule    "/ Uses Context>>#computeLiterals whichs toooo slow.
         RBSentNotImplementedRule    "/ Uses Context>>#computeLiterals whichs toooo slow.
         RBUndeclaredReferenceRule   "/
+
+        RBNilOrEmptyCollectionReplaceRule   "/ only for Squeak - I don't want people to rewrite ST/X code
+        RBSTXSpecialCommentsRule            "/ a rewriter to be used only for porting
     )
 
     "Created: / 17-02-2012 / 13:10:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 30-09-2014 / 11:59:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !SmalltalkChecker methodsFor:'private'!
--- a/SmallSense__SmalltalkCompletionEngine.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SmalltalkCompletionEngine.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk'
 !
 
+!SmalltalkCompletionEngine 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
+"
+! !
 
 !SmalltalkCompletionEngine class methodsFor:'initialization'!
 
@@ -89,13 +129,14 @@
     loaders add: nil.
 
     JavaVM registry  allClassesDo:[:cls|
-        (loaders includes: cls classLoader) ifTrue:[
+        (cls isAnonymous not and:[(loaders includes: cls classLoader)]) ifTrue:[
+
             aBlock value: cls.
         ].
     ].
 
     "Created: / 04-10-2013 / 13:10:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 02-06-2014 / 11:33:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 13:03:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !SmalltalkCompletionEngine methodsFor:'completion-individual'!
@@ -114,47 +155,38 @@
 
 addGlobalsStartingWith: prefix
 
-    | class ns cls environment |
+    | class namespace environment |
     class := collector klass.
-    ns := class nameSpace.
+    namespace := class nameSpace.
     environment := context environment.
     "nameSpace may return private class, sigh"
-    [ ns isNameSpace ] whileFalse:[ ns := ns nameSpace ].
-    ns keysDo:[:nm|
-        (nm startsWith: prefix) ifTrue:[
-            cls := ns classNamed: nm.
-            (cls notNil and:[cls name = nm]) ifTrue:[
-                (JavaPackage isNil or:[cls isJavaPackage not]) ifTrue:[
-                    result add:(((PO forClass: cls)) showPrefix: cls isJavaClass).
+    [ namespace isNameSpace ] whileFalse:[ namespace := namespace nameSpace ].
+
+    environment keysDo:[:name |
+            | value |
+
+            (self isGlobalKeyForClassVariable: name) ifFalse:[ 
+                value := environment at: name.
+                ((name startsWith: prefix) or:[(value isBehavior and:[(value nameWithoutPrefix startsWith: prefix) or:[value nameWithoutNameSpacePrefix startsWith: prefix]])]) ifTrue:[
+                    (value notNil and:[value isBehavior]) ifTrue:[ 
+                        "/ Check for aliases...
+                        | clsnm |
+
+                        clsnm := value name.
+                        clsnm = name ifTrue:[ 
+                            result add: (PO forClass: value)
+                        ] ifFalse:[ 
+                            result add: (PO forGlobalNamed: name)  
+                        ].
+                    ] ifFalse:[ 
+                        result add: (PO forGlobalNamed: name)  
+                    ].
                 ]
-            ] ifFalse:[
-                (self isGlobalKeyForClassVariable: nm) ifFalse:[
-                    result add:(VariablePO globalVariable: nm)
-                ].
             ].
         ].
-    ].
-    ns ~~ environment ifTrue:[
-        environment keysDo:[:nm|
-            (nm startsWith: prefix) ifTrue:[
-                cls := environment classNamed: nm.
-                (JavaPackage isNil or:[cls isJavaPackage not ]) ifTrue:[
-                    cls notNil ifTrue:[
-                        cls isBehavior ifTrue:[
-                            result add:(((PO forClass: cls)) showPrefix: cls isJavaClass).
-                        ] ifFalse:[
-                            (self isGlobalKeyForClassVariable: nm) ifFalse:[
-                                result add:(VariablePO globalVariable: nm).
-                            ].
-                        ]
-                    ]
-                ]
-            ]
-        ].
-    ]
 
     "Created: / 26-11-2011 / 17:29:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 20-05-2014 / 09:58:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 24-07-2014 / 17:51:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 addJavaClassesInPackage: prefix
@@ -293,22 +325,6 @@
     "Modified: / 30-07-2013 / 23:32:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-addPrivateClasses
-    | class |
-
-
-    class := collector klass theNonMetaclass.
-    class privateClassesDo:[:pclass|
-        | nm |
-
-        nm := pclass fullName copyFrom: class fullName size + 3.
-        result add:((PO forClass: pclass) ).
-    ]
-
-    "Created: / 06-08-2013 / 12:28:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 29-05-2014 / 15:36:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
 addVariablesFor: node
 
     | n klass |
@@ -514,10 +530,11 @@
         self addGlobalsStartingWith:node name.
         self addClassVariables.
         self addPools.
-        self addPrivateClasses.
     ] ifFalse:[
         self addVariablesFor:node
     ]
+
+    "Modified: / 24-07-2014 / 19:11:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !SmalltalkCompletionEngine methodsFor:'queries'!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__SmalltalkCompletionEngineTests.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,171 @@
+"{ Encoding: utf8 }"
+
+"
+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 }"
+
+CompletionEngineTests subclass:#SmalltalkCompletionEngineTests
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Tests'
+!
+
+!SmalltalkCompletionEngineTests 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
+"
+! !
+
+!SmalltalkCompletionEngineTests methodsFor:'accessing-classes'!
+
+completionEngineClass
+    "superclass SmallSense::CompletionEngineTests says that I am responsible to implement this method"
+
+    ^ SmalltalkCompletionEngine
+
+    "Created: / 24-07-2014 / 11:51:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SmalltalkCompletionEngineTests methodsFor:'tests - classes'!
+
+test_classes_01a
+
+    context codeView classHolder value: self class.
+    context codeView codeAspect: #method. 
+    self complete:'foo
+    ^ SmalltalkCompletionEngineTe┃'.
+
+    self assert: result notEmpty.
+    self assert: (result select:[:each | each isSmallSenseClassPO and:[each klass == SmalltalkCompletionEngineTests]]) size == 1.
+
+    "Created: / 24-07-2014 / 15:12:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_classes_01b
+
+    context codeView classHolder value: self class.
+    context codeView codeAspect: #method. 
+    self complete:'foo
+    ^ OrderedColl┃'.
+
+    self assert: result notEmpty.
+    self assert: (result select:[:each | each isSmallSenseClassPO and:[each klass == OrderedCollection]]) size == 1.
+
+    "Created: / 24-07-2014 / 15:12:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_classes_01c
+
+    context codeView classHolder value: self class.
+    context codeView codeAspect: #method. 
+    self complete:'foo
+    ^ OperatingSyst┃'.
+
+    self assert: result notEmpty.
+    self assert: (result select:[:each | each isSmallSenseVariablePO and:[each name = 'OperatingSystem' ]]) size == 1.
+
+    "Created: / 24-07-2014 / 15:14:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_classes_02a
+
+    context codeView classHolder value: self class.
+    context codeView codeAspect: #method. 
+    self complete:'foo
+    ^ Phase┃'.
+
+    self assert: result notEmpty.
+    self assert: (result select:[:each | each isSmallSenseClassPO and:[each klass = SmalltalkInferencer::Phase1 ]]) size == 1.
+
+    "Created: / 24-07-2014 / 17:50:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_classes_02b
+
+    context codeView classHolder value: self class.
+    context codeView codeAspect: #method. 
+    self complete:'foo
+    ^ SmalltalkInfe┃'.
+
+    self assert: result notEmpty.
+    self assert: (result select:[:each | each isSmallSenseClassPO and:[each klass = SmalltalkInferencer::Phase1 ]]) size == 1.
+
+    "Created: / 24-07-2014 / 17:50:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_classes_03
+
+    context codeView classHolder value: self class.
+    context codeView codeAspect: #method. 
+    self complete:'foo
+    ^ ClassL┃'.
+
+    self assert: result notEmpty.
+    self assert: (result select:[:each | each isSmallSenseClassPO and:[each klass = Tools::ClassList ]]) size == 1.
+
+    "Created: / 24-07-2014 / 17:53:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_classes_04
+
+    context codeView classHolder value: SmalltalkInferencer.
+    context codeView codeAspect: #method. 
+    self complete:'foo
+    ^ Pha┃'.
+
+    self assert: result notEmpty.
+    self assert: (result select:[:each | each isSmallSenseClassPO and:[each klass = SmalltalkInferencer::Phase1 ]]) size == 1.
+    self assert: (result select:[:each | each isSmallSenseClassPO and:[each klass = SmalltalkInferencer::Phase2 ]]) size == 1.
+
+    "Created: / 24-07-2014 / 19:10:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_classes_05
+
+    context codeView classHolder value: SmalltalkInferencer.
+    context codeView codeAspect: #method. 
+    self complete:'foo
+    ^ Scree┃'.
+
+    self assert: result notEmpty.
+    self assert: (result select:[:each | each isSmallSenseVariablePO and:[each name = 'Screen' ]]) size == 1.
+
+    "Created: / 24-07-2014 / 19:54:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__SmalltalkEditSupport.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SmalltalkEditSupport.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk'
 !
 
+!SmalltalkEditSupport 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
+"
+! !
 
 !SmalltalkEditSupport class methodsFor:'utilities'!
 
@@ -30,43 +70,53 @@
     "Created: / 04-05-2014 / 23:29:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-undent: text
-    | lines indent tabwidth  |
+undent: stringOrStringCollection
+    | lines indent tabwidth ignoreIndentOfFirstLineIfZero indentOfFirstLineIsZero |
 
-    lines := text asStringCollection.
+    stringOrStringCollection isStringCollection ifTrue:[ 
+        ignoreIndentOfFirstLineIfZero := false.
+        stringOrStringCollection removeLast.
+        lines := stringOrStringCollection.
+    ] ifFalse:[
+        ignoreIndentOfFirstLineIfZero := true.
+        lines := stringOrStringCollection asStringCollection.
+    ].
     tabwidth := (ListView userDefaultTabPositions = ListView tab4Positions) ifTrue:[ 4 ] ifFalse: [ 8 ].
+    indent := nil.
+    indentOfFirstLineIsZero := false.
+
     1 to: lines size do:[:lineNo |
-        | line i |
+        | line lineIndent |
 
         line := lines at: lineNo.
-        i := line indexOfNonSeparator.
-        indent isNil ifTrue:[
-            (i ~~ 0) ifTrue:[
-                indent := ((i - 1) // tabwidth) * tabwidth.
-                indent == 0 ifTrue:[
-                    lineNo == 1 ifTrue:[
-                        indent := nil.
-                    ] ifFalse:[
-                        ^ text.
-                    ].
+        lineIndent := line indexOfNonSeparator.
+        (lineIndent ~~ 0) ifTrue:[
+            indent isNil ifTrue:[
+                indent := ((lineIndent - 1) // tabwidth) * tabwidth.
+            ] ifFalse:[ 
+                indent := (((lineIndent - 1) // tabwidth) * tabwidth) min: indent.
+            ].
+            indent == 0 ifTrue:[
+                (lineNo == 1 and:[ignoreIndentOfFirstLineIfZero]) ifTrue:[
+                    indent := nil.
+                    indentOfFirstLineIsZero := true.
+                ] ifFalse:[
+                    ^ stringOrStringCollection isStringCollection
+                        ifTrue:[ stringOrStringCollection asStringWithoutFinalCR ]
+                        ifFalse:[ stringOrStringCollection ]
                 ].
             ].
         ].
-        indent notNil ifTrue:[
-            i > indent ifTrue:[
-                lines at: lineNo put: (line copyFrom: indent + 1).
-            ] ifFalse:[
-                ^ text.
-            ].
+    ].
+    1 to: lines size do:[:lineNr |  
+        (lineNr ~~ 1 or:[indentOfFirstLineIsZero not]) ifTrue:[ 
+            lines at: lineNr put: ((lines at: lineNr) copyFrom: indent + 1).
         ].
     ].
-    ^ (text last == Character cr) ifTrue:[
-        lines asString.
-    ] ifFalse:[
-        lines asStringWithoutFinalCR
-    ].
+    ^ lines asStringWithoutFinalCR
 
     "Created: / 04-05-2014 / 23:09:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 23-07-2014 / 23:24:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !SmalltalkEditSupport methodsFor:'accessing'!
@@ -355,6 +405,8 @@
 keyPressPaste
     | textSelected textPasted currentLineNo currentLine currentLineIsEmpty |
 
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled ifFalse:[ ^ false ].
+
     textView checkModificationsAllowed ifTrue:[
         textSelected := textPasted := textView getTextSelectionOrTextSelectionFromHistory.
         currentLineNo := textView currentLine.
@@ -378,7 +430,7 @@
     ^ true
 
     "Created: / 03-05-2014 / 01:08:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 23-06-2014 / 20:37:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 19-07-2014 / 00:13:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 keyPressReturn
@@ -394,7 +446,7 @@
     "/ ']', then remeber it.
     closingBracketIndex := 0.
     line size > textView cursorCol ifTrue: [
-        line size downTo: textView cursorCol - 1 do:[:i |
+        line size downTo: ((textView cursorCol - 1) max: 1) do:[:i |
             (c :=line at:i) == Character space ifFalse:[
                 (c == $] and:[closingBracketIndex == 0]) ifTrue:[
                     closingBracketIndex := i.
@@ -485,7 +537,7 @@
     ^ false.
 
     "Created: / 25-07-2013 / 00:02:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 22-01-2014 / 21:44:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 23-06-2014 / 20:22:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 keyPressReturnToken
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__SmalltalkEditSupportTests.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,330 @@
+"
+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 }"
+
+EditSupportTests subclass:#SmalltalkEditSupportTests
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Tests'
+!
+
+!SmalltalkEditSupportTests 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
+"
+! !
+
+!SmalltalkEditSupportTests methodsFor:'accessing-classes'!
+
+editSupportClass
+    "superclass SmallSense::EditSupportTests says that I am responsible to implement this method"
+
+    ^ SmalltalkEditSupport
+
+    "Created: / 23-07-2014 / 07:16:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SmalltalkEditSupportTests methodsFor:'tests - completion'!
+
+test_complete_if_unambiguous_01    
+
+    UserPreferences current smallSenseCompleteIfUnambiguous: true.  
+    codeView editedMethodOrClass: self class.
+    codeView contents:'editService'.
+    codeView setCursorCol: 12.
+
+    codeViewInteractor type: #(Return Tab).
+    codeViewInteractor type: 't'.
+    Delay waitForMilliseconds: 250.
+    codeViewInteractor type: 'h'.
+    self assert: (codeView list at: 2) = '    thisContext'.
+    Delay waitForMilliseconds: 250.
+    codeViewInteractor type: 'isContext'.
+    self assert: (codeView list at: 2) = '    thisContext'.
+
+    "Created: / 23-07-2014 / 23:38:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:58:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_complete_if_unambiguous_02
+
+    UserPreferences current smallSenseCompleteIfUnambiguous: true.  
+    codeView editedMethodOrClass: self class.
+    codeView contents:'editService'.
+    codeView setCursorCol: 12.
+
+    codeViewInteractor type: #(Return Tab).
+    codeViewInteractor type: 't'.
+    Delay waitForMilliseconds: 250.
+    codeViewInteractor type: 'h'.
+    self assert: (codeView list at: 2) = '    thisContext'.
+    Delay waitForMilliseconds: 250.
+    codeViewInteractor type: 'is receiver'.
+    self assert: (codeView list at: 2) = '    thisContext receiver'.
+
+    "Created: / 11-08-2014 / 15:00:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_complete_if_unambiguous_03
+
+    UserPreferences current smallSenseCompleteIfUnambiguous: true.  
+    codeView editedMethodOrClass: self class.
+    codeView contents:'editService'.
+    codeView setCursorCol: 12.
+
+    codeViewInteractor type: #(Return Tab).
+    codeViewInteractor type: 't'.
+    Delay waitForMilliseconds: 250.
+    codeViewInteractor type: 'h'.
+    self assert: (codeView list at: 2) = '    thisContext'.
+    Delay waitForMilliseconds: 250.
+    codeViewInteractor type: 'isValue'.
+    self assert: (codeView list at: 2) = '    thisValue'.
+
+    "Created: / 11-08-2014 / 15:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SmalltalkEditSupportTests methodsFor:'tests - indent-on-paste'!
+
+test_indent_on_paste_01a
+
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled: true.
+    codeView contents:'test
+    Debug ifTrue:[ 
+
+    ].
+    self halt.'.
+
+    codeView selectFromLine: 5 col: 5 toLine: 5 col: 14.
+
+    codeViewInteractor type: #Cut.
+    codeViewInteractor type: #(CursorUp CursorUp).
+    codeViewInteractor type: #Paste.
+
+    self assert: (codeView list at: 3) = '        self halt.'.
+
+    "Created: / 23-07-2014 / 09:46:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:26:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_indent_on_paste_01b
+
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled: true.
+    codeView contents:'test
+    Debug ifTrue:[ 
+
+    ].
+    self halt.'.
+
+    codeView selectFromLine:5 col:1 toLine:6 col:0.
+
+    codeViewInteractor type: #Cut.
+    codeViewInteractor type: #(CursorUp CursorUp).
+    codeViewInteractor type: #Paste.
+
+    self assert: (codeView list at: 3) = '        self halt.'.
+
+    "Created: / 23-07-2014 / 09:47:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:26:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_indent_on_paste_02a
+
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled: true.
+    codeView contents:'test
+    Debug ifTrue:[ 
+
+    ].
+    param isNil ifTrue:[
+        self halt.
+    ]'.
+
+    codeView selectFromLine: 5 col: 5 toLine: 7 col: 5.
+
+    codeViewInteractor type: #Cut.
+    codeViewInteractor type: #(CursorUp CursorUp).
+    codeViewInteractor type: #Paste.
+
+    self assert: (codeView list at: 3) = '        param isNil ifTrue:['.
+    self assert: (codeView list at: 4) = '            self halt.'.
+    self assert: (codeView list at: 5) = '        ]'.
+
+    "Created: / 23-07-2014 / 10:20:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:26:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_indent_on_paste_02b
+
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled: true.
+    codeView contents:'test
+    Debug ifTrue:[ 
+
+    ].
+    param isNil ifTrue:[
+        self halt.
+    ]'.
+
+    codeView selectFromLine: 5 col: 1 toLine: 8 col: 0.
+
+    codeViewInteractor type: #Cut.
+    codeViewInteractor type: #(CursorUp CursorUp).
+    codeViewInteractor type: #Paste.
+
+    self assert: (codeView list at: 3) = '        param isNil ifTrue:['.
+    self assert: (codeView list at: 4) = '            self halt.'.
+    self assert: (codeView list at: 5) = '        ]'.
+
+    "Created: / 23-07-2014 / 10:20:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:26:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_indent_on_paste_03a
+
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled: true.
+    codeView contents:'test
+    Debug ifTrue:[ 
+
+    ].
+    param isNil ifTrue:[
+        self halt.
+    ]'.
+
+    codeView selectFromLine: 5 col: 5 toLine: 6 col: 18.
+
+    codeViewInteractor type: #Cut.
+    codeViewInteractor type: #(CursorUp CursorUp).
+    codeViewInteractor type: #Paste.
+
+    self assert: (codeView list at: 3) = '        param isNil ifTrue:['.
+    self assert: (codeView list at: 4) = '            self halt.'.
+
+    "Created: / 23-07-2014 / 23:28:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:26:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_indent_on_paste_03b
+
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled: true.
+    codeView contents:'test
+    Debug ifTrue:[ 
+
+    ].
+    param isNil ifTrue:[
+        self halt.
+    ]'.
+
+    codeView selectFromLine: 5 col: 1 toLine: 7 col: 0.
+
+
+    codeViewInteractor type: #Cut.
+    codeViewInteractor type: #(CursorUp CursorUp).
+    codeViewInteractor type: #Paste.
+
+    self assert: (codeView list at: 3) = '        param isNil ifTrue:['.
+    self assert: (codeView list at: 4) = '            self halt.'.
+
+    "Created: / 23-07-2014 / 23:28:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:26:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_indent_on_paste_04a
+
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled: true.
+    codeView contents:'test
+    Debug ifTrue:[ 
+        Transcript showCR:''XXX''.
+    ].
+    self halt.'.
+
+    codeView selectFromLine: 5 col: 5 toLine: 5 col: 14.
+
+    codeViewInteractor type: #Cut.
+    codeViewInteractor type: #(CursorUp CursorUp).
+    codeViewInteractor type: #Paste.
+
+    self assert: (codeView list at: 3) = '    self halt.    Transcript showCR:''XXX''.'.
+
+    "Created: / 24-07-2014 / 10:18:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:26:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_indent_on_paste_04b
+
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled: true.
+    codeView contents:'test
+    Debug ifTrue:[ 
+        Transcript showCR:''XXX''.
+    ].
+    self halt.'.
+
+    codeView selectFromLine: 5 col: 5 toLine: 6 col: 0.
+
+    codeViewInteractor type: #Cut.
+    codeViewInteractor type: #(CursorUp CursorUp).
+    codeViewInteractor type: #Paste.
+
+    self assert: (codeView list at: 3) = '    self halt.'.
+    self assert: (codeView list at: 4) = '    Transcript showCR:''XXX''.'.
+
+    "Created: / 24-07-2014 / 10:21:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:26:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_indent_on_paste_04c
+
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled: true.
+    codeView contents:'test
+    Debug ifTrue:[ 
+        Transcript showCR:''XXX''.
+    ].
+    self halt.'.
+
+    codeView selectFromLine: 5 col: 5 toLine: 6 col: 0.
+
+    codeViewInteractor type: #Cut.
+    codeViewInteractor type: #(CursorUp CursorUp CursorRight CursorRight CursorRight CursorRight).
+    codeViewInteractor type: #Paste.
+
+    self assert: (codeView list at: 3) = '        self halt.'.
+    self assert: (codeView list at: 4) = 'Transcript showCR:''XXX''.'.
+
+    "Created: / 24-07-2014 / 10:22:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 11-08-2014 / 14:26:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__SmalltalkInferencer.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SmalltalkInferencer.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -23,14 +41,42 @@
 	privateIn:SmalltalkInferencer
 !
 
+SmalltalkParseNodeVisitor subclass:#Phase3
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:SmalltalkInferencer
+!
+
 !SmalltalkInferencer 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
+"
+!
+
 documentation
 "
     A heart of SmallSense - a type inferencer. For given class
     and method source, instance of inferences walks the parse tree
     and annotate each node with inferred type.
-    
+
 
     [author:]
         Jan Vrany <jan.vrany@fit.cvut.cz>
@@ -133,7 +179,7 @@
 
 class: cls source: src
 
-    type isNil ifTrue:[ 
+    type isNil ifTrue:[
         "/ Guess...
         type := cls notNil ifTrue:[ #method ] ifFalse:[ #expression ]
     ].
@@ -168,12 +214,14 @@
 
 
     Phase1 process: tree in: class.
+    Phase2 process: tree in: class.
 
     "
     (SmallSenseParseNodeInspector new node: tree source: source) open
     "
 
     "Created: / 26-11-2011 / 12:51:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 05-08-2014 / 14:04:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 parse
@@ -182,20 +230,20 @@
         parserClass := class parserClass.
     ].
     type == #method ifTrue:[
-        parser := parserClass 
+        parser := parserClass
                     parseMethod: source in: class
-                    ignoreErrors:true 
+                    ignoreErrors:true
                     ignoreWarnings:true.
         tree := parser tree.
     ] ifFalse:[
         type == #expression ifTrue:[
             parser := parserClass for: source.
             tree := parser
-                        parseExpressionWithSelf:nil 
-                        notifying:nil 
-                        ignoreErrors:false 
-                        ignoreWarnings:false 
-                        inNameSpace:nil.   
+                        parseExpressionWithSelf:nil
+                        notifying:nil
+                        ignoreErrors:false
+                        ignoreWarnings:false
+                        inNameSpace:nil.
             parser tree: tree.
         ].
     ].
@@ -213,9 +261,9 @@
      may be obtained form receiver any time by asking for #tree."
 
     [
-        self parse. 
+        self parse.
     ] on: Error do:[:ex|
-        Transcript showCR: ex description.  
+        Transcript showCR: ex description.
         ^ self.
     ].
     tree notNil ifTrue:[
@@ -227,6 +275,27 @@
     "Modified: / 21-03-2014 / 19:00:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!SmalltalkInferencer::Phase1 class methodsFor:'documentation'!
+
+documentation
+"
+    Inferencing phase 1: guess type of variables based on message sends
+    (idea taken from RoelTyper).
+
+    Also, assign types for known variables (globals, literals, pseudo variables)
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
+! !
+
 !SmalltalkInferencer::Phase1 methodsFor:'initialization'!
 
 initialize
@@ -251,15 +320,15 @@
     selectors isEmpty ifTrue: [^OrderedCollection new].
     nextClasses := OrderedCollection with: Object.
     traverseStack := OrderedCollection new: 1000.
-        
+
     selectors
         do:
-            [:selector | 
+            [:selector |
             initialClasses := nextClasses.
             nextClasses := OrderedCollection new.
             initialClasses
                 do:
-                    [:initialClass | 
+                    [:initialClass |
                     "inline canUnderstand: for performance"
                     |cl|
                     cl := initialClass.
@@ -325,22 +394,22 @@
 
     prereqs := nil.
     def := ProjectDefinition definitionClassForPackage: class package createIfAbsent: false.
-    def notNil ifTrue:[ 
+    def notNil ifTrue:[
         prereqs := def effectivePreRequisites.
     ].
 
 
     "Now, infer variable types based on collected sends"
     sends keysAndValuesDo:[:varName :sentSelectors|
-        (types includesKey: varName) ifTrue:[      
+        (types includesKey: varName) ifTrue:[
             | classes union |
             classes := (self rootsUnderstanding: sentSelectors) collect:[:each |  ClassType new klass: each ].
 
             prereqs notNil ifTrue:[
                 "/ Make classes in packages on which method's package does **NOT** depend
                 "/ less likely to be correct (by lowering their trustfullness)
-                classes do:[:each |  
-                    (prereqs includes: each klass package) ifTrue:[ 
+                classes do:[:each |
+                    (prereqs includes: each klass package) ifTrue:[
                         each trustfullnessAdd: -20
                     ].
                 ]
@@ -348,7 +417,7 @@
             union := UnionType new.
             union addType: (types at: varName) type.
             union addTypes: classes.
-            (types at: varName) type: union     
+            (types at: varName) type: union
         ].
     ].
 
@@ -360,7 +429,7 @@
 
 visitAssignmentNode:anObject
     | type |
-    
+
     self visit: anObject variable.
     self visit: anObject expression.
     type := anObject expression inferedType type.
@@ -376,7 +445,7 @@
     | type |
 
     super visitBlockNode:anObject.
-    type := (Type withClass: BlockClosure).
+    type := Type withClass: Block.
     type trustfullness: 100.
     anObject inferedType: type.
 
@@ -396,7 +465,7 @@
     "Created: / 26-11-2011 / 13:55:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-visitMessageNode:anObject 
+visitMessageNode:anObject
 
     | rec |
 
@@ -405,16 +474,16 @@
     (rec := anObject receiver) isVariableNode ifTrue:[
         "We don't have to infer types for global/class variables"
         (rec isGlobalVariable or:[rec isClassVariable]) ifTrue:[
-            "/ Check for pattern: `Smalltalk at: #ClassName`    
+            "/ Check for pattern: `Smalltalk at: #ClassName`
             (rec name = 'Smalltalk' and:[anObject arguments conform:[:node | node isConstant ] ]) ifTrue:[
-                | result |    
+                | result |
 
                 "Here, evaluate the node, but only for certain known selectors!!
                  (think of selector #exit :-) - you'll laugh, but it hit me back hard
                  couple times...
                 "
-                (#(	at: 
-                	classNamed: 
+                (#(	at:
+                	classNamed:
                 	"/ add more...
                 ) includes:anObject selector) ifTrue:[
                 	[
@@ -460,65 +529,6 @@
     "Modified: / 18-09-2013 / 01:26:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-visitUnaryNode:anObject 
-
-    | type sel rec classes |
-
-    super visitUnaryNode:anObject.
-
-    sel := anObject selector.
-
-    sel == #class ifTrue:[
-        type := anObject receiver inferedType classSide.
-        anObject inferedType: type.
-        ^self.
-    ].
-    (sel == #new or:[sel == #basicNew]) ifTrue:[
-        rec := anObject receiver.                        
-        (rec isSelf and:[class isMetaclass]) ifTrue:[
-            type := Type withClass: class theNonMetaclass.
-            type trustfullnessAdd: 50.
-            anObject inferedType: type.
-            ^self.
-        ].
-
-        type := anObject receiver inferedType instanceSide.
-        anObject inferedType: type.
-        ^self.
-    ].
-
-    rec := anObject receiver.
-    classes := rec inferedType classes.
-    classes size == 1 ifTrue:[
-        "/ Special hack for Java, when code is like
-        "/ `JAVA java lang reflect` 
-        classes anElement == JavaPackage class ifTrue:[
-            (JAVA notNil and:[anObject selector first isUppercase]) ifTrue:[
-                | jclass |
-
-                "/ fetch an accessor...
-                [
-                    jclass := anObject evaluate. 
-                    "/ fetch the class...
-                    jclass := JavaVM classNamed: jclass fullName definedBy: JavaVM systemClassLoader.
-                    jclass notNil ifTrue:[
-                        anObject inferedType: (Type withClass: jclass class).
-                    ] ifFalse:[
-                        anObject inferedType: (Type withClass: JavaClass class).
-                    ].
-                ] on: Error do:[
-                    "/ ignore...
-                ]
-            ] ifFalse:[
-                anObject inferedType: (Type withClass: JavaPackage class).
-            ].
-        ].
-    ].
-
-    "Created: / 27-11-2011 / 15:49:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 08-10-2013 / 11:07:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
 visitVariableNode:anObject
 
     | t |
@@ -555,22 +565,146 @@
     "Modified: / 26-10-2013 / 10:08:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!SmalltalkInferencer::Phase2 methodsFor:'processing'!
+!SmalltalkInferencer::Phase2 class methodsFor:'documentation'!
+
+documentation
+"
+    Inferencing phase 2: Guess types based on 'known' selectors, like #==, #=, #class, #new: and so on...
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
 
-process: tree in: cls
+    [see also:]
+
+"
+! !
+
+!SmalltalkInferencer::Phase2 methodsFor:'visiting'!
+
+visitMessageNode:aMessageNode
+
+    | selector |
+
+    super visitMessageNode: aMessageNode.  
 
-    self process: tree in: cls info: (Manager instance infoForClass: cls)
+    selector := aMessageNode selector.
+    "/ Some selectors are known / expected  to return boolean
+    (#( #== #~~ #= #~= #< #<= #=> #> #contains: includes: includesKey: #anySatisfy: #allSatisfy:) includes: selector) ifTrue:[
+        aMessageNode inferedType: (Type withClass: Boolean).
+        ^ self.
+    ].
+
+    "/ Some selectors are known / expected  to return some numerical values
+    (#( #+ #- #* #/ #// #\\ ) includes: selector) ifTrue:[
+        aMessageNode inferedType: (Type withClass: Number).
+        ^ self.
+    ].
+
 
-    "Created: / 26-11-2011 / 13:48:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "/ #new / #basicNew: conventionally returns an instance of the class, if receiver is a class.
+    (#(#new: #basicNew:) includes: selector) ifTrue:[
+        | rec type |
+        rec := aMessageNode receiver.
+        (rec isSelf and:[class isMetaclass]) ifTrue:[
+            type := Type withClass: class theNonMetaclass.
+            type trustfullnessAdd: 50.
+            aMessageNode inferedType: type.
+            ^self.
+        ].
+
+        type := aMessageNode receiver inferedType instanceSide.
+        aMessageNode inferedType: type.
+        ^self.
+    ].
+
+    "Created: / 05-08-2014 / 14:03:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 26-09-2014 / 11:20:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-process: tree in: cls info: clsInfo
+visitUnaryNode:anObject
+
+    | type sel rec classes |
+
+    super visitUnaryNode:anObject.
+
+    sel := anObject selector.
+
+    "/ #class should always return a class of the receiver...
+    sel == #class ifTrue:[
+        type := anObject receiver inferedType classSide.
+        anObject inferedType: type.
+        ^self.
+    ].
+
+    "/ #new / #basicNew: conventionally returns an instance of the class, if receiver is a class.
+    (sel == #new or:[sel == #basicNew]) ifTrue:[
+        rec := anObject receiver.
+        (rec isSelf and:[class isMetaclass]) ifTrue:[
+            type := Type withClass: class theNonMetaclass.
+            type trustfullnessAdd: 50.
+            anObject inferedType: type.
+            ^self.
+        ].
+
+        type := anObject receiver inferedType instanceSide.
+        anObject inferedType: type.
+        ^self.
+    ].
+
+    rec := anObject receiver.
+    classes := rec inferedType classes.
+    classes size == 1 ifTrue:[
+        "/ Special hack for Java, when code is like
+        "/ `JAVA java lang reflect`
+        classes anElement == JavaPackage class ifTrue:[
+            (JAVA notNil and:[anObject selector first isUppercase]) ifTrue:[
+                | jclass |
 
-    class := cls.
-    classInfo := clsInfo.
-    self visit: tree.
+                "/ fetch an accessor...
+                [
+                    jclass := anObject evaluate.
+                    "/ fetch the class...
+                    jclass := JavaVM classNamed: jclass fullName definedBy: JavaVM systemClassLoader.
+                    jclass notNil ifTrue:[
+                        anObject inferedType: (Type withClass: jclass class).
+                    ] ifFalse:[
+                        anObject inferedType: (Type withClass: JavaClass class).
+                    ].
+                ] on: Error do:[
+                    "/ ignore...
+                ]
+            ] ifFalse:[
+                anObject inferedType: (Type withClass: JavaPackage class).
+            ].
+        ].
+    ].
 
-    "Created: / 27-11-2011 / 16:22:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 27-11-2011 / 15:49:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 08-10-2013 / 11:07:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 05-08-2014 / 13:56:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SmalltalkInferencer::Phase3 class methodsFor:'documentation'!
+
+documentation
+"
+    Phase 3: guess types based on naming conventions. This is mainly to process
+    parameters in form of aString or aStringOrBoolean...
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
 ! !
 
 !SmalltalkInferencer class methodsFor:'documentation'!
--- a/SmallSense__SmalltalkInferencerParameters.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SmalltalkInferencerParameters.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk-Types-Inference'
 !
 
+!SmalltalkInferencerParameters 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
+"
+! !
 
 !SmalltalkInferencerParameters class methodsFor:'initialization'!
 
--- a/SmallSense__SmalltalkParseNodeFinder.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SmalltalkParseNodeFinder.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk'
 !
 
+!SmalltalkParseNodeFinder 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
+"
+! !
 
 !SmalltalkParseNodeFinder methodsFor:'finding'!
 
--- a/SmallSense__SmalltalkParseNodeVisitor.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SmalltalkParseNodeVisitor.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -11,6 +29,27 @@
 
 !SmalltalkParseNodeVisitor 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
+"
+!
+
 documentation
 "
     An abstract parse tree visitor. Copied from libcomp
--- a/SmallSense__SmalltalkParser.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SmalltalkParser.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk'
 !
 
+!SmalltalkParser 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
+"
+! !
 
 !SmalltalkParser methodsFor:'accessing'!
 
--- a/SmallSense__SmalltalkParserTests.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SmalltalkParserTests.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Tests-Obsolete'
 !
 
+!SmalltalkParserTests 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
+"
+! !
 
 !SmalltalkParserTests methodsFor:'parseTests'!
 
--- a/SmallSense__SmalltalkQuickFixer.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SmalltalkQuickFixer.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -16,6 +34,28 @@
 	privateIn:SmalltalkQuickFixer
 !
 
+!SmalltalkQuickFixer 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
+"
+! !
 
 !SmalltalkQuickFixer class methodsFor:'instance creation'!
 
--- a/SmallSense__SmalltalkUnacceptedMethodEnvironment.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SmalltalkUnacceptedMethodEnvironment.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk-Lint'
 !
 
+!SmalltalkUnacceptedMethodEnvironment 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
+"
+! !
 
 !SmalltalkUnacceptedMethodEnvironment class methodsFor:'initialization'!
 
--- a/SmallSense__SnippetPO.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__SnippetPO.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core-Interface-PO'
 !
 
+!SnippetPO 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
+"
+! !
 
 !SnippetPO methodsFor:'accessing'!
 
--- a/SmallSense__TestCase.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__TestCase.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Tests-Obsolete'
 !
 
+!TestCase 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
+"
+! !
 
 !TestCase class methodsFor:'testing'!
 
--- a/SmallSense__TokenPatternMatcher.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__TokenPatternMatcher.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -11,6 +29,27 @@
 
 !TokenPatternMatcher 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
+"
+!
+
 documentation
 "
     A custom regex-like matcher to match token streams.
--- a/SmallSense__TokenPatternMatcherTests.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__TokenPatternMatcherTests.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,29 @@
 	category:'SmallSense-Tests'
 !
 
+!TokenPatternMatcherTests 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
+"
+! !
+
 !TokenPatternMatcherTests methodsFor:'tests'!
 
 test_01
--- a/SmallSense__TokenPatternParser.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__TokenPatternParser.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -18,6 +36,27 @@
 
 !TokenPatternParser 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
+"
+!
+
 documentation
 "
     A parser to parse token patterns
--- a/SmallSense__TokenPatternToken.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__TokenPatternToken.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,29 @@
 	category:'SmallSense-Utils-Matcher'
 !
 
+!TokenPatternToken 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
+"
+! !
+
 !TokenPatternToken methodsFor:'accessing'!
 
 type
--- a/SmallSense__TokenPatternTokenSet.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__TokenPatternTokenSet.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,29 @@
 	category:'SmallSense-Utils-Matcher'
 !
 
+!TokenPatternTokenSet 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
+"
+! !
+
 !TokenPatternTokenSet methodsFor:'accessing'!
 
 dispatchTo: aMatcher
--- a/SmallSense__TokenStream.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__TokenStream.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -19,6 +37,27 @@
 
 !TokenStream 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
+"
+!
+
 documentation
 "
     A custom read-only stream that return high-level tokens produced
@@ -203,12 +242,12 @@
 
 position: anInteger
     (positionMax - anInteger) > (tokens size) ifTrue:[
-        Stream positionErrorSignal raiseErrorString:'Not that much tokens in backlog!! Icrease it and try again'.
+        Stream positionErrorSignal raiseErrorString:'Not that much tokens in backlog!! You may try to increase it.'.
         ^ self.
     ].
     position := anInteger.
 
-    "Modified: / 13-06-2014 / 16:54:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 11:46:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 position: tokenPosition sourcePosition: sourcePosition
@@ -228,13 +267,18 @@
 !
 
 reset
-    (positionMax) > (tokens size) ifFalse:[
+    (positionMax) > (tokens size) ifTrue:[
         scanner sourceStream reset.    
+        tokens := Array new: BacklogSize.
+        last := 0.
+        full := false.
+        position := 0.
+        positionMax := 0.
     ].
     position := 0.
 
     "Created: / 14-05-2014 / 16:19:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 13-06-2014 / 16:47:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 11:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 skipSeparators
--- a/SmallSense__Type.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__Type.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -11,6 +29,27 @@
 
 !Type 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
+"
+!
+
 documentation
 "
     An object representing an inferred type.
--- a/SmallSense__TypeHolder.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__TypeHolder.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk-Types'
 !
 
+!TypeHolder 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
+"
+! !
 
 !TypeHolder class methodsFor:'instance creation'!
 
--- a/SmallSense__UnionType.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__UnionType.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Smalltalk-Types'
 !
 
+!UnionType 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
+"
+! !
 
 !UnionType methodsFor:'accessing'!
 
--- a/SmallSense__UnknownType.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__UnknownType.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -16,6 +34,28 @@
 "
 !
 
+!UnknownType 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
+"
+! !
 
 !UnknownType class methodsFor:'instance creation'!
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__VariableBindingPO.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,87 @@
+"
+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 }"
+
+PO subclass:#VariableBindingPO
+	instanceVariableNames:'binding'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Java-Interface-PO'
+!
+
+!VariableBindingPO 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
+"
+! !
+
+!VariableBindingPO methodsFor:'accessing'!
+
+binding
+    ^ binding
+!
+
+binding:b
+    binding := b.
+!
+
+label
+    "Return a text to be displayed. The label may be cached
+     `label` instvar."
+
+    ^ binding name
+
+    "Created: / 14-08-2014 / 09:02:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+stringToCompleteForLanguage:aProgrammingLanguage
+    "Answers a string to complete"
+
+    ^ binding name
+
+    "Created: / 14-08-2014 / 09:02:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VariableBindingPO methodsFor:'testing'!
+
+isSmallSenseVariableBindingPO
+    ^ true
+
+    "Created: / 14-08-2014 / 09:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__VariablePO.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/SmallSense__VariablePO.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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 }"
@@ -9,6 +27,28 @@
 	category:'SmallSense-Core-Interface-PO'
 !
 
+!VariablePO 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
+"
+! !
 
 !VariablePO class methodsFor:'instance creation'!
 
--- a/abbrev.stc	Wed Jul 09 12:23:50 2014 +0100
+++ b/abbrev.stc	Wed Oct 01 23:44:32 2014 +0100
@@ -2,79 +2,86 @@
 # 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 jv:smallsense 'SmallSense-Core-Interface-Search' 1
-SmallSense::BaseTestClass SmallSense__BaseTestClass jv:smallsense 'SmallSense-Tests-Obsolete' 1
-SmallSense::CodeHighlightingService SmallSense__CodeHighlightingService jv:smallsense 'SmallSense-Core-Services' 0
-SmallSense::CodeNavigationService SmallSense__CodeNavigationService jv:smallsense 'SmallSense-Core-Services' 0
-SmallSense::CompletionContext SmallSense__CompletionContext jv:smallsense 'SmallSense-Core' 0
-SmallSense::CompletionController SmallSense__CompletionController jv:smallsense 'SmallSense-Core' 0
-SmallSense::CompletionEngine SmallSense__CompletionEngine jv:smallsense 'SmallSense-Core' 0
-SmallSense::CompletionEngineTests SmallSense__CompletionEngineTests jv:smallsense 'SmallSense-Tests' 1
-SmallSense::CompletionResult SmallSense__CompletionResult jv:smallsense 'SmallSense-Core' 0
-SmallSense::CompletionView SmallSense__CompletionView jv:smallsense 'SmallSense-Core-Interface' 2
-SmallSense::CriticsWindow SmallSense__CriticsWindow jv:smallsense 'SmallSense-Core-Interface' 1
-SmallSense::EditService SmallSense__EditService jv:smallsense 'SmallSense-Core-Services' 0
-SmallSense::EditSupport SmallSense__EditSupport jv:smallsense 'SmallSense-Core-Services' 0
-SmallSense::Info SmallSense__Info jv:smallsense 'SmallSense-Smalltalk-Types-Info' 0
-SmallSense::JavaCompletionEngineEnvironmentResource SmallSense__JavaCompletionEngineEnvironmentResource jv:smallsense 'SmallSense-Tests' 1
-SmallSense::Manager SmallSense__Manager jv:smallsense 'SmallSense-Smalltalk-Types-Info' 0
-SmallSense::PO SmallSense__PO jv:smallsense 'SmallSense-Core-Interface-PO' 0
-SmallSense::ParseTreeIndex SmallSense__ParseTreeIndex jv:smallsense 'SmallSense-Core-Index' 0
-SmallSense::ParseTreeIndexEntry SmallSense__ParseTreeIndexEntry jv:smallsense 'SmallSense-Core-Index' 0
-SmallSense::ParseTreeInspector SmallSense__ParseTreeInspector jv:smallsense 'SmallSense-Core-Interface' 1
-SmallSense::SelectorNode SmallSense__SelectorNode jv:smallsense 'SmallSense-Smalltalk' 0
-SmallSense::SettingsAppl SmallSense__SettingsAppl jv:smallsense 'SmallSense-Core-Interface' 1
-SmallSense::SmalltalkChecker SmallSense__SmalltalkChecker jv:smallsense 'SmallSense-Smalltalk-Lint' 0
-SmallSense::SmalltalkInferencerParameters SmallSense__SmalltalkInferencerParameters jv:smallsense 'SmallSense-Smalltalk-Types-Inference' 0
-SmallSense::SmalltalkLintAnnotation SmallSense__SmalltalkLintAnnotation jv:smallsense 'SmallSense-Smalltalk-Lint' 0
-SmallSense::SmalltalkLintHighlighter SmallSense__SmalltalkLintHighlighter jv:smallsense 'SmallSense-Smalltalk-Lint' 0
-SmallSense::SmalltalkLintService SmallSense__SmalltalkLintService jv:smallsense 'SmallSense-Smalltalk-Lint' 0
-SmallSense::SmalltalkParseNodeVisitor SmallSense__SmalltalkParseNodeVisitor jv:smallsense 'SmallSense-Smalltalk' 0
-SmallSense::SmalltalkParser SmallSense__SmalltalkParser jv:smallsense 'SmallSense-Smalltalk' 3
-SmallSense::SmalltalkQuickFixer SmallSense__SmalltalkQuickFixer jv:smallsense 'SmallSense-Smalltalk-Lint' 0
-SmallSense::SmalltalkSyntaxHighlighter SmallSense__SmalltalkSyntaxHighlighter jv:smallsense 'SmallSense-Smalltalk' 3
-SmallSense::SmalltalkUnacceptedMethodEnvironment SmallSense__SmalltalkUnacceptedMethodEnvironment jv:smallsense 'SmallSense-Smalltalk-Lint' 0
-SmallSense::TestCase SmallSense__TestCase jv:smallsense 'SmallSense-Tests-Obsolete' 1
-SmallSense::TokenPatternMatcher SmallSense__TokenPatternMatcher jv:smallsense 'SmallSense-Utils-Matcher' 0
-SmallSense::TokenPatternMatcherTests SmallSense__TokenPatternMatcherTests jv:smallsense 'SmallSense-Tests' 1
-SmallSense::TokenPatternParser SmallSense__TokenPatternParser jv:smallsense 'SmallSense-Utils-Matcher' 0
-SmallSense::TokenPatternToken SmallSense__TokenPatternToken jv:smallsense 'SmallSense-Utils-Matcher' 0
-SmallSense::TokenPatternTokenSet SmallSense__TokenPatternTokenSet jv:smallsense 'SmallSense-Utils-Matcher' 0
-SmallSense::TokenStream SmallSense__TokenStream jv:smallsense 'SmallSense-Utils-Matcher' 0
-SmallSense::Type SmallSense__Type jv:smallsense 'SmallSense-Smalltalk-Types' 0
-SmallSense::TypeHolder SmallSense__TypeHolder jv:smallsense 'SmallSense-Smalltalk-Types' 0
-jv_smallsense jv_smallsense jv:smallsense '* Projects & Packages *' 3
+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
+SmallSense::CompletionController SmallSense__CompletionController stx:goodies/smallsense 'SmallSense-Core' 0
+SmallSense::CompletionEngine SmallSense__CompletionEngine stx:goodies/smallsense 'SmallSense-Core' 0
+SmallSense::CompletionResult SmallSense__CompletionResult stx:goodies/smallsense 'SmallSense-Core' 0
+SmallSense::CompletionView SmallSense__CompletionView stx:goodies/smallsense 'SmallSense-Core-Interface' 2
+SmallSense::CriticsWindow SmallSense__CriticsWindow stx:goodies/smallsense 'SmallSense-Core-Interface' 1
+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
+SmallSense::ParseTreeIndexEntry SmallSense__ParseTreeIndexEntry stx:goodies/smallsense 'SmallSense-Core-Index' 0
+SmallSense::ParseTreeInspector SmallSense__ParseTreeInspector stx:goodies/smallsense 'SmallSense-Core-Interface' 1
+SmallSense::SelectorNode SmallSense__SelectorNode stx:goodies/smallsense 'SmallSense-Smalltalk' 0
+SmallSense::SettingsAppl SmallSense__SettingsAppl stx:goodies/smallsense 'SmallSense-Core-Interface' 1
+SmallSense::SmalltalkChecker SmallSense__SmalltalkChecker stx:goodies/smallsense 'SmallSense-Smalltalk-Lint' 0
+SmallSense::SmalltalkInferencerParameters SmallSense__SmalltalkInferencerParameters stx:goodies/smallsense 'SmallSense-Smalltalk-Types-Inference' 0
+SmallSense::SmalltalkLintAnnotation SmallSense__SmalltalkLintAnnotation stx:goodies/smallsense 'SmallSense-Smalltalk-Lint' 0
+SmallSense::SmalltalkLintHighlighter SmallSense__SmalltalkLintHighlighter stx:goodies/smallsense 'SmallSense-Smalltalk-Lint' 0
+SmallSense::SmalltalkLintService SmallSense__SmalltalkLintService stx:goodies/smallsense 'SmallSense-Smalltalk-Lint' 0
+SmallSense::SmalltalkParseNodeVisitor SmallSense__SmalltalkParseNodeVisitor stx:goodies/smallsense 'SmallSense-Smalltalk' 0
+SmallSense::SmalltalkParser SmallSense__SmalltalkParser stx:goodies/smallsense 'SmallSense-Smalltalk' 3
+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
+SmallSense::TokenStream SmallSense__TokenStream stx:goodies/smallsense 'SmallSense-Utils-Matcher' 0
+SmallSense::Type SmallSense__Type stx:goodies/smallsense 'SmallSense-Smalltalk-Types' 0
+SmallSense::TypeHolder SmallSense__TypeHolder stx:goodies/smallsense 'SmallSense-Smalltalk-Types' 0
+stx_goodies_smallsense stx_goodies_smallsense stx:goodies/smallsense '* Projects & Packages *' 3
+SmallSense::AbstractJavaCompletionEngine SmallSense__AbstractJavaCompletionEngine stx:goodies/smallsense 'SmallSense-Java' 0
 SmallSense::AbstractSearchDialog SmallSense__AbstractSearchDialog jv:smallsense 'SmallSense-Core-Interface-Search' 3
-SmallSense::AbstractJavaCompletionEngine SmallSense__AbstractJavaCompletionEngine jv:smallsense 'SmallSense-Java' 0
-SmallSense::AbstractJavaCompletionEngineTests SmallSense__AbstractJavaCompletionEngineTests jv:smallsense 'SmallSense-Tests' 1
-SmallSense::ClassInfo SmallSense__ClassInfo jv:smallsense 'SmallSense-Smalltalk-Types-Info' 0
-SmallSense::ClassPO SmallSense__ClassPO jv:smallsense 'SmallSense-Core-Interface-PO' 0
-SmallSense::ClassType SmallSense__ClassType jv:smallsense 'SmallSense-Smalltalk-Types' 0
-SmallSense::ConstantPO SmallSense__ConstantPO jv:smallsense 'SmallSense-Core-Interface-PO' 0
-SmallSense::FinderTests SmallSense__FinderTests jv:smallsense 'SmallSense-Tests-Obsolete' 1
-SmallSense::GenericEditSupport SmallSense__GenericEditSupport jv:smallsense 'SmallSense-Core-Services' 0
-SmallSense::JavaEditSupport SmallSense__JavaEditSupport jv:smallsense 'SmallSense-Java' 0
-SmallSense::JavaImportPO SmallSense__JavaImportPO jv:smallsense 'SmallSense-Java-Interface-PO' 0
-SmallSense::MethodInfo SmallSense__MethodInfo jv:smallsense 'SmallSense-Smalltalk-Types-Info' 0
-SmallSense::MethodPO SmallSense__MethodPO jv:smallsense 'SmallSense-Core-Interface-PO' 0
-SmallSense::PackagePO SmallSense__PackagePO jv:smallsense 'SmallSense-Core-Interface-PO' 0
-SmallSense::RecognizerTests SmallSense__RecognizerTests jv:smallsense 'SmallSense-Tests-Obsolete' 1
-SmallSense::SmalltalkCompletionEngine SmallSense__SmalltalkCompletionEngine jv:smallsense 'SmallSense-Smalltalk' 0
-SmallSense::SmalltalkEditSupport SmallSense__SmalltalkEditSupport jv:smallsense 'SmallSense-Smalltalk' 0
-SmallSense::SmalltalkInferencer SmallSense__SmalltalkInferencer jv:smallsense 'SmallSense-Smalltalk-Types-Inference' 0
-SmallSense::SmalltalkParseNodeFinder SmallSense__SmalltalkParseNodeFinder jv:smallsense 'SmallSense-Smalltalk' 0
-SmallSense::SmalltalkParserTests SmallSense__SmalltalkParserTests jv:smallsense 'SmallSense-Tests-Obsolete' 1
-SmallSense::SnippetPO SmallSense__SnippetPO jv:smallsense 'SmallSense-Core-Interface-PO' 0
-SmallSense::UnionType SmallSense__UnionType jv:smallsense 'SmallSense-Smalltalk-Types' 0
-SmallSense::UnknownType SmallSense__UnknownType jv:smallsense 'SmallSense-Smalltalk-Types' 1
-SmallSense::VariablePO SmallSense__VariablePO jv:smallsense 'SmallSense-Core-Interface-PO' 0
+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::ClassType SmallSense__ClassType stx:goodies/smallsense 'SmallSense-Smalltalk-Types' 0
+SmallSense::CompletionEngineTests SmallSense__CompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 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::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
+SmallSense::MethodInfo SmallSense__MethodInfo stx:goodies/smallsense 'SmallSense-Smalltalk-Types-Info' 0
+SmallSense::MethodPO SmallSense__MethodPO 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::ClassSearchDialog SmallSense__ClassSearchDialog jv:smallsense 'SmallSense-Core-Interface-Search' 3
-SmallSense::AbstractJavaCompletionEngineSimple SmallSense__AbstractJavaCompletionEngineSimple jv:smallsense 'SmallSense-Java' 2
-SmallSense::GroovyCompletionEngineSimpleTests SmallSense__GroovyCompletionEngineSimpleTests jv:smallsense 'SmallSense-Tests' 1
-SmallSense::GroovyEditSupport SmallSense__GroovyEditSupport jv:smallsense 'SmallSense-Groovy' 0
-SmallSense::JavaCompletionEngine SmallSense__JavaCompletionEngine jv:smallsense 'SmallSense-Java' 0
-SmallSense::JavaConstructorPO SmallSense__JavaConstructorPO jv:smallsense 'SmallSense-Java-Interface-PO' 0
-SmallSense::MethodKeywordRestPO SmallSense__MethodKeywordRestPO jv:smallsense 'SmallSense-Core-Interface-PO' 0
+SmallSense::AbstractJavaCompletionEngineSimple SmallSense__AbstractJavaCompletionEngineSimple stx:goodies/smallsense 'SmallSense-Java' 2
+SmallSense::AbstractJavaCompletionEngineTests SmallSense__AbstractJavaCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 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::MethodSearchDialog SmallSense__MethodSearchDialog jv:smallsense 'SmallSense-Core-Interface-Search' 3
 SmallSense::PackageSearchDialog SmallSense__PackageSearchDialog jv:smallsense 'SmallSense-Core-Interface-Search' 3
-SmallSense::JavaCompletionEngineSimple SmallSense__JavaCompletionEngineSimple jv:smallsense 'SmallSense-Java' 2
-SmallSense::GroovyCompletionEngineSimple SmallSense__GroovyCompletionEngineSimple jv:smallsense 'SmallSense-Groovy' 2
+SmallSense::SmalltalkCompletionEngineTests SmallSense__SmalltalkCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::SmalltalkEditSupportTests SmallSense__SmalltalkEditSupportTests stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::GroovyCompletionEngineSimpleTests SmallSense__GroovyCompletionEngineSimpleTests stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::JavaCompletionEngineSimple SmallSense__JavaCompletionEngineSimple stx:goodies/smallsense 'SmallSense-Java' 2
+SmallSense::JavaCompletionEngineTests SmallSense__JavaCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::GroovyCompletionEngineSimple SmallSense__GroovyCompletionEngineSimple stx:goodies/smallsense 'SmallSense-Groovy' 2
--- a/bc.mak	Wed Jul 09 12:23:50 2014 +0100
+++ b/bc.mak	Wed Oct 01 23:44:32 2014 +0100
@@ -20,7 +20,7 @@
 #  this has changed; it is now also possible to build using microsoft visual c
 #    (called via vcmake, by "make.exe -f bc.mak -DUSEVC")
 #
-TOP=..\..\..\stx
+TOP=..\..
 INCLUDE_TOP=$(TOP)\..
 
 
@@ -50,23 +50,23 @@
 
 # build all mandatory prerequisite packages (containing superclasses) for this package
 prereq:
-	pushd ..\..\stx\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\goodies\refactoryBrowser\helpers & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\goodies\refactoryBrowser\parser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\goodies\regex & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\libcomp & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\libui & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\goodies\refactoryBrowser\browser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\goodies\refactoryBrowser\lint & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\libhtml & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\libwidg2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\libtool & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\refactoryBrowser\helpers & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\refactoryBrowser\parser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\regex & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libcomp & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libui & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	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) "
+	pushd ..\..\libwidg2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libtool & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 
 
 
@@ -97,7 +97,7 @@
 $(OUTDIR)SmallSense__Info.$(O) SmallSense__Info.$(H): SmallSense__Info.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__Manager.$(O) SmallSense__Manager.$(H): SmallSense__Manager.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__PO.$(O) SmallSense__PO.$(H): SmallSense__PO.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__ParseTreeIndex.$(O) SmallSense__ParseTreeIndex.$(H): SmallSense__ParseTreeIndex.st $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SortedCollection.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__ParseTreeIndex.$(O) SmallSense__ParseTreeIndex.$(H): SmallSense__ParseTreeIndex.st $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ParseTreeIndexEntry.$(O) SmallSense__ParseTreeIndexEntry.$(H): SmallSense__ParseTreeIndexEntry.st $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ParseTreeInspector.$(O) SmallSense__ParseTreeInspector.$(H): SmallSense__ParseTreeInspector.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SelectorNode.$(O) SmallSense__SelectorNode.$(H): SmallSense__SelectorNode.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(STCHDR)
@@ -120,32 +120,36 @@
 $(OUTDIR)SmallSense__Type.$(O) SmallSense__Type.$(H): SmallSense__Type.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__TypeHolder.$(O) SmallSense__TypeHolder.$(H): SmallSense__TypeHolder.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)stx_goodies_smallsense.$(O) stx_goodies_smallsense.$(H): stx_goodies_smallsense.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__AbstractJavaCompletionEngine.$(O) SmallSense__AbstractJavaCompletionEngine.$(H): SmallSense__AbstractJavaCompletionEngine.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__AbstractJavaCompletionEngine.$(O) SmallSense__AbstractJavaCompletionEngine.$(H): SmallSense__AbstractJavaCompletionEngine.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__AbstractSearchDialog.$(O) SmallSense__AbstractSearchDialog.$(H): SmallSense__AbstractSearchDialog.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__AbstractDIalog.$(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__ClassInfo.$(O) SmallSense__ClassInfo.$(H): SmallSense__ClassInfo.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__Info.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(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__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__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__JavaEditSupport.$(O) SmallSense__JavaEditSupport.$(H): SmallSense__JavaEditSupport.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__EditSupport.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__JavaImportPO.$(O) SmallSense__JavaImportPO.$(H): SmallSense__JavaImportPO.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__MethodInfo.$(O) SmallSense__MethodInfo.$(H): SmallSense__MethodInfo.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__Info.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__MethodPO.$(O) SmallSense__MethodPO.$(H): SmallSense__MethodPO.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__PackagePO.$(O) SmallSense__PackagePO.$(H): SmallSense__PackagePO.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__SmalltalkCompletionEngine.$(O) SmallSense__SmalltalkCompletionEngine.$(H): SmallSense__SmalltalkCompletionEngine.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__SmalltalkEditSupport.$(O) SmallSense__SmalltalkEditSupport.$(H): SmallSense__SmalltalkEditSupport.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__EditSupport.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__SmalltalkInferencer.$(O) SmallSense__SmalltalkInferencer.$(H): SmallSense__SmalltalkInferencer.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__SmalltalkParseNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__SmalltalkParseNodeFinder.$(O) SmallSense__SmalltalkParseNodeFinder.$(H): SmallSense__SmalltalkParseNodeFinder.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__SmalltalkParseNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__SnippetPO.$(O) SmallSense__SnippetPO.$(H): SmallSense__SnippetPO.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__UnionType.$(O) SmallSense__UnionType.$(H): SmallSense__UnionType.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__SmalltalkInferencerParameters.$(H) $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__Type.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__UnknownType.$(O) SmallSense__UnknownType.$(H): SmallSense__UnknownType.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__Type.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__VariablePO.$(O) SmallSense__VariablePO.$(H): SmallSense__VariablePO.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__AbstractJavaCompletionEngineSimple.$(O) SmallSense__AbstractJavaCompletionEngineSimple.$(H): SmallSense__AbstractJavaCompletionEngineSimple.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__ClassInfo.$(O) SmallSense__ClassInfo.$(H): SmallSense__ClassInfo.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__Info.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(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__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__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__JavaEditSupport.$(O) SmallSense__JavaEditSupport.$(H): SmallSense__JavaEditSupport.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__EditSupport.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__JavaImportPO.$(O) SmallSense__JavaImportPO.$(H): SmallSense__JavaImportPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__MethodBindingPO.$(O) SmallSense__MethodBindingPO.$(H): SmallSense__MethodBindingPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__MethodInfo.$(O) SmallSense__MethodInfo.$(H): SmallSense__MethodInfo.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__Info.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__MethodPO.$(O) SmallSense__MethodPO.$(H): SmallSense__MethodPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__SmalltalkCompletionEngine.$(O) SmallSense__SmalltalkCompletionEngine.$(H): SmallSense__SmalltalkCompletionEngine.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__SmalltalkEditSupport.$(O) SmallSense__SmalltalkEditSupport.$(H): SmallSense__SmalltalkEditSupport.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__EditSupport.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__SmalltalkInferencer.$(O) SmallSense__SmalltalkInferencer.$(H): SmallSense__SmalltalkInferencer.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__SmalltalkParseNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__SmalltalkParseNodeFinder.$(O) SmallSense__SmalltalkParseNodeFinder.$(H): SmallSense__SmalltalkParseNodeFinder.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__SmalltalkParseNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__SnippetPO.$(O) SmallSense__SnippetPO.$(H): SmallSense__SnippetPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__UnionType.$(O) SmallSense__UnionType.$(H): SmallSense__UnionType.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__SmalltalkInferencerParameters.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__Type.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__UnknownType.$(O) SmallSense__UnknownType.$(H): SmallSense__UnknownType.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__Type.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__VariableBindingPO.$(O) SmallSense__VariableBindingPO.$(H): SmallSense__VariableBindingPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__VariablePO.$(O) SmallSense__VariablePO.$(H): SmallSense__VariablePO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__AbstractJavaCompletionEngineSimple.$(O) SmallSense__AbstractJavaCompletionEngineSimple.$(H): SmallSense__AbstractJavaCompletionEngineSimple.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__ClassSearchDialog.$(O) SmallSense__ClassSearchDialog.$(H): SmallSense__ClassSearchDialog.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__AbstractDIalog.$(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__GroovyEditSupport.$(O) SmallSense__GroovyEditSupport.$(H): SmallSense__GroovyEditSupport.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__EditSupport.$(H) $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__JavaEditSupport.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__JavaCompletionEngine.$(O) SmallSense__JavaCompletionEngine.$(H): SmallSense__JavaCompletionEngine.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__JavaConstructorPO.$(O) SmallSense__JavaConstructorPO.$(H): SmallSense__JavaConstructorPO.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__MethodPO.$(H) $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
-$(OUTDIR)SmallSense__MethodKeywordRestPO.$(O) SmallSense__MethodKeywordRestPO.$(H): SmallSense__MethodKeywordRestPO.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__MethodPO.$(H) $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__GroovyEditSupport.$(O) SmallSense__GroovyEditSupport.$(H): SmallSense__GroovyEditSupport.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__EditSupport.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__JavaEditSupport.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__JavaCompletionEngine.$(O) SmallSense__JavaCompletionEngine.$(H): SmallSense__JavaCompletionEngine.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__JavaConstructorPO.$(O) SmallSense__JavaConstructorPO.$(H): SmallSense__JavaConstructorPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__MethodPO.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__MethodKeywordRestPO.$(O) SmallSense__MethodKeywordRestPO.$(H): SmallSense__MethodKeywordRestPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__MethodPO.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(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__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)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBTransformationRule.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libcomp\AssignmentNode.$(H) $(INCLUDE_TOP)\stx\libcomp\BlockNode.$(H) $(INCLUDE_TOP)\stx\libcomp\MessageNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseErrorNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimaryNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimitiveNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ReturnNode.$(H) $(INCLUDE_TOP)\stx\libcomp\StatementNode.$(H) $(INCLUDE_TOP)\stx\libcomp\VariableNode.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentFrame.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentView.$(H) $(INCLUDE_TOP)\stx\libtool\SystemBrowser.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeCompletionService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NavigationState.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextViewCompletionSupport.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextCollector.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(INCLUDE_TOP)\stx\libwidg\Workspace.$(H) $(INCLUDE_TOP)\stx\libwidg2\DoWhatIMeanSupport.$(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__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__PackageSearchDialog.$(O) SmallSense__PackageSearchDialog.$(H): SmallSense__PackageSearchDialog.st $(INCLUDE_TOP)\stx\goodies/smallsense\SmallSense__AbstractDIalog.$(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)
--- a/extensions.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/extensions.st	Wed Oct 01 23:44:32 2014 +0100
@@ -171,6 +171,14 @@
     ^ autoIndent
 ! !
 
+!EditTextViewCompletionSupport methodsFor:'queries'!
+
+isCompletionViewShown
+    ^ completionView notNil and:[ completionView isVisible ]
+
+    "Created: / 13-08-2014 / 16:00:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !HTMLDocumentView methodsFor:'actions'!
 
 doQuickFix: quickFixNo
@@ -537,12 +545,19 @@
                 | cls |
 
                 cls := env at:nm.
-                (cls notNil 
-                    and:[ cls isBehavior and:[ (matches includesIdentical:cls) not ] ]) 
+                (cls notNil and:[ cls isBehavior and:[ (matches includesIdentical:cls) not ] ]) 
                         ifTrue:[
-                            (matcher value:cls) ifTrue:[
-                                matches add:cls
-                            ].
+                            "cls isJavaClass"false ifTrue:[ 
+                                cls isAnonymous ifFalse:[ 
+                                    (matcher value:cls) ifTrue:[
+                                        matches add:cls
+                                    ].
+                                ].
+                            ] ifFalse:[
+                                (matcher value:cls) ifTrue:[
+                                    matches add:cls
+                                ].
+                            ]
                         ].
             ].
         relax := relax + 1.
@@ -561,6 +576,7 @@
     ]
 
     "Created: / 06-04-2012 / 12:56:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-08-2014 / 13:10:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Tools::NewSystemBrowser class methodsFor:'utilities'!
@@ -775,6 +791,32 @@
     "Created: / 02-04-2012 / 11:37:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!UserPreferences methodsFor:'accessing-SmallSense-Smalltalk'!
+
+smallSenseSmalltalkIndentOnPasteEnabled
+    "Return true if SmallSense indent-on-paste is enabled for Smalltalk language"
+
+    ^self at:#smallSenseSmalltalkIndentOnPasteEnabled ifAbsent:[false]
+
+    "Created: / 19-07-2014 / 00:11:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!UserPreferences methodsFor:'accessing-SmallSense-Smalltalk'!
+
+smallSenseSmalltalkIndentOnPasteEnabled: aBoolean
+    "Set SmallSense indent-on-paste feature for Smalltalk"
+
+    ^ self at:#smallSenseSmalltalkIndentOnPasteEnabled put: aBoolean
+
+    "
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled: true.
+    UserPreferences current smallSenseSmalltalkIndentOnPasteEnabled: false.
+    "
+
+    "Created: / 19-07-2014 / 00:11:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !UserPreferences methodsFor:'accessing-SmallSense'!
 
 smallSenseNewDialogsEnabled
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java/extensions/org/eclipse/jdt/internal/codeassist/complete/CompletionOnFieldType.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,9 @@
+"{ Package: 'stx:goodies/smallsense' }"
+
+!
+
+!(Java classForName:'org.eclipse.jdt.internal.codeassist.complete.CompletionOnFieldType') methodsFor:'* instance *'!
+
+acceptCompletionEngine: engine
+    engine completeOnFieldType: self
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java/extensions/org/eclipse/jdt/internal/codeassist/complete/CompletionOnQualifiedNameReference.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,9 @@
+"{ Package: 'stx:goodies/smallsense' }"
+
+!
+
+!(Java classForName:'org.eclipse.jdt.internal.codeassist.complete.CompletionOnQualifiedNameReference') methodsFor:'* instance *'!
+
+acceptCompletionEngine: engine
+    engine completeOnQualifiedNameReference: self.
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java/extensions/org/eclipse/jdt/internal/codeassist/complete/CompletionOnSingleNameReference.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,9 @@
+"{ Package: 'stx:goodies/smallsense' }"
+
+!
+
+!(Java classForName:'org.eclipse.jdt.internal.codeassist.complete.CompletionOnSingleNameReference') methodsFor:'* instance *'!
+
+acceptCompletionEngine: engine
+    engine completeOnSingleNameReference: self
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java/extensions/org/eclipse/jdt/internal/codeassist/complete/CompletionOnSingleTypeReference.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,9 @@
+"{ Package: 'stx:goodies/smallsense' }"
+
+!
+
+!(Java classForName:'org.eclipse.jdt.internal.codeassist.complete.CompletionOnSingleTypeReference') methodsFor:'* instance *'!
+
+acceptCompletionEngine: engine
+    engine completeOnSingleTypeReference: self
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java/extensions/org/eclipse/jdt/internal/compiler/ast/ASTNode.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,11 @@
+"{ Package: 'stx:goodies/smallsense' }"
+
+!
+
+!(Java classForName:'org.eclipse.jdt.internal.compiler.ast.ASTNode') methodsFor:'* instance *'!
+
+acceptCompletionEngine: engine
+    (OperatingSystem getLoginName = 'jv') ifTrue:[
+        Transcript showCR: 'No completion for ', self class name  
+    ].
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java/extensions/org/eclipse/jdt/internal/compiler/lookup/BaseTypeBinding.st	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,9 @@
+"{ Package: 'stx:goodies/smallsense' }"
+
+!
+
+!(Java classForName:'org.eclipse.jdt.internal.compiler.lookup.BaseTypeBinding') methodsFor:'* instance *'!
+
+displayString
+    ^ simpleName
+! !
--- a/libInit.cc	Wed Jul 09 12:23:50 2014 +0100
+++ b/libInit.cc	Wed Oct 01 23:44:32 2014 +0100
@@ -73,6 +73,7 @@
 _SmallSense__GenericEditSupport_Init(pass,__pRT__,snd);
 _SmallSense__JavaEditSupport_Init(pass,__pRT__,snd);
 _SmallSense__JavaImportPO_Init(pass,__pRT__,snd);
+_SmallSense__MethodBindingPO_Init(pass,__pRT__,snd);
 _SmallSense__MethodInfo_Init(pass,__pRT__,snd);
 _SmallSense__MethodPO_Init(pass,__pRT__,snd);
 _SmallSense__PackagePO_Init(pass,__pRT__,snd);
@@ -83,6 +84,7 @@
 _SmallSense__SnippetPO_Init(pass,__pRT__,snd);
 _SmallSense__UnionType_Init(pass,__pRT__,snd);
 _SmallSense__UnknownType_Init(pass,__pRT__,snd);
+_SmallSense__VariableBindingPO_Init(pass,__pRT__,snd);
 _SmallSense__VariablePO_Init(pass,__pRT__,snd);
 _SmallSense__AbstractJavaCompletionEngineSimple_Init(pass,__pRT__,snd);
 _SmallSense__ClassSearchDialog_Init(pass,__pRT__,snd);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/license.txt	Wed Oct 01 23:44:32 2014 +0100
@@ -0,0 +1,508 @@
+The SmallSense is available under GNU Lesser General Public License.
+For other licensing options, please contact the SmallSense author at
+jan.vrany { at } fit.cvut.cz.
+
+
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	   How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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, or (at your option) any later version.
+
+    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
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
--- a/mingwmake.bat	Wed Jul 09 12:23:50 2014 +0100
+++ b/mingwmake.bat	Wed Oct 01 23:44:32 2014 +0100
@@ -8,7 +8,7 @@
 @FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
 @IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
 
-@pushd ..\..\stx\rules
+@pushd ..\..\rules
 @call find_mingw.bat
 @popd
 make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %*
--- a/smallsense.rc	Wed Jul 09 12:23:50 2014 +0100
+++ b/smallsense.rc	Wed Oct 01 23:44:32 2014 +0100
@@ -18,14 +18,14 @@
   BEGIN
     BLOCK "040904E4"
     BEGIN
-      VALUE "CompanyName", "eXept Software AG\0"
-      VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
+      VALUE "CompanyName", "Jan Vrany\0"
+      VALUE "FileDescription", "Smalltalk/X IDE Productivity Tool (LIB)\0"
       VALUE "FileVersion", "6.2.32767.32767\0"
       VALUE "InternalName", "stx:goodies/smallsense\0"
-      VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\0"
-      VALUE "ProductName", "Smalltalk/X\0"
+      VALUE "LegalCopyright", "Copyright Jan Vrany 2013-2014\0"
+      VALUE "ProductName", "SmallSense\0"
       VALUE "ProductVersion", "6.2.4.0\0"
-      VALUE "ProductDate", "Fri, 20 Jun 2014 13:24:34 GMT\0"
+      VALUE "ProductDate", "Thu, 14 Aug 2014 08:12:42 GMT\0"
     END
 
   END
--- a/stx_goodies_smallsense.st	Wed Jul 09 12:23:50 2014 +0100
+++ b/stx_goodies_smallsense.st	Wed Oct 01 23:44:32 2014 +0100
@@ -1,3 +1,21 @@
+"
+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' }"
 
 LibraryDefinition subclass:#stx_goodies_smallsense
@@ -7,6 +25,28 @@
 	category:'* Projects & Packages *'
 !
 
+!stx_goodies_smallsense 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
+"
+! !
 
 !stx_goodies_smallsense class methodsFor:'initialization'!
 
@@ -56,23 +96,23 @@
     "list packages which are mandatory as a prerequisite.
      This are packages containing superclasses of my classes and classes which
      are extended by myself.
-     They are mandatory, beacuse we need these packages as a prerequisite for loading and compiling.
+     They are mandatory, because we need these packages as a prerequisite for loading and compiling.
      This method is generated automatically,
      by searching along the inheritance chain of all of my classes."
 
     ^ #(
-        #'stx:goodies/refactoryBrowser/helpers'    "BrowserEnvironment - superclass of SmallSense::SmalltalkUnacceptedMethodEnvironment "
-        #'stx:goodies/refactoryBrowser/lint'    "RBLintRule - extended "
-        #'stx:goodies/regex'    "Regex::RxCharSetParser - superclass of SmallSense::TokenPatternParser::TokenSpecParser "
-        #'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 "
-        #'stx:libview'    "DeviceGraphicsContext - extended "
-        #'stx:libview2'    "ApplicationModel - extended "
-        #'stx:libwidg'    "DialogBox - extended "
-        #'stx:libwidg2'    "DoWhatIMeanSupport - extended "
+        #'stx:goodies/refactoryBrowser/helpers'    "BrowserEnvironment - superclass of SmallSense::SmalltalkUnacceptedMethodEnvironment"
+        #'stx:goodies/refactoryBrowser/lint'    "RBLintRule - extended"
+        #'stx:goodies/regex'    "Regex::RxCharSetParser - superclass of SmallSense::TokenPatternParser::TokenSpecParser"
+        #'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"
+        #'stx:libview'    "DisplaySurface - extended"
+        #'stx:libview2'    "ApplicationModel - extended"
+        #'stx:libwidg'    "EditTextView - extended"
+        #'stx:libwidg2'    "DoWhatIMeanSupport - extended"
     )
 !
 
@@ -84,11 +124,11 @@
      by searching all classes (and their packages) which are referenced by my classes."
 
     ^ #(
-        #'stx:goodies/refactoryBrowser/parser'    "RBFormatter - referenced by SmallSense::SmalltalkEditSupport>>electricInsertSnippetAfterDoubleColon "
-        #'stx:libbasic2'    "BackgroundJob - referenced by SmallSense::AbstractSearchDialog>>initialize "
-        #'stx:libbasic3'    "ChangeSet - referenced by RBTransformationRule>>fixes: "
-        #'stx:libjava'    "Java - referenced by SmallSense::JavaCompletionEngineEnvironmentResource>>tearDown "
-        #'stx:libjava/tools'    "GroovyScanner - referenced by SmallSense::GroovyCompletionEngineSimple>>scannerClass "
+        #'stx:goodies/refactoryBrowser/parser'    "RBFormatter - referenced by SmallSense::SmalltalkEditSupport>>electricInsertSnippetAfterDoubleColon"
+        #'stx:libbasic2'    "BackgroundQueueProcessingJob - referenced by SmallSense::Manager>>initialize"
+        #'stx:libbasic3'    "ChangeSet - referenced by RBTransformationRule>>fixes:"
+        #'stx:libjava'    "Java - referenced by SmallSense::JavaCompletionEngine>>complete"
+        #'stx:libjava/tools'    "GroovyScanner - referenced by SmallSense::GroovyCompletionEngineSimple>>scannerClass"
     )
 !
 
@@ -117,32 +157,6 @@
     "Modified (comment): / 25-11-2013 / 12:31:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!stx_goodies_smallsense class methodsFor:'description - compilation'!
-
-additionalRules_bc_dot_mak
-    "obsolete - kept for compatibility with old project files"
-
-    ^ '
-# HACK to make it compilable under CVS stx:libtool
-$(INCLUDE_TOP)\stx\libtool\Tools__NavigationState.$(H): $(INCLUDE_TOP)\stx\libtool\Tools_NavigationState.$(H)
-        copy $(INCLUDE_TOP)\stx\libtool\Tools_NavigationState.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NavigationState.$(H)
-'
-
-    "Created: / 04-09-2013 / 08:28:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-additionalRules_make_dot_proto
-    "allows for additional rules to be added to the make.proto file."
-
-    ^ '
-# HACK to make it compilable under CVS stx:libtool
-$(INCLUDE_TOP)/stx/libtool/Tools__NavigationState.$(H): $(INCLUDE_TOP)/stx/libtool/Tools_NavigationState.$(H)
-        ln -s $(INCLUDE_TOP)/stx/libtool/Tools_NavigationState.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NavigationState.$(H)
-'
-
-    "Created: / 04-09-2013 / 08:02:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
 !stx_goodies_smallsense class methodsFor:'description - contents'!
 
 classNamesAndAttributes
@@ -154,13 +168,13 @@
     ^ #(
         "<className> or (<className> attributes...) in load order"
         #'SmallSense::AbstractDIalog'
+        (#'SmallSense::AbstractTestCase' autoload)
         (#'SmallSense::BaseTestClass' autoload)
         #'SmallSense::CodeHighlightingService'
         #'SmallSense::CodeNavigationService'
         #'SmallSense::CompletionContext'
         #'SmallSense::CompletionController'
         #'SmallSense::CompletionEngine'
-        (#'SmallSense::CompletionEngineTests' autoload)
         #'SmallSense::CompletionResult'
         #'SmallSense::CompletionView'
         #'SmallSense::CriticsWindow'
@@ -197,15 +211,17 @@
         #'stx_goodies_smallsense'
         #'SmallSense::AbstractSearchDialog'
         #'SmallSense::AbstractJavaCompletionEngine'
-        (#'SmallSense::AbstractJavaCompletionEngineTests' autoload)
         #'SmallSense::ClassInfo'
         #'SmallSense::ClassPO'
         #'SmallSense::ClassType'
+        (#'SmallSense::CompletionEngineTests' autoload)
         #'SmallSense::ConstantPO'
+        (#'SmallSense::EditSupportTests' autoload)
         (#'SmallSense::FinderTests' autoload)
         #'SmallSense::GenericEditSupport'
         #'SmallSense::JavaEditSupport'
         #'SmallSense::JavaImportPO'
+        #'SmallSense::MethodBindingPO'
         #'SmallSense::MethodInfo'
         #'SmallSense::MethodPO'
         #'SmallSense::PackagePO'
@@ -218,17 +234,23 @@
         #'SmallSense::SnippetPO'
         #'SmallSense::UnionType'
         #'SmallSense::UnknownType'
+        #'SmallSense::VariableBindingPO'
         #'SmallSense::VariablePO'
         #'SmallSense::ClassSearchDialog'
         #'SmallSense::AbstractJavaCompletionEngineSimple'
-        (#'SmallSense::GroovyCompletionEngineSimpleTests' autoload)
+        (#'SmallSense::AbstractJavaCompletionEngineTests' autoload)
         #'SmallSense::GroovyEditSupport'
         #'SmallSense::JavaCompletionEngine'
         #'SmallSense::JavaConstructorPO'
+        (#'SmallSense::JavaEditSupportTests' autoload)
         #'SmallSense::MethodKeywordRestPO'
+        (#'SmallSense::SmalltalkCompletionEngineTests' autoload)
+        (#'SmallSense::SmalltalkEditSupportTests' autoload)
         #'SmallSense::MethodSearchDialog'
         #'SmallSense::PackageSearchDialog'
+        (#'SmallSense::GroovyCompletionEngineSimpleTests' autoload)
         #'SmallSense::JavaCompletionEngineSimple'
+        (#'SmallSense::JavaCompletionEngineTests' autoload)
         #'SmallSense::GroovyCompletionEngineSimple'
     )
 !
@@ -289,6 +311,9 @@
         'Tools::NewSystemBrowser class' #'smallsense_askForClassToSearch:single:msgTail:resources:filter:forBrowser:thenDo:'
         UserPreferences smallSenseNewDialogsEnabled
         UserPreferences smallSenseNewDialogsEnabled:
+        UserPreferences smallSenseSmalltalkIndentOnPasteEnabled
+        UserPreferences smallSenseSmalltalkIndentOnPasteEnabled:
+        EditTextViewCompletionSupport isCompletionViewShown
         'DialogBox class' smallSenseRequestProject:from:initialAnswer:suggestions:
     )
 ! !
@@ -305,25 +330,33 @@
 companyName
     "Return a companyname which will appear in <lib>.rc"
 
-    ^ 'eXept Software AG'
+    ^ 'Jan Vrany'
+
+    "Modified: / 17-07-2014 / 22:57:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 description
     "Return a description string which will appear in vc.def / bc.def"
 
-    ^ 'Smalltalk/X Class library'
+    ^ 'Smalltalk/X IDE Productivity Tool'
+
+    "Modified: / 17-07-2014 / 23:06:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 legalCopyright
     "Return a copyright string which will appear in <lib>.rc"
 
-    ^ 'Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011'
+    ^ 'Copyright Jan Vrany 2013-2014'
+
+    "Modified: / 17-07-2014 / 22:57:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 productName
     "Return a product name which will appear in <lib>.rc"
 
-    ^ 'Smalltalk/X'
+    ^ 'SmallSense'
+
+    "Modified: / 17-07-2014 / 23:06:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !stx_goodies_smallsense class methodsFor:'description - svn'!
--- a/vcmake.bat	Wed Jul 09 12:23:50 2014 +0100
+++ b/vcmake.bat	Wed Oct 01 23:44:32 2014 +0100
@@ -5,7 +5,7 @@
 @REM -------
 
 @if not defined VSINSTALLDIR (
-    pushd ..\..\stx\rules
+    pushd ..\..\rules
     call vcsetup.bat
     popd
 )