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.
--- 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 §'
! !
+