Initial support for complete-as-you-type.
Highly experimental, do not use it now!
--- a/Make.proto Mon Sep 23 14:36:49 2013 +0100
+++ b/Make.proto Tue Sep 24 01:53:26 2013 +0100
@@ -34,7 +34,7 @@
# add the path(es) here:,
# ********** OPTIONAL: MODIFY the next lines ***
# LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/helpers -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/helpers -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libwidg2
# if you need any additional defines for embedded C code,
@@ -205,7 +205,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) $(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__CodeNavigationService.st Mon Sep 23 14:36:49 2013 +0100
+++ b/SmallSense__CodeNavigationService.st Tue Sep 24 01:53:26 2013 +0100
@@ -25,7 +25,7 @@
button1Press
| node |
- node := codeView currentParseNode.
+ node := currentNodeHolder value.
node isNil ifTrue:[
^ self
].
@@ -42,7 +42,7 @@
"Created: / 14-02-2010 / 18:43:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 18-11-2011 / 14:58:02 / cg"
- "Modified: / 21-02-2012 / 14:30:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 24-09-2013 / 00:47:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
button1PressForMessageNode: node
--- a/SmallSense__CompletionWindow.st Mon Sep 23 14:36:49 2013 +0100
+++ b/SmallSense__CompletionWindow.st Tue Sep 24 01:53:26 2013 +0100
@@ -4,7 +4,7 @@
SimpleDialog subclass:#CompletionWindow
instanceVariableNames:'codeView result position textHolder selectionHolder
- selectionUnambigous listHolder listView'
+ selectionUnambigous listHolder listView closeAction'
classVariableNames:''
poolDictionaries:''
category:'SmallSense-Core-Interface'
@@ -73,6 +73,16 @@
)
! !
+!CompletionWindow methodsFor:'accessing'!
+
+closeAction
+ ^ closeAction
+!
+
+closeAction:aBlock
+ closeAction := aBlock.
+! !
+
!CompletionWindow methodsFor:'aspects'!
listHolder
@@ -302,6 +312,13 @@
!CompletionWindow methodsFor:'hooks'!
+closeDownViews
+ closeAction value.
+ super closeDownViews.
+
+ "Created: / 24-09-2013 / 01:15:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
postBuildList: aView
listView := aView scrolledView.
@@ -389,10 +406,10 @@
- 16"icon" - (textView widthOfString: self textHolder value) - 5"magic constant".
y := textView yOfCursor + textView font maxHeight + 3.
p := (textView originRelativeTo: nil) + (x @ y).
-
self openInterfaceModal:#windowSpec at:p
"Created: / 04-04-2011 / 21:12:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 24-09-2013 / 01:36:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!CompletionWindow methodsFor:'opening'!
--- a/SmallSense__EditSupport.st Mon Sep 23 14:36:49 2013 +0100
+++ b/SmallSense__EditSupport.st Tue Sep 24 01:53:26 2013 +0100
@@ -3,7 +3,8 @@
"{ NameSpace: SmallSense }"
Object subclass:#EditSupport
- instanceVariableNames:'service textView backspaceIsUndo'
+ instanceVariableNames:'service textView backspaceIsUndo completionWindow
+ completionSuppressed'
classVariableNames:''
poolDictionaries:''
category:'SmallSense-Core-Services'
@@ -42,9 +43,11 @@
service:aSmallSenseService
service := aSmallSenseService.
textView := aSmallSenseService textView.
+ completionWindow := nil.
+ completionSuppressed := false.
backspaceIsUndo := false.
- "Modified: / 17-09-2013 / 23:16:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 24-09-2013 / 01:18:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!EditSupport methodsFor:'editing'!
@@ -81,13 +84,20 @@
!EditSupport methodsFor:'event handling'!
-doKeyPressKeyComplete
+doKeyPressComplete
+ ^ self doKeyPressComplete: false
+
+ "Created: / 04-08-2013 / 02:33:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 24-09-2013 / 00:53:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+doKeyPressComplete: auto
"Not supported in generic edit support"
-
+
textView flash.
- ^ true
+ ^ auto not
- "Created: / 04-08-2013 / 02:31:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 24-09-2013 / 00:59:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
keyPress: key x:x y:y in: view
@@ -96,14 +106,43 @@
If the method returns true, the event will not be processed
by the view."
+ | codeView line |
+
key == #CodeCompletion ifTrue: [
- ^ self doKeyPressKeyComplete.
+ ^ self doKeyPressComplete.
].
+
+
+ (key isCharacter and:[key isAlphaNumeric and:[UserPreferences current immediateCodeCompletion]]) ifTrue:[
+ completionSuppressed ifTrue:[ ^ false ].
+"/ completionWindow notNil ifTrue:[ ^ false ].
+
+ codeView := service codeView.
+ line := (codeView list at: codeView cursorLine).
+ line isEmptyOrNil ifTrue:[ ^ false ].
+ line := line string.
+
+ ((line size >= codeView cursorCol) and:[
+ (line at: codeView cursorCol) isAlphaNumeric]) ifTrue:[ ^ false ].
+ (line size < (codeView cursorCol - 1)) ifTrue:[ ^ false ].
+ (line at: codeView cursorCol - 1) isAlphaNumeric ifFalse:[ ^ false ].
+ (line at: codeView cursorCol - 2) isAlphaNumeric ifFalse:[ ^ false ].
+
+
+ completionSuppressed := true.
+ codeView sensor pushUserEvent: #doKeyPressComplete: for: self withArgument: true.
+
+ ] ifFalse:[
+ completionSuppressed := false.
+
+ ].
+
+
^false
"Created: / 24-07-2013 / 23:31:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified (format): / 17-09-2013 / 23:18:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 24-09-2013 / 01:49:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!EditSupport methodsFor:'private'!
--- a/SmallSense__SmalltalkEditSupport.st Mon Sep 23 14:36:49 2013 +0100
+++ b/SmallSense__SmalltalkEditSupport.st Tue Sep 24 01:53:26 2013 +0100
@@ -37,98 +37,107 @@
!SmalltalkEditSupport methodsFor:'event handling'!
-doKeyPressKeyComplete
- |cls
+doKeyPressComplete: auto
+ | cls
"/ crsrPos interval node checkedNode
"/ char start stop selectorSoFar matchingSelectors
codeView |
codeView := service codeView.
-
cls := codeView classHolder value.
- cls isNil ifTrue:[
- codeView showInfo:'No class'.
+ cls isNil ifTrue: [
+ codeView showInfo: 'No class'.
^ true.
].
- UserInformation handle:[:ex |
- codeView showInfo:(ex messageText).
- ex proceed.
- ] do:[
- codeView withWaitCursorDo:[
- | p node text items |
-
- codeView textView keyRelease: #Control_L x:0 y:0.
- p := codeView characterPositionOfCursor.
- items := Recognizer
- resultSetFor: codeView mode
- source: codeView contents
- class: cls
- line: codeView cursorLine
- column: codeView cursorCol.
+ UserInformation
+ handle: [:ex |
+ codeView showInfo: (ex messageText).
+ ex proceed.
+ ]
+ do: [
+ codeView
+ withWaitCursorDo: [
+ | p node text items |
- items notEmptyOrNil ifTrue:[
- (p := items position) notNil ifTrue:[
- node := p node.
- node notNil ifTrue:[
- (node isVariable and:[p isInNode]) ifTrue:[
- text := node name
- ] ifFalse:[node isMessage ifTrue:[
- text := node selector
- ]].
- ].
- ].
- ].
-
- CompletionWindow openForView: codeView text: text items: items.
- ]
- ].
+ auto ifFalse:[
+ codeView textView keyRelease: #'Control_L' x: 0 y: 0.
+ ].
+ p := codeView characterPositionOfCursor.
+ items := Recognizer
+ resultSetFor: codeView mode
+ source: codeView contents
+ class: cls
+ line: codeView cursorLine
+ column: codeView cursorCol.
+ items notEmptyOrNil ifTrue: [
+ (p := items position) notNil ifTrue: [
+ node := p node.
+ node notNil ifTrue: [
+ (node isVariable and: [ p isInNode ]) ifTrue: [
+ text := node name
+ ] ifFalse: [
+ node isMessage ifTrue: [
+ text := node selector
+ ]
+ ].
+ ].
+ ].
+ ].
+ (auto not or: [ items notEmptyOrNil ]) ifTrue: [
+ completionWindow := CompletionWindow
+ openForView: codeView
+ text: text
+ items: items.
+ completionWindow closeAction:[completionWindow := nil].
+ ].
+ ]
+ ].
^ true.
-"/
-"/ interval := self selectedInterval.
-"/ interval isEmpty ifTrue:[
-"/ crsrPos := codeView characterPositionOfCursor - 1.
-"/ char := codeView characterUnderCursor.
-"/ [crsrPos > 1 and:[char isSeparator or:['.' includes:char]]] whileTrue:[
-"/ crsrPos := crsrPos - 1.
-"/ char := codeView characterAtCharacterPosition:crsrPos.
-"/ ].
-"/ interval := crsrPos to:crsrPos.
-"/ ].
-"/
-"/ node := self findNodeForInterval:interval allowErrors:true.
-"/ [node isNil] whileTrue:[
-"/ "/ expand to the left ...
-"/ interval start > 1 ifFalse:[
-"/ self showInfo:'No parseNode found'.
-"/ ^ self.
-"/ ].
-"/ interval start:(interval start - 1).
-"/ node := self findNodeForInterval:interval allowErrors:true.
-"/ ].
-"/
-"/ node isVariable ifTrue:[
-"/ self codeCompletionForVariable:node inClass:cls.
-"/ ^ self.
-"/ ].
-"/
-"/ checkedNode := node.
-"/ [checkedNode notNil] whileTrue:[
-"/ checkedNode isMessage ifTrue:[
-"/ self codeCompletionForMessage:checkedNode inClass:cls.
-"/ ^ self
-"/ ].
-"/ checkedNode isMethod ifTrue:[
-"/ self codeCompletionForMethod:checkedNode inClass:cls.
-"/ ^ self.
-"/ ].
-"/ checkedNode := checkedNode parent.
-"/ ].
-"/
-"/ self showInfo:'Node is neither variable nor message.'.
+ "/
+ "/ interval := self selectedInterval.
+ "/ interval isEmpty ifTrue:[
+ "/ crsrPos := codeView characterPositionOfCursor - 1.
+ "/ char := codeView characterUnderCursor.
+ "/ [crsrPos > 1 and:[char isSeparator or:['.' includes:char]]] whileTrue:[
+ "/ crsrPos := crsrPos - 1.
+ "/ char := codeView characterAtCharacterPosition:crsrPos.
+ "/ ].
+ "/ interval := crsrPos to:crsrPos.
+ "/ ].
+ "/
+ "/ node := self findNodeForInterval:interval allowErrors:true.
+ "/ [node isNil] whileTrue:[
+ "/ "/ expand to the left ...
+ "/ interval start > 1 ifFalse:[
+ "/ self showInfo:'No parseNode found'.
+ "/ ^ self.
+ "/ ].
+ "/ interval start:(interval start - 1).
+ "/ node := self findNodeForInterval:interval allowErrors:true.
+ "/ ].
+ "/
+ "/ node isVariable ifTrue:[
+ "/ self codeCompletionForVariable:node inClass:cls.
+ "/ ^ self.
+ "/ ].
+ "/
+ "/ checkedNode := node.
+ "/ [checkedNode notNil] whileTrue:[
+ "/ checkedNode isMessage ifTrue:[
+ "/ self codeCompletionForMessage:checkedNode inClass:cls.
+ "/ ^ self
+ "/ ].
+ "/ checkedNode isMethod ifTrue:[
+ "/ self codeCompletionForMethod:checkedNode inClass:cls.
+ "/ ^ self.
+ "/ ].
+ "/ checkedNode := checkedNode parent.
+ "/ ].
+ "/
+ "/ self showInfo:'Node is neither variable nor message.'.
- "Created: / 04-08-2013 / 02:33:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 19-08-2013 / 15:14:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 24-09-2013 / 00:53:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
keyPress: key x:x y:y in: view
@@ -164,7 +173,7 @@
^ super keyPress: key x:x y:y in: view
"Created: / 07-03-2010 / 09:36:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 17-09-2013 / 23:19:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 24-09-2013 / 00:58:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
keyPressReturn
--- a/SmallSense__SmalltalkLintService.st Mon Sep 23 14:36:49 2013 +0100
+++ b/SmallSense__SmalltalkLintService.st Tue Sep 24 01:53:26 2013 +0100
@@ -326,7 +326,7 @@
rehighlight: delayed
| service |
- service := self service: SyntaxHighlightingService name.
+ service := self service: SmallSense::CodeHighlightingService name.
service isNil ifTrue:[
service := self service: Tools::CodeHighlightingService name
].
@@ -335,7 +335,7 @@
]
"Created: / 27-01-2012 / 17:06:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 06-08-2013 / 10:32:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 23-09-2013 / 22:27:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
showInfoWindowForLine: lineNo
--- a/SmallSense__SmalltalkSyntaxHighlighter.st Mon Sep 23 14:36:49 2013 +0100
+++ b/SmallSense__SmalltalkSyntaxHighlighter.st Tue Sep 24 01:53:26 2013 +0100
@@ -631,6 +631,26 @@
"Modified: / 16-02-2012 / 23:39:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+primary_identifier
+ | node |
+
+ ignoreBadIdentifier := classToCompileFor isNil.
+ node := super primary_identifier.
+ ignoreBadIdentifier := false.
+ node isVariable ifTrue:[
+ | el prevEl |
+
+ el := elements newElementFor: node.
+ prevEl := lastVariableElements at:node name ifAbsent:[nil].
+ prevEl notNil ifTrue:[prevEl next:el].
+ lastVariableElements at:node name put:el.
+ elements add: el.
+ ].
+ ^node
+
+ "Created: / 24-09-2013 / 00:42:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
unaryExpressionFor:receiverArg
"parse a unary-expression; return a node-tree, nil or #Error"
@@ -698,27 +718,6 @@
"Modified: / 19-01-2012 / 10:47:37 / cg"
"Created: / 16-02-2012 / 23:50:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-variable
- | node |
-
- ignoreBadIdentifier := classToCompileFor isNil.
- node := super variable.
- ignoreBadIdentifier := false.
- node isVariable ifTrue:[
- | el prevEl |
-
- el := elements newElementFor: node.
- prevEl := lastVariableElements at:node name ifAbsent:[nil].
- prevEl notNil ifTrue:[prevEl next:el].
- lastVariableElements at:node name put:el.
- elements add: el.
- ].
- ^node
-
- "Modified: / 19-01-2000 / 16:22:16 / cg"
- "Created: / 16-02-2012 / 22:21:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!SmalltalkSyntaxHighlighter methodsFor:'syntax detection'!
--- a/bc.mak Mon Sep 23 14:36:49 2013 +0100
+++ b/bc.mak Tue Sep 24 01:53:26 2013 +0100
@@ -34,7 +34,7 @@
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libwidg2
LOCALDEFINES=
STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -varPrefix=$(LIBNAME)
@@ -129,7 +129,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) $(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/extensions.st Mon Sep 23 14:36:49 2013 +0100
+++ b/extensions.st Tue Sep 24 01:53:26 2013 +0100
@@ -408,6 +408,16 @@
"Created: / 27-11-2011 / 16:31:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!Workspace class methodsFor:'defaults - smallsense'!
+
+smallSenseCodeCompletionServiceClass
+ <swizzle: #codeCompletionServiceClass>
+
+ ^ SmallSense::CodeCompletionService
+
+ "Created: / 24-09-2013 / 00:29:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!jv_smallsense class methodsFor:'documentation'!
extensionsVersion_HG
--- a/jv_smallsense.st Mon Sep 23 14:36:49 2013 +0100
+++ b/jv_smallsense.st Tue Sep 24 01:53:26 2013 +0100
@@ -52,6 +52,7 @@
#'stx:libtool' "AbstractSettingsApplication - superclass of SmallSense::SettingsAppl "
#'stx:libview' "DeviceGraphicsContext - extended "
#'stx:libview2' "ApplicationModel - superclass of SmallSense::CompletionWindow "
+ #'stx:libwidg' "EditTextView - extended "
#'stx:libwidg2' "DoWhatIMeanSupport - extended "
)
!
@@ -241,6 +242,7 @@
'Tools::CodeCompletionService class' smallSenseIsUsefulFor:
BlockNode childNamesAndValuesDo:
'Tools::CodeNavigationService class' new
+ 'Workspace class' smallSenseCodeCompletionServiceClass
)
! !
--- a/smallsense.rc Mon Sep 23 14:36:49 2013 +0100
+++ b/smallsense.rc Tue Sep 24 01:53:26 2013 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.3.0\0"
- VALUE "ProductDate", "Mon, 23 Sep 2013 13:35:47 GMT\0"
+ VALUE "ProductDate", "Tue, 24 Sep 2013 00:52:17 GMT\0"
END
END