class: SyntaxHighlighter2
authorClaus Gittinger <cg@exept.de>
Wed, 03 Apr 2013 19:13:40 +0200
changeset 12636 520a881e7e0f
parent 12635 3fea79e9a79b
child 12637 9476b20e1a4c
class: SyntaxHighlighter2 added: #format:parsingWith:in:elementsInto: #formatStatementList:in:elementsInto: changed: #formatExpression:in:elementsInto: code cleanup - if you say formatExpression, do an expression; not a statement list.
SyntaxHighlighter2.st
--- a/SyntaxHighlighter2.st	Wed Apr 03 17:44:38 2013 +0200
+++ b/SyntaxHighlighter2.st	Wed Apr 03 19:13:40 2013 +0200
@@ -64,18 +64,12 @@
 
 !SyntaxHighlighter2 class methodsFor:'highlighting'!
 
-formatClassDefinition:aString in:aClass elementsInto: elements
-    "format (recolor) a class definition expression in a given class.
-     Return the text containing font changes and color information."
-
-    ^ self formatExpression:aString in:aClass elementsInto: elements
-
-    "Created: / 10-04-2011 / 18:18:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-formatExpression:aString in:aClass elementsInto: elements
-    "format (recolor) an expression in a given class.
-     Return the text containing font changes and color information."
+format:aString parsingWith:aBlock in:aClass elementsInto:elements
+    "common code for formatStatementList, formatExpression, ...
+     format (recolor) whatever is parsed in aBlock (within the context of a given class).
+     Return the text containing font changes and color information.
+     As a side effect, put syntax elements into the passed in elements container
+     (for element-highlighting in codeView2)"
 
     |parser tree text endPos|
 
@@ -90,7 +84,7 @@
     text emphasisCollection:(Array new:aString size).
 
     parser nextToken.
-    tree := parser "expression"statementList.
+    tree := aBlock value:parser.
     "/ now, convert the emphasis-array to a runArray
     text emphasisCollection:(text emphasis asRunArray).
 
@@ -119,12 +113,35 @@
 
     "
      self
+        formatStatementList:'(1 + 2) max:5. 1 + 2' 
+        in:UndefinedObject
+        elementsInto:(OrderedCollection new).
+    "
+!
+
+formatClassDefinition:aString in:aClass elementsInto: elements
+    "format (recolor) a class definition expression in a given class.
+     Return the text containing font changes and color information."
+
+    ^ self formatExpression:aString in:aClass elementsInto: elements
+
+    "Created: / 10-04-2011 / 18:18:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+formatExpression:aString in:aClass elementsInto: elements
+    "format (recolor) an expression in a given class.
+     Return the text containing font changes and color information."
+
+    ^ self 
+        format:aString parsingWith:[:parser | parser expression]
+        in:aClass elementsInto:elements
+
+    "
+     self
         formatExpression:'(1 + 2) max:5' 
         in:UndefinedObject
+        elementsInto:(OrderedCollection new)
     "
-
-    "Created: / 25-07-2010 / 08:56:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 25-07-2010 / 10:57:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 formatMethod:aString in:aClass using:preferencesOrNil elementsInto: elements
@@ -208,6 +225,22 @@
 
     "Modified: / 22-08-2006 / 13:32:04 / cg"
     "Created: / 05-07-2011 / 10:39:21 / cg"
+!
+
+formatStatementList:aString in:aClass elementsInto: elements
+    "format (recolor) a statement list in a given class.
+     Return the text containing font changes and color information."
+
+    ^ self 
+        format:aString parsingWith:[:parser | parser statementList]
+        in:aClass elementsInto:elements
+
+    "
+     self
+        formatStatementList:'(1 + 2) max:5. 1 + 2' 
+        in:UndefinedObject
+        elementsInto:(OrderedCollection new).
+    "
 ! !
 
 !SyntaxHighlighter2 methodsFor:'accessing'!
@@ -751,9 +784,10 @@
 !SyntaxHighlighter2 class methodsFor:'documentation'!
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/SyntaxHighlighter2.st,v 1.10 2012-10-19 14:59:02 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/SyntaxHighlighter2.st,v 1.11 2013-04-03 17:13:40 cg Exp $'
 !
 
 version_SVN
     ^ '§Id: SyntaxHighlighter2.st 7715 2011-04-10 16:32:58Z vranyj1 §'
 ! !
+