--- a/SyntaxHighlighter2.st Sun Aug 21 12:25:36 2011 +0200
+++ b/SyntaxHighlighter2.st Sun Aug 21 12:25:51 2011 +0200
@@ -26,7 +26,7 @@
"{ Package: 'stx:libtool' }"
SyntaxHighlighter subclass:#SyntaxHighlighter2
- instanceVariableNames:'elements lastSelectorElement lastVariableElement'
+ instanceVariableNames:'elements lastVariableElements lastSelectorElement'
classVariableNames:''
poolDictionaries:''
category:'Interface-CodeView-Syntax'
@@ -217,7 +217,11 @@
!
elements:something
+ "the element collection, to collect variables, selectors etc. into"
+
elements := something.
+
+ "Modified (comment): / 21-08-2011 / 09:13:31 / cg"
! !
!SyntaxHighlighter2 methodsFor:'initialization'!
@@ -226,10 +230,11 @@
super initialize.
elements := SortedCollection new.
- lastVariableElement := Dictionary new.
+ lastVariableElements := Dictionary new.
"Created: / 14-02-2010 / 13:08:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 25-06-2010 / 13:04:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-08-2011 / 09:37:35 / cg"
! !
!SyntaxHighlighter2 methodsFor:'parsing-expressions'!
@@ -683,17 +688,11 @@
!SyntaxHighlighter2 methodsFor:'syntax detection'!
markArgumentIdentifierFrom:pos1 to:pos2
-
- | element prev |
-
super markArgumentIdentifierFrom:pos1 to:pos2.
- element := SyntaxElement from: pos1 to: pos2 type: #variable value: tokenName.
- prev := lastVariableElement at: tokenName ifAbsent:[nil].
- prev ifNotNil:[prev next:element].
- lastVariableElement at: tokenName put:element.
- elements add: element.
+ self rememberVariableElementFor:tokenName type:#variable from:pos1 to:pos2
"Created: / 24-07-2010 / 09:25:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-08-2011 / 09:27:26 / cg"
!
markGlobalClassIdentifierFrom:pos1 to:pos2
@@ -719,16 +718,12 @@
!
markLocalIdentifierFrom:pos1 to:pos2
- | element prev |
+ super markLocalIdentifierFrom:pos1 to:pos2.
- super markLocalIdentifierFrom:pos1 to:pos2.
- element := SyntaxElement from: pos1 to: pos2 type: #variable value: tokenName.
- prev := lastVariableElement at: tokenName ifAbsent:[nil].
- prev ifNotNil:[prev next:element].
- lastVariableElement at: tokenName put:element.
- elements add: element.
+ self rememberVariableElementFor:tokenName type:#variable from:pos1 to:pos2
"Created: / 24-07-2010 / 09:28:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (format): / 21-08-2011 / 09:27:12 / cg"
!
markSelector:selectorString from:pos1 to:pos2 receiverNode:aReceiverNode
@@ -738,13 +733,20 @@
super markSelector:selectorString from:pos1 to:pos2 receiverNode:aReceiverNode.
element := SyntaxElement from: pos1 to: pos2 type: #selector value: selectorString asSymbol.
- lastSelectorElement
- ifNotNil:[lastSelectorElement next: element].
+ lastSelectorElement ifNotNil:[lastSelectorElement next: element].
elements add: element.
lastSelectorElement := element.
"Created: / 14-02-2010 / 17:40:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 14-02-2010 / 19:24:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (format): / 21-08-2011 / 09:18:21 / cg"
+!
+
+markSelfFrom:pos1 to:pos2
+ super markSelfFrom:pos1 to:pos2.
+ self rememberVariableElementFor:'self' type:#self from:pos1 to:pos2
+
+ "Created: / 21-08-2011 / 09:15:45 / cg"
!
markUnknownIdentifierFrom:pos1 to:pos2
@@ -758,26 +760,34 @@
!
markVariable:v from:pos1 to:pos2
-
- | element prev |
super markVariable:v from:pos1 to:pos2.
(v type == #GlobalVariable) ifTrue:[^self].
- element := SyntaxElement from: pos1 to: pos2 type: #variable value: v name.
-
- prev := lastVariableElement at: v name ifAbsent:[nil].
- prev ifNotNil:[prev next:element].
- lastVariableElement at: v name put:element.
- elements add: element.
+ self rememberVariableElementFor:v name type:#variable from:pos1 to:pos2
"Created: / 25-06-2010 / 13:03:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 25-06-2010 / 14:23:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 21-08-2011 / 09:26:30 / cg"
+!
+
+rememberVariableElementFor:name type:typeSymbol from:pos1 to:pos2
+ |element prev|
+
+ element := SyntaxElement from: pos1 to: pos2 type:typeSymbol value: name.
+
+ prev := lastVariableElements at:name ifAbsent:[nil].
+ prev notNil ifTrue:[prev next:element].
+ lastVariableElements at:name put:element.
+
+ elements add: element.
+
+ "Created: / 21-08-2011 / 09:26:24 / cg"
! !
!SyntaxHighlighter2 class methodsFor:'documentation'!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/SyntaxHighlighter2.st,v 1.5 2011-08-02 07:36:08 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/SyntaxHighlighter2.st,v 1.6 2011-08-21 10:25:51 cg Exp $'
!
version_SVN