First shot of Java edit support.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Sun, 04 Aug 2013 02:27:45 +0100
changeset 50 8655feecd4db
parent 49 8a99621a3853
child 51 a37e5df13fab
First shot of Java edit support. Now, only electric block curly is supported, but more will come.
Make.proto
SmallSenseEditSupport.st
SmallSenseSmalltalkEditSupport.st
abbrev.stc
bc.mak
extensions.st
jv_smallsense.st
smallsense.rc
--- a/Make.proto	Sun Aug 04 01:23:12 2013 +0100
+++ b/Make.proto	Sun Aug 04 02:27:45 2013 +0100
@@ -34,7 +34,7 @@
 # add the path(es) here:,
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/helpers -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint -I$(INCLUDE_TOP)/stx/goodies/roeltyper -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libwidg2 -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/helpers -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint -I$(INCLUDE_TOP)/stx/goodies/roeltyper -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libview
 
 
 # if you need any additional defines for embedded C code,
@@ -200,7 +200,7 @@
 $(OUTDIR)SmallSenseUnknownType.$(O) SmallSenseUnknownType.$(H): SmallSenseUnknownType.st $(INCLUDE_TOP)/jv/smallsense/SmallSenseType.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSenseVariablePO.$(O) SmallSenseVariablePO.$(H): SmallSenseVariablePO.st $(INCLUDE_TOP)/jv/smallsense/SmallSensePO.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSenseInstvarInterfaceExtractor.$(O) SmallSenseInstvarInterfaceExtractor.$(H): SmallSenseInstvarInterfaceExtractor.st $(INCLUDE_TOP)/jv/smallsense/SmallSenseAbstractInstvarInterfaceExtractor.$(H) $(INCLUDE_TOP)/jv/smallsense/SmallSenseParser.$(H) $(INCLUDE_TOP)/stx/libcomp/SyntaxHighlighter.$(H) $(INCLUDE_TOP)/stx/libcomp/AbstractSyntaxHighlighter.$(H) $(INCLUDE_TOP)/stx/libcomp/Parser.$(H) $(INCLUDE_TOP)/stx/libcomp/Scanner.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libcomp/AssignmentNode.$(H) $(INCLUDE_TOP)/stx/libcomp/MessageNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseErrorNode.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimaryNode.$(H) $(INCLUDE_TOP)/stx/libcomp/StatementNode.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libcomp/VariableNode.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBTransformationRule.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentView.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentFrame.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeViewService.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libcomp/AssignmentNode.$(H) $(INCLUDE_TOP)/stx/libcomp/MessageNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseErrorNode.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimaryNode.$(H) $(INCLUDE_TOP)/stx/libcomp/StatementNode.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libcomp/VariableNode.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBTransformationRule.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentView.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentFrame.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeViewService.$(H) $(INCLUDE_TOP)/__NoProject__/SmallSenseJavaEditSupport.$(H) $(INCLUDE_TOP)/jv/smallsense/SmallSenseEditSupport.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/SmallSenseEditSupport.st	Sun Aug 04 01:23:12 2013 +0100
+++ b/SmallSenseEditSupport.st	Sun Aug 04 02:27:45 2013 +0100
@@ -12,13 +12,17 @@
 forLanguage: aProgrammingLanguage
     aProgrammingLanguage notNil ifTrue:[
         aProgrammingLanguage isSmalltalk ifTrue:[
-            ^SmallSenseSmalltalkEditSupport new
+            ^ SmallSenseSmalltalkEditSupport new
         ].
+        aProgrammingLanguage isJava ifTrue:[    
+            ^ SmallSenseJavaEditSupport new
+        ]
     ].
 
     ^SmallSenseGenericEditSupport new.
 
     "Created: / 24-07-2013 / 23:20:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 04-08-2013 / 02:06:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !SmallSenseEditSupport methodsFor:'accessing'!
@@ -40,6 +44,24 @@
     "Modified: / 25-07-2013 / 00:11:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!SmallSenseEditSupport methodsFor:'editing'!
+
+insertElectricBlockOpenedBy: openText closedBy: closeText
+    | line col indent |
+
+    indent := self indentAtCursorLine.
+
+    textView undoableDo:[
+        textView insertStringAtCursor: (openText ? '') , Character cr , Character cr, (String new:indent withAll:Character space) , closeText , Character cr.
+        line := textView cursorLine - 1.
+        col := textView cursorCol  + 3.
+        textView cursorLine: line col: col.
+    ].
+
+    "Created: / 25-07-2013 / 10:41:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 04-08-2013 / 02:15:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !SmallSenseEditSupport methodsFor:'event handling'!
 
 keyPress: key x:x y:y in: view
@@ -53,3 +75,19 @@
     "Created: / 24-07-2013 / 23:31:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!SmallSenseEditSupport methodsFor:'private'!
+
+indentAtCursorLine
+    | line |
+
+    line := service textView listAt: service textView cursorLine.
+    ^ line isNil ifTrue:[
+        service textView cursorCol - 1.
+    ] ifFalse:[
+        line indexOfNonSeparator - 1.
+    ]
+
+    "Created: / 25-07-2013 / 00:13:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 04-08-2013 / 02:13:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSenseSmalltalkEditSupport.st	Sun Aug 04 01:23:12 2013 +0100
+++ b/SmallSenseSmalltalkEditSupport.st	Sun Aug 04 02:27:45 2013 +0100
@@ -200,12 +200,6 @@
     "Modified: / 24-07-2013 / 23:29:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-indentAtCursorLine
-    ^ (service textView listAt: service textView cursorLine) indexOfNonSeparator
-
-    "Created: / 25-07-2013 / 00:13:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
 tokensAtCursorLine
     | scanner token |
 
--- a/abbrev.stc	Sun Aug 04 01:23:12 2013 +0100
+++ b/abbrev.stc	Sun Aug 04 02:27:45 2013 +0100
@@ -1,13 +1,13 @@
 # automagically generated by the project definition
 # this file is needed for stc to be able to compile modules independently.
 # it provides information about a classes filename, category and especially namespace.
-SmallSenseBaseTestClass SmallSenseBaseTestClass jv:smallsense 'SmallSense-Tests' 1
+SmallSenseBaseTestClass SmallSenseBaseTestClass jv:smallsense 'SmallSense-Tests' 0
 SmallSenseChecker SmallSenseChecker jv:smallsense 'SmallSense-Lint' 0
 SmallSenseCompletionWindow SmallSenseCompletionWindow jv:smallsense 'SmallSense-Interface' 1
 SmallSenseCriticsWindow SmallSenseCriticsWindow jv:smallsense 'SmallSense-Interface' 1
 SmallSenseEditService SmallSenseEditService jv:smallsense 'SmallSense-Services' 0
 SmallSenseEditSupport SmallSenseEditSupport jv:smallsense 'SmallSense-Services' 0
-SmallSenseFinderTests SmallSenseFinderTests jv:smallsense 'SmallSense-Tests' 1
+SmallSenseFinderTests SmallSenseFinderTests jv:smallsense 'SmallSense-Tests' 0
 SmallSenseInfo SmallSenseInfo jv:smallsense 'SmallSense-Model' 0
 SmallSenseManager SmallSenseManager jv:smallsense 'SmallSense-Model' 0
 SmallSensePO SmallSensePO jv:smallsense 'SmallSense-Interface-PO' 0
--- a/bc.mak	Sun Aug 04 01:23:12 2013 +0100
+++ b/bc.mak	Sun Aug 04 02:27:45 2013 +0100
@@ -34,7 +34,7 @@
 
 
 
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\goodies\roeltyper -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libwidg2 -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\goodies\roeltyper -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libview
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
@@ -124,7 +124,7 @@
 $(OUTDIR)SmallSenseUnknownType.$(O) SmallSenseUnknownType.$(H): SmallSenseUnknownType.st $(INCLUDE_TOP)\jv\smallsense\SmallSenseType.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSenseVariablePO.$(O) SmallSenseVariablePO.$(H): SmallSenseVariablePO.st $(INCLUDE_TOP)\jv\smallsense\SmallSensePO.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSenseInstvarInterfaceExtractor.$(O) SmallSenseInstvarInterfaceExtractor.$(H): SmallSenseInstvarInterfaceExtractor.st $(INCLUDE_TOP)\jv\smallsense\SmallSenseAbstractInstvarInterfaceExtractor.$(H) $(INCLUDE_TOP)\jv\smallsense\SmallSenseParser.$(H) $(INCLUDE_TOP)\stx\libcomp\SyntaxHighlighter.$(H) $(INCLUDE_TOP)\stx\libcomp\AbstractSyntaxHighlighter.$(H) $(INCLUDE_TOP)\stx\libcomp\Parser.$(H) $(INCLUDE_TOP)\stx\libcomp\Scanner.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libcomp\AssignmentNode.$(H) $(INCLUDE_TOP)\stx\libcomp\MessageNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseErrorNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimaryNode.$(H) $(INCLUDE_TOP)\stx\libcomp\StatementNode.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libcomp\VariableNode.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBTransformationRule.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentView.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentFrame.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libcomp\AssignmentNode.$(H) $(INCLUDE_TOP)\stx\libcomp\MessageNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseErrorNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimaryNode.$(H) $(INCLUDE_TOP)\stx\libcomp\StatementNode.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libcomp\VariableNode.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBTransformationRule.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentView.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentFrame.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\__NoProject__\SmallSenseJavaEditSupport.$(H) $(INCLUDE_TOP)\jv\smallsense\SmallSenseEditSupport.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/extensions.st	Sun Aug 04 01:23:12 2013 +0100
+++ b/extensions.st	Sun Aug 04 02:27:45 2013 +0100
@@ -157,6 +157,57 @@
     "Created: / 01-02-2012 / 12:11:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!SmallSenseJavaEditSupport methodsFor:'event handling'!
+
+keyPress: key x:x y:y in: view
+
+    "Handles an event in given view (a subview of codeView).
+     If the method returns true, the event will not be processed
+     by the view."
+
+    view ~~ textView ifTrue:[ ^ false ].
+
+    lastTypedKey3 := lastTypedKey2.
+    lastTypedKey2 := lastTypedKey1.
+    lastTypedKey1 := lastTypedKey0.
+    lastTypedKey0 := key.
+
+    key == ${ ifTrue:[
+        ^ self keyPressOpenCurly
+    ].
+
+    ^ false.
+
+    "Created: / 07-03-2010 / 09:36:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 04-08-2013 / 01:54:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SmallSenseJavaEditSupport methodsFor:'event handling'!
+
+keyPressOpenCurly
+    | line token i |
+
+    line := service codeView listAt: service codeView cursorLine.
+    line notEmptyOrNil ifTrue:[
+        i := line size.
+        [ (line at: i) isSeparator and:[i > 0] ] whileTrue:[ i := i - 1 ].
+        (i ~~ 0 and:[service codeView cursorCol < i]) ifTrue:[
+            ^ false.
+        ].
+    ] ifFalse:[
+        self insertElectricBlockOpenedBy: '{' closedBy: '}'. 
+        ^ true
+    ].
+
+    token := self tokenAtCursorLine.
+    (token isNil or:[token == #String]) ifTrue:[ ^ false ].
+
+    self insertElectricBlockOpenedBy: '{' closedBy: '}'. 
+    ^ true
+
+    "Created: / 04-08-2013 / 01:54:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !StatementNode methodsFor:'enumeration'!
 
 childNamesAndValuesDo:aBlock
--- a/jv_smallsense.st	Sun Aug 04 01:23:12 2013 +0100
+++ b/jv_smallsense.st	Sun Aug 04 02:27:45 2013 +0100
@@ -30,6 +30,7 @@
         #'stx:goodies/refactoryBrowser/helpers'    "BrowserEnvironment - superclass of SmallSenseUnacceptedMethodEnvironment "
         #'stx:goodies/refactoryBrowser/lint'    "RBLintRule - extended "
         #'stx:goodies/roeltyper'    "TypeCollector - superclass of SmallSenseTypeCollector "
+        #'stx:goodies/sunit'    "TestAsserter - superclass of SmallSenseTestCase "
         #'stx:libbasic'    "Autoload - superclass of SmallSenseBaseTestClass "
         #'stx:libbasic2'    "CacheDictionary - superclass of SmallSenseTypeCollectorCache "
         #'stx:libcomp'    "AbstractSyntaxHighlighter - superclass of SmallSenseAbstractInstvarInterfaceExtractor "
@@ -180,6 +181,8 @@
         UserPreferences smallSenseBackgroundTypingEnabled:
         HTMLDocumentView doQuickFix:
         'Tools::CodeHighlightingService class' new
+        SmallSenseJavaEditSupport keyPress:x:y:in:
+        SmallSenseJavaEditSupport keyPressOpenCurly
     )
 ! !
 
--- a/smallsense.rc	Sun Aug 04 01:23:12 2013 +0100
+++ b/smallsense.rc	Sun Aug 04 02:27:45 2013 +0100
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Sun, 04 Aug 2013 00:21:50 GMT\0"
+      VALUE "ProductDate", "Sun, 04 Aug 2013 01:19:25 GMT\0"
     END
 
   END