SyntaxHighlighter2.st
changeset 15473 cab2f398e8da
parent 15456 44e323d6539f
child 15566 184cea584be5
child 15580 deefdf789ee7
equal deleted inserted replaced
15472:abf44e74df2f 15473:cab2f398e8da
  1045     "Modified: / 21-08-2011 / 09:26:30 / cg"
  1045     "Modified: / 21-08-2011 / 09:26:30 / cg"
  1046     "Modified: / 25-02-2014 / 14:07:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  1046     "Modified: / 25-02-2014 / 14:07:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  1047 !
  1047 !
  1048 
  1048 
  1049 rememberVariableElementFor:node from:pos1 to:pos2 assigned:assigned
  1049 rememberVariableElementFor:node from:pos1 to:pos2 assigned:assigned
  1050     |name typeSymbol key element prev|
  1050     |name typeSymbol key element prev dict|
  1051 
  1051 
  1052     node startPosition: pos1 endPosition: pos2.    
  1052     node startPosition: pos1 endPosition: pos2.    
  1053 
  1053 
  1054     name := node name.
  1054     name := node name.
  1055     typeSymbol := key := node type.
  1055     typeSymbol := key := node type.
       
  1056 
  1056     (typeSymbol == #BlockArg or:[typeSymbol == #BlockVariable]) ifTrue:[
  1057     (typeSymbol == #BlockArg or:[typeSymbol == #BlockVariable]) ifTrue:[
  1057         key := (typeSymbol -> node block)
  1058         key := (typeSymbol -> currentBlock "node block")
  1058     ].
  1059     ].
  1059 
  1060 
  1060     prev := (lastVariableElements at:key ifAbsentPut:[Dictionary new]) at:name ifAbsent:[nil].
  1061     dict := lastVariableElements at:key ifAbsentPut:[Dictionary new].
       
  1062     prev := dict at:name ifAbsent:[nil].
  1061     (prev notNil and:[prev start == pos1]) ifTrue:[
  1063     (prev notNil and:[prev start == pos1]) ifTrue:[
  1062         "/ prev assigned:assigned.
  1064         "/ prev assigned:assigned.
  1063         ^ self
  1065         ^ self
  1064     ].
  1066     ].
  1065 
  1067 
  1066     element := elements newElementFor: node.
  1068     element := elements newElementFor: node.
  1067 
  1069 
  1068     prev notNil ifTrue:[prev nextElement:element].
  1070     prev notNil ifTrue:[prev nextElement:element].
  1069     (lastVariableElements at:key) at:name put:element.
  1071     dict at:name put:element.
  1070 
  1072 
  1071     elements add: element.
  1073     elements add: element.
  1072 
  1074 
  1073     "Created: / 25-02-2014 / 12:13:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  1075     "Created: / 25-02-2014 / 12:13:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  1074 ! !
  1076 ! !
  1075 
  1077 
  1076 !SyntaxHighlighter2 class methodsFor:'documentation'!
  1078 !SyntaxHighlighter2 class methodsFor:'documentation'!
  1077 
  1079 
  1078 version
  1080 version
  1079     ^ '$Header: /cvs/stx/stx/libtool/SyntaxHighlighter2.st,v 1.25 2015-02-27 20:20:50 cg Exp $'
  1081     ^ '$Header: /cvs/stx/stx/libtool/SyntaxHighlighter2.st,v 1.26 2015-02-28 02:15:57 cg Exp $'
  1080 !
  1082 !
  1081 
  1083 
  1082 version_CVS
  1084 version_CVS
  1083     ^ '$Header: /cvs/stx/stx/libtool/SyntaxHighlighter2.st,v 1.25 2015-02-27 20:20:50 cg Exp $'
  1085     ^ '$Header: /cvs/stx/stx/libtool/SyntaxHighlighter2.st,v 1.26 2015-02-28 02:15:57 cg Exp $'
  1084 !
  1086 !
  1085 
  1087 
  1086 version_SVN
  1088 version_SVN
  1087     ^ '$Id: SyntaxHighlighter2.st,v 1.25 2015-02-27 20:20:50 cg Exp $'
  1089     ^ '$Id: SyntaxHighlighter2.st,v 1.26 2015-02-28 02:15:57 cg Exp $'
  1088 ! !
  1090 ! !
  1089 
  1091