Completion refactoring (part 2).
Some more UX fixes (like opening/closing the completion view)
--- a/Make.proto Fri Sep 27 22:39:18 2013 +0100
+++ b/Make.proto Sat Sep 28 01:41:35 2013 +0100
@@ -96,6 +96,22 @@
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n '**NOHG**'))
+jv_smallsense.$(O): $(shell hg root)/.hg/dirstate
+endif
+
+
+
+
+# run default testsuite for this package
+test: $(TOP)/goodies/builder/reports
+ $(MAKE) -C $(TOP)/goodies/builder/reports
+ $(TOP)/goodies/builder/reports/report-runner.sh -D . -r Builder::TestReport -p $(PACKAGE)
+
+
# add more install actions here
install::
@@ -191,7 +207,7 @@
$(OUTDIR)SmallSense__UnionType.$(O) SmallSense__UnionType.$(H): SmallSense__UnionType.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__Type.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__UnknownType.$(O) SmallSense__UnknownType.$(H): SmallSense__UnknownType.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__Type.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__VariablePO.$(O) SmallSense__VariablePO.$(H): SmallSense__VariablePO.st $(INCLUDE_TOP)/jv/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libcomp/AssignmentNode.$(H) $(INCLUDE_TOP)/stx/libcomp/MessageNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseErrorNode.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimaryNode.$(H) $(INCLUDE_TOP)/stx/libcomp/StatementNode.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libcomp/VariableNode.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBTransformationRule.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentView.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentFrame.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeViewService.$(H) $(INCLUDE_TOP)/stx/libwidg2/DoWhatIMeanSupport.$(H) $(INCLUDE_TOP)/stx/libtool/Tools_NavigationState.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeCompletionService.$(H) $(INCLUDE_TOP)/stx/libcomp/BlockNode.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)/stx/libwidg/Workspace.$(H) $(INCLUDE_TOP)/stx/libwidg/TextCollector.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libcomp/AssignmentNode.$(H) $(INCLUDE_TOP)/stx/libcomp/MessageNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseErrorNode.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimaryNode.$(H) $(INCLUDE_TOP)/stx/libcomp/StatementNode.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libcomp/VariableNode.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBTransformationRule.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentView.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentFrame.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeViewService.$(H) $(INCLUDE_TOP)/stx/libwidg2/DoWhatIMeanSupport.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NavigationState.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeCompletionService.$(H) $(INCLUDE_TOP)/stx/libcomp/BlockNode.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)/stx/libwidg/Workspace.$(H) $(INCLUDE_TOP)/stx/libwidg/TextCollector.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/SmallSense__CompletionResultSet.st Fri Sep 27 22:39:18 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-"{ Package: 'jv:smallsense' }"
-
-"{ NameSpace: SmallSense }"
-
-Object subclass:#CompletionResultSet
- instanceVariableNames:'items position objectNameCollection selectedObjectIndex
- selectedName'
- classVariableNames:''
- poolDictionaries:''
- category:'SmallSense-Core'
-!
-
-
-!CompletionResultSet methodsFor:'accessing'!
-
-items
-
- ^items
-
- "Created: / 26-11-2011 / 19:06:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-objectCollection
- ^ items
-!
-
-objectCollection:something
- items := something.
-
- "Modified: / 16-03-2011 / 16:42:19 / Jakub <zelenja7@fel.cvut.cz>"
-!
-
-objectNameCollection
- ^ objectNameCollection
-
- "Modified: / 06-04-2011 / 16:31:19 / Jakub <zelenja7@fel.cvut.cz>"
-!
-
-objectNameCollection:something
- objectNameCollection := something.
-!
-
-position
- ^ position
-!
-
-position:something
- position := something.
-!
-
-selectedName
- ^ selectedName
-!
-
-selectedName:something
- self findByName:something.
- selectedName := something.
-
- "Modified: / 17-03-2011 / 12:10:57 / Jakub <zelenja7@fel.cvut.cz>"
-!
-
-selectedObjectDescription
- ^ (items at:selectedObjectIndex) description.
-
- "Modified: / 16-03-2011 / 18:17:38 / Jakub <zelenja7@fel.cvut.cz>"
-!
-
-selectedObjectIndex
- ^ selectedObjectIndex
-!
-
-selectedObjectIndex:something
- selectedObjectIndex := something.
-! !
-
-!CompletionResultSet methodsFor:'adding'!
-
-add:object
- "Add senseResultObject to objectCollection and objectNameCollection"
-
- |helperIndex|
-
- self checkCollection.
- (object notNil) ifTrue:[
- helperIndex := objectNameCollection indexOf:(object name).
- (helperIndex = 0) ifTrue:[
- items add:object.
- objectNameCollection add:(object name).
- ].
- ].
-
- "Created: / 16-03-2011 / 16:43:10 / Jakub <zelenja7@fel.cvut.cz>"
- "Modified: / 04-04-2011 / 13:48:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-join: collection
- "joining two SmallSenseResultCollection"
-
- (collection objectCollection isNil) ifTrue: [
- ^ nil.
- ].
- collection objectCollection do: [:each |
- self add: each.
- ].
-
- "Created: / 17-03-2011 / 12:11:39 / Jakub <zelenja7@fel.cvut.cz>"
- "Modified: / 17-03-2011 / 17:56:06 / Jakub <zelenja7@fel.cvut.cz>"
- "Modified: / 04-04-2011 / 13:49:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified (format): / 27-11-2011 / 10:05:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!CompletionResultSet methodsFor:'checking'!
-
-checkCollection
- (objectNameCollection isNil)
- ifTrue:[ objectNameCollection := SortedCollection new. ].
- (items isNil)
- ifTrue:[ items := SortedCollection sortBlock:[:a :b|a name < b name]].
-
- "Created: / 16-03-2011 / 16:46:39 / Jakub <zelenja7@fel.cvut.cz>"
- "Modified: / 07-04-2011 / 10:01:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!CompletionResultSet methodsFor:'finding'!
-
-findByName:name
-|index|
-index:=1.
-items do:[:each|
-(each asString startsWith:name)ifTrue:[
- selectedObjectIndex:=index.
- ^index
-].
-index:=index+1.
-].
-selectedObjectIndex:=1.
-^index.
-
- "Created: / 16-03-2011 / 17:16:24 / Jakub <zelenja7@fel.cvut.cz>"
- "Modified: / 16-03-2011 / 18:16:55 / Jakub <zelenja7@fel.cvut.cz>"
-! !
-
-!CompletionResultSet methodsFor:'queries'!
-
-isEmpty
-
- ^items isEmptyOrNil
-
- "Created: / 27-11-2011 / 10:03:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-isEmptyOrNil
-
- ^items isEmptyOrNil
-
- "Created: / 24-07-2013 / 11:51:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-notEmpty
-
- ^items notEmptyOrNil
-
- "Created: / 24-07-2013 / 11:51:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 24-07-2013 / 12:53:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-notEmptyOrNil
-
- ^items notEmptyOrNil
-
- "Created: / 24-07-2013 / 11:51:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!CompletionResultSet class methodsFor:'documentation'!
-
-version_HG
-
- ^ '$Changeset: <not expanded> $'
-!
-
-version_SVN
- ^ '$Id: SmallSenseResultSet.st 7826 2011-11-27 09:48:43Z vranyj1 $'
-! !
-
--- a/SmallSense__EditSupport.st Fri Sep 27 22:39:18 2013 +0100
+++ b/SmallSense__EditSupport.st Sat Sep 28 01:41:35 2013 +0100
@@ -80,29 +80,16 @@
!EditSupport methodsFor:'event handling'!
-doKeyPressComplete
- completionController notNil ifTrue:[
- completionController startCompletionProcess
- ].
-
- "Created: / 04-08-2013 / 02:33:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 27-09-2013 / 13:25:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
keyPress: key x:x y:y in: view
-
"Handles an event in given view (a subview of codeView).
If the method returns true, the event will not be processed
by the view."
- key == #CodeCompletion ifTrue: [
- self doKeyPressComplete.
- ^ true.
- ].
+
^false
"Created: / 24-07-2013 / 23:31:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 27-09-2013 / 13:15:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 27-09-2013 / 23:53:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!EditSupport methodsFor:'initialization'!
@@ -142,6 +129,7 @@
wordBeforeCursor
| currentLine wordStart wordEnd |
currentLine := textView list at: textView cursorLine.
+ currentLine isNil ifTrue:[ ^ '' ].
wordEnd := textView cursorCol - 1.
wordEnd ~~ 0 ifTrue:[
wordStart := wordEnd.
@@ -156,6 +144,7 @@
^ ''
"Created: / 27-09-2013 / 15:53:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 27-09-2013 / 23:52:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!EditSupport methodsFor:'private-completion'!
@@ -210,6 +199,21 @@
handleKeyPress:key x:x y:y
+ key == #CodeCompletion ifTrue: [
+ autoSelect := true.
+ self startCompletionProcess.
+ ].
+
+ (key == #BackSpace or:[key == #BasicBackspace]) ifTrue:[
+ | c |
+
+ c := editView characterBeforeCursor.
+ (c notNil and:[c isAlphaNumeric]) ifTrue:[
+ ^ false
+ ].
+ ].
+
+
completionView notNil ifTrue:[
(key == #Return and:[completionView hasSelection]) ifTrue:[
self complete.
@@ -222,6 +226,39 @@
^ super handleKeyPress:key x:x y:y
"Created: / 27-09-2013 / 15:38:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-09-2013 / 00:16:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+postKeyPress:key
+ UserPreferences current immediateCodeCompletion ifFalse:[
+ "/ only update, if already open
+ completionView isNil ifTrue:[^ self].
+ ].
+
+ (key == #BackSpace or:[key == #BasicBackspace]) ifTrue:[
+ | c |
+
+ c := editView characterBeforeCursor.
+ (c notNil and:[c isLetterOrDigit]) ifTrue:[
+ autoSelect := false.
+ self updateCompletionList.
+ ] ifFalse:[
+ self closeCompletionView.
+ ].
+ ^ self
+ ].
+
+ key isCharacter ifTrue:[
+ key isLetterOrDigit not ifTrue:[
+ self closeCompletionView
+ ] ifFalse:[
+ autoSelect := false.
+ self updateCompletionList.
+ ].
+ ^ self
+ ].
+
+ "Created: / 28-09-2013 / 00:21:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!EditSupport::CompletionController methodsFor:'private'!
@@ -238,9 +275,12 @@
completionView isNil ifTrue:[
super updateCompletionList
+ ] ifFalse:[
+ self updateSelection.
].
"Created: / 27-09-2013 / 15:58:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-09-2013 / 00:15:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
updateSelection
@@ -289,6 +329,8 @@
| movePos topView x y|
"/ move the window
+ list isEmpty ifTrue:[ ^ self ].
+
x := (editView xOfCol:editView cursorCol inVisibleLine:editView cursorLine)
- 16"icon" - (editView widthOfString: support wordBeforeCursor) - 5"magic constant".
y := editView yOfCursor + editView font maxHeight + 3.
@@ -314,6 +356,7 @@
].
"Created: / 27-09-2013 / 14:01:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 27-09-2013 / 23:54:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
updateCompletions: completionResult
--- a/SmallSense__ParseNodePosition.st Fri Sep 27 22:39:18 2013 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-"{ Package: 'jv:smallsense' }"
-
-"{ NameSpace: SmallSense }"
-
-Object subclass:#ParseNodePosition
- instanceVariableNames:'node position position1'
- classVariableNames:''
- poolDictionaries:''
- category:'SmallSense-Core'
-!
-
-
-!ParseNodePosition class methodsFor:'instance creation'!
-
-node: node position: position
-
- ^self new node: node position: position
-
- "Created: / 26-11-2011 / 16:22:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!ParseNodePosition methodsFor:'accessing'!
-
-node
- ^ node
-!
-
-position
- ^ position
-! !
-
-!ParseNodePosition methodsFor:'initialization'!
-
-node:nd position: pos
-
- node := nd.
- position := pos.
- position1 := pos - 1
-
- "Created: / 26-11-2011 / 16:22:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!ParseNodePosition methodsFor:'queries'!
-
-isAfterNode
- ^ node notNil and:[node endPosition < position1]
-
- "Created: / 26-11-2011 / 16:24:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 24-09-2013 / 13:11:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-isBeforeNode
- ^node notNil and:[position < node startPosition]
-
- "Created: / 26-11-2011 / 16:24:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 24-09-2013 / 13:11:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-isInNode
- ^ node notNil and:[position1 between:node startPosition and:node endPosition]
-
- "Created: / 26-11-2011 / 16:24:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 24-09-2013 / 13:12:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!ParseNodePosition class methodsFor:'documentation'!
-
-version_HG
-
- ^ '$Changeset: <not expanded> $'
-!
-
-version_SVN
- ^ '$Id: SmallSensePosition.st 7823 2011-11-26 16:55:59Z vranyj1 $'
-! !
-
--- a/bc.mak Fri Sep 27 22:39:18 2013 +0100
+++ b/bc.mak Sat Sep 28 01:41:35 2013 +0100
@@ -76,9 +76,15 @@
+
+test: $(TOP)\goodies\builder\reports\NUL
+ pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT)
+ $(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE)
+
clean::
del *.$(CSUFFIX)
+
# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
$(OUTDIR)SmallSense__CodeHighlightingService.$(O) SmallSense__CodeHighlightingService.$(H): SmallSense__CodeHighlightingService.st $(INCLUDE_TOP)\stx\libtool\Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__CodeNavigationService.$(O) SmallSense__CodeNavigationService.$(H): SmallSense__CodeNavigationService.st $(INCLUDE_TOP)\stx\libtool\Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -125,6 +131,15 @@
$(OUTDIR)SmallSense__UnionType.$(O) SmallSense__UnionType.$(H): SmallSense__UnionType.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__Type.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__UnknownType.$(O) SmallSense__UnknownType.$(H): SmallSense__UnknownType.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__Type.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__VariablePO.$(O) SmallSense__VariablePO.$(H): SmallSense__VariablePO.st $(INCLUDE_TOP)\jv\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libcomp\AssignmentNode.$(H) $(INCLUDE_TOP)\stx\libcomp\MessageNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseErrorNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimaryNode.$(H) $(INCLUDE_TOP)\stx\libcomp\StatementNode.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libcomp\VariableNode.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBTransformationRule.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentView.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentFrame.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\stx\libwidg2\DoWhatIMeanSupport.$(H) $(INCLUDE_TOP)\stx\libtool\Tools_NavigationState.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeCompletionService.$(H) $(INCLUDE_TOP)\stx\libcomp\BlockNode.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)\stx\libwidg\Workspace.$(H) $(INCLUDE_TOP)\stx\libwidg\TextCollector.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libcomp\AssignmentNode.$(H) $(INCLUDE_TOP)\stx\libcomp\MessageNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseErrorNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimaryNode.$(H) $(INCLUDE_TOP)\stx\libcomp\StatementNode.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libcomp\VariableNode.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBTransformationRule.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentView.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentFrame.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\stx\libwidg2\DoWhatIMeanSupport.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NavigationState.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeCompletionService.$(H) $(INCLUDE_TOP)\stx\libcomp\BlockNode.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)\stx\libwidg\Workspace.$(H) $(INCLUDE_TOP)\stx\libwidg\TextCollector.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
+
+# **Must be at end**
+
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+!IFDEF HGROOT
+$(OUTDIR)jv_smallsense.$(O): $(HGROOT)\.hg\dirstate
+!ENDIF
--- a/bmake.bat Fri Sep 27 22:39:18 2013 +0100
+++ b/bmake.bat Sat Sep 28 01:41:35 2013 +0100
@@ -3,6 +3,10 @@
@REM type bmake, and wait...
@REM do not edit - automatically generated from ProjectDefinition
@REM -------
-make.exe -N -f bc.mak %*
+@SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
+make.exe -N -f bc.mak %DEFINES% %*
--- a/mingwmake.bat Fri Sep 27 22:39:18 2013 +0100
+++ b/mingwmake.bat Sat Sep 28 01:41:35 2013 +0100
@@ -3,10 +3,14 @@
@REM type mingwmake, and wait...
@REM do not edit - automatically generated from ProjectDefinition
@REM -------
+@SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
@pushd ..\..\stx\rules
@call find_mingw.bat
@popd
-make.exe -N -f bc.mak %USEMINGW_ARG% %*
+make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %*
--- a/smallsense.rc Fri Sep 27 22:39:18 2013 +0100
+++ b/smallsense.rc Sat Sep 28 01:41:35 2013 +0100
@@ -3,7 +3,7 @@
// automagically generated from the projectDefinition: jv_smallsense.
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 6,2,445,445
+ FILEVERSION 6,2,32767,32767
PRODUCTVERSION 6,2,3,0
#if (__BORLANDC__)
FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE
@@ -20,12 +20,12 @@
BEGIN
VALUE "CompanyName", "eXept Software AG\0"
VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
- VALUE "FileVersion", "6.2.445.445\0"
+ VALUE "FileVersion", "6.2.32767.32767\0"
VALUE "InternalName", "jv:smallsense\0"
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.3.0\0"
- VALUE "ProductDate", "Fri, 27 Sep 2013 17:34:05 GMT\0"
+ VALUE "ProductDate", "Sat, 28 Sep 2013 00:40:11 GMT\0"
END
END
--- a/vcmake.bat Fri Sep 27 22:39:18 2013 +0100
+++ b/vcmake.bat Sat Sep 28 01:41:35 2013 +0100
@@ -9,6 +9,12 @@
call vcsetup.bat
popd
)
-make.exe -N -f bc.mak -DUSEVC %*
+@SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
+make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*
+
+