--- /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
)