author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Tue, 24 Sep 2013 23:18:24 +0200 | |
branch | initialV |
changeset 1180 | 01c6be61f29c |
parent 640 | a2ca835be5b2 |
child 729 | 08e05dad9151 |
permissions | -rw-r--r-- |
155 | 1 |
" |
2 |
COPYRIGHT (c) 2005 by eXept Software AG |
|
3 |
All Rights Reserved |
|
4 |
||
5 |
This software is furnished under a license and may be used |
|
6 |
only in accordance with the terms of that license and with the |
|
7 |
inclusion of the above copyright notice. This software may not |
|
8 |
be provided or otherwise made available to, or used by, any |
|
9 |
other person. No title to or ownership of the software is |
|
10 |
hereby transferred. |
|
11 |
" |
|
96 | 12 |
"{ Package: 'stx:libjavascript' }" |
13 |
||
14 |
JavaScriptParser subclass:#JavaScriptSyntaxHighlighter |
|
15 |
instanceVariableNames:'sourceText fullSelectorCheck preferences currentSuperclasses |
|
16 |
currentSubclasses' |
|
17 |
classVariableNames:'' |
|
18 |
poolDictionaries:'' |
|
19 |
category:'Languages-JavaScript-Compiling & Parsing' |
|
20 |
! |
|
21 |
||
155 | 22 |
!JavaScriptSyntaxHighlighter class methodsFor:'documentation'! |
23 |
||
24 |
copyright |
|
25 |
" |
|
26 |
COPYRIGHT (c) 2005 by eXept Software AG |
|
27 |
All Rights Reserved |
|
28 |
||
29 |
This software is furnished under a license and may be used |
|
30 |
only in accordance with the terms of that license and with the |
|
31 |
inclusion of the above copyright notice. This software may not |
|
32 |
be provided or otherwise made available to, or used by, any |
|
33 |
other person. No title to or ownership of the software is |
|
34 |
hereby transferred. |
|
35 |
" |
|
36 |
! ! |
|
96 | 37 |
|
515
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
38 |
!JavaScriptSyntaxHighlighter class methodsFor:'api highlighting'! |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
39 |
|
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
40 |
formatClassDefinition:aString in:aClass elementsInto: elements |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
41 |
"format (recolor) a class definition expression in a given class. |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
42 |
Return the text containing font changes and color information." |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
43 |
|
541
eea78648404b
changed: #formatClassDefinition:in:elementsInto:
Claus Gittinger <cg@exept.de>
parents:
527
diff
changeset
|
44 |
^ self |
eea78648404b
changed: #formatClassDefinition:in:elementsInto:
Claus Gittinger <cg@exept.de>
parents:
527
diff
changeset
|
45 |
format:aString |
eea78648404b
changed: #formatClassDefinition:in:elementsInto:
Claus Gittinger <cg@exept.de>
parents:
527
diff
changeset
|
46 |
with:[:parser | parser classDefinition] |
eea78648404b
changed: #formatClassDefinition:in:elementsInto:
Claus Gittinger <cg@exept.de>
parents:
527
diff
changeset
|
47 |
in:aClass |
515
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
48 |
|
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
49 |
"Created: / 10-04-2011 / 18:18:28 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
541
eea78648404b
changed: #formatClassDefinition:in:elementsInto:
Claus Gittinger <cg@exept.de>
parents:
527
diff
changeset
|
50 |
"Modified: / 22-08-2012 / 22:07:57 / cg" |
515
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
51 |
! |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
52 |
|
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
53 |
formatMethod:aString in:aClass using:preferencesOrNil elementsInto: elements |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
54 |
|
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
55 |
^self formatMethod:aString in:aClass using:preferencesOrNil |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
56 |
|
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
57 |
"Created: / 25-07-2010 / 08:58:00 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
58 |
! |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
59 |
|
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
60 |
formatMethod:aMethodOrNil source:aString in:aClass using:preferencesOrNil elementsInto: elements |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
61 |
|
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
62 |
^ self formatMethod:aMethodOrNil source:aString in:aClass using:preferencesOrNil |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
63 |
|
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
64 |
"Created: / 05-07-2011 / 10:41:14 / cg" |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
65 |
"Modified: / 20-07-2011 / 16:29:57 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
66 |
! ! |
5f8ba20396ff
Added syntax highlighting method required by CodeView2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
514
diff
changeset
|
67 |
|
96 | 68 |
!JavaScriptSyntaxHighlighter class methodsFor:'highlighting'! |
69 |
||
104 | 70 |
format:aString with:aBlock in:aClass |
96 | 71 |
"format (recolor) a method in a given class. |
72 |
Return the text containing font changes and color information." |
|
73 |
||
339
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
74 |
^ self format:aString with:aBlock in:aClass using:nil |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
75 |
|
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
76 |
" |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
77 |
self |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
78 |
formatMethod:'foo |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
79 |
^ self bar:''hello''. |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
80 |
|
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
81 |
' , (Character doubleQuote asString) , 'some comment' , (Character doubleQuote asString) , ' |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
82 |
' |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
83 |
in:UndefinedObject |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
84 |
" |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
85 |
|
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
86 |
"Modified: / 23.10.1998 / 22:48:45 / cg" |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
87 |
! |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
88 |
|
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
89 |
format:aString with:aBlock in:aClass using:preferencesOrNil |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
90 |
"format (recolor) a method in a given class. |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
91 |
Return the text containing font changes and color information." |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
92 |
|
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
93 |
|parser tree text endPos eColor errorHappened preferencesUsed| |
96 | 94 |
|
95 |
aString isNil ifTrue:[^ nil]. |
|
96 |
errorHappened := false. |
|
339
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
97 |
preferencesUsed := preferencesOrNil ? UserPreferences current. |
96 | 98 |
|
99 |
Error handle:[:ex | |
|
585
ed48778f1fb0
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
541
diff
changeset
|
100 |
ex creator ~~ Parser parseErrorSignal ifTrue:[ |
96 | 101 |
ex reject. |
102 |
]. |
|
103 |
||
526
a62294802998
changed: #format:with:in:using:
Claus Gittinger <cg@exept.de>
parents:
522
diff
changeset
|
104 |
"Parse error may happen when re-formatting incomplete code while editing" |
a62294802998
changed: #format:with:in:using:
Claus Gittinger <cg@exept.de>
parents:
522
diff
changeset
|
105 |
"/ ('SyntaxHighlighter [info]: error during highlight: ' , ex description) infoPrintCR. |
96 | 106 |
"/ ex suspendedContext fullPrintAll. |
107 |
errorHappened := true |
|
108 |
] do:[ |
|
109 |
parser := self for:(ReadStream on:aString string) in:aClass. |
|
339
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
110 |
parser preferences:preferencesUsed. |
96 | 111 |
parser ignoreErrors:true. |
112 |
parser ignoreWarnings:true. |
|
113 |
parser sourceText:(text := aString string asText). |
|
114 |
"/ use an array here - this can be changed much faster using #at:put: |
|
115 |
text emphasisCollection:(Array new:aString size). |
|
116 |
||
104 | 117 |
parser nextToken. |
118 |
tree := aBlock value:parser. |
|
96 | 119 |
"/ now, convert the emphasis-array to a runArray |
120 |
text emphasisCollection:(text emphasis asRunArray). |
|
121 |
||
122 |
errorHappened := tree == #Error. |
|
123 |
]. |
|
124 |
errorHappened ifTrue:[ |
|
339
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
125 |
eColor := preferencesUsed errorColor. |
96 | 126 |
eColor notNil ifTrue:[ |
127 |
"/ mhmh - which is better ... |
|
128 |
"/ alternative1: color rest after error in red |
|
129 |
text |
|
640
a2ca835be5b2
class: JavaScriptSyntaxHighlighter
Stefan Vogel <sv@exept.de>
parents:
635
diff
changeset
|
130 |
emphasizeFrom:(parser sourceStream position + 1 min:parser tokenPosition) |
96 | 131 |
to:text size |
132 |
with:(#color->eColor). |
|
133 |
] ifFalse:[ |
|
134 |
"/ alternative2: take original emphasis for rest |
|
135 |
||
640
a2ca835be5b2
class: JavaScriptSyntaxHighlighter
Stefan Vogel <sv@exept.de>
parents:
635
diff
changeset
|
136 |
endPos := parser sourceStream position + 1. |
96 | 137 |
endPos >= text size ifTrue:[ |
138 |
^ text |
|
139 |
]. |
|
140 |
^ (text copyTo:endPos) , (aString copyFrom:(endPos+1)) |
|
141 |
]. |
|
142 |
"/ alternative3: no emphasis for rest. |
|
143 |
]. |
|
144 |
^ text |
|
145 |
||
146 |
" |
|
147 |
self |
|
148 |
formatMethod:'foo |
|
149 |
^ self bar:''hello''. |
|
150 |
||
151 |
' , (Character doubleQuote asString) , 'some comment' , (Character doubleQuote asString) , ' |
|
152 |
' |
|
153 |
in:UndefinedObject |
|
154 |
" |
|
155 |
||
526
a62294802998
changed: #format:with:in:using:
Claus Gittinger <cg@exept.de>
parents:
522
diff
changeset
|
156 |
"Modified (comment): / 26-04-2012 / 12:16:44 / cg" |
104 | 157 |
! |
158 |
||
159 |
formatClassDefinition:aString in:aClass |
|
160 |
"format (recolor) a class definition expression in a given class. |
|
161 |
Return the text containing font changes and color information." |
|
162 |
||
163 |
^ self |
|
164 |
format:aString |
|
165 |
with:[:parser | parser classDefinition] |
|
166 |
in:aClass |
|
167 |
! |
|
168 |
||
169 |
formatExpression:aString in:aClass |
|
170 |
"format (recolor) an expression in a given class. |
|
171 |
Return the text containing font changes and color information." |
|
172 |
||
173 |
^ self |
|
174 |
format:aString |
|
175 |
with:[:parser | parser expression] |
|
176 |
in:aClass |
|
177 |
||
178 |
" |
|
179 |
self |
|
180 |
formatExpression:'(1 + 2) max:5' |
|
181 |
in:UndefinedObject |
|
182 |
" |
|
183 |
! |
|
184 |
||
510
66d81f64eba4
added: #formatExpression:in:elementsInto:
Claus Gittinger <cg@exept.de>
parents:
504
diff
changeset
|
185 |
formatExpression:aString in:aClass elementsInto:elementsCollection |
66d81f64eba4
added: #formatExpression:in:elementsInto:
Claus Gittinger <cg@exept.de>
parents:
504
diff
changeset
|
186 |
^ self formatExpression:aString in:aClass |
66d81f64eba4
added: #formatExpression:in:elementsInto:
Claus Gittinger <cg@exept.de>
parents:
504
diff
changeset
|
187 |
|
66d81f64eba4
added: #formatExpression:in:elementsInto:
Claus Gittinger <cg@exept.de>
parents:
504
diff
changeset
|
188 |
"Created: / 04-10-2011 / 19:47:03 / cg" |
66d81f64eba4
added: #formatExpression:in:elementsInto:
Claus Gittinger <cg@exept.de>
parents:
504
diff
changeset
|
189 |
! |
66d81f64eba4
added: #formatExpression:in:elementsInto:
Claus Gittinger <cg@exept.de>
parents:
504
diff
changeset
|
190 |
|
104 | 191 |
formatMethod:aString in:aClass |
192 |
"format (recolor) a method in a given class. |
|
193 |
Return the text containing font changes and color information." |
|
194 |
||
195 |
^ self |
|
196 |
format:aString |
|
197 |
with:[:parser | parser function] |
|
198 |
in:aClass |
|
339
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
199 |
! |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
200 |
|
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
201 |
formatMethod:aString in:aClass using:preferencesOrNil |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
202 |
"format (recolor) a method in a given class. |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
203 |
Return the text containing font changes and color information." |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
204 |
|
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
205 |
^ self |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
206 |
format:aString |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
207 |
with:[:parser | parser function] |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
208 |
in:aClass |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
209 |
using:preferencesOrNil |
504
b270ae5f3751
added: #formatMethod:source:in:
Claus Gittinger <cg@exept.de>
parents:
454
diff
changeset
|
210 |
! |
b270ae5f3751
added: #formatMethod:source:in:
Claus Gittinger <cg@exept.de>
parents:
454
diff
changeset
|
211 |
|
b270ae5f3751
added: #formatMethod:source:in:
Claus Gittinger <cg@exept.de>
parents:
454
diff
changeset
|
212 |
formatMethod:aMethod source:aString in:aClass |
b270ae5f3751
added: #formatMethod:source:in:
Claus Gittinger <cg@exept.de>
parents:
454
diff
changeset
|
213 |
^ self formatMethod:aString in:aClass using:nil |
b270ae5f3751
added: #formatMethod:source:in:
Claus Gittinger <cg@exept.de>
parents:
454
diff
changeset
|
214 |
|
b270ae5f3751
added: #formatMethod:source:in:
Claus Gittinger <cg@exept.de>
parents:
454
diff
changeset
|
215 |
"Created: / 30-01-2011 / 16:18:28 / cg" |
514
084641d9cf62
added: #formatMethod:source:in:using:
Claus Gittinger <cg@exept.de>
parents:
511
diff
changeset
|
216 |
! |
084641d9cf62
added: #formatMethod:source:in:using:
Claus Gittinger <cg@exept.de>
parents:
511
diff
changeset
|
217 |
|
084641d9cf62
added: #formatMethod:source:in:using:
Claus Gittinger <cg@exept.de>
parents:
511
diff
changeset
|
218 |
formatMethod:aMethod source:aString in:aClass using:preferencesOrNil |
084641d9cf62
added: #formatMethod:source:in:using:
Claus Gittinger <cg@exept.de>
parents:
511
diff
changeset
|
219 |
^ self formatMethod:aString in:aClass using:preferencesOrNil |
084641d9cf62
added: #formatMethod:source:in:using:
Claus Gittinger <cg@exept.de>
parents:
511
diff
changeset
|
220 |
|
084641d9cf62
added: #formatMethod:source:in:using:
Claus Gittinger <cg@exept.de>
parents:
511
diff
changeset
|
221 |
"Created: / 05-10-2011 / 23:23:29 / cg" |
96 | 222 |
! ! |
223 |
||
224 |
!JavaScriptSyntaxHighlighter methodsFor:'accessing'! |
|
225 |
||
339
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
226 |
preferences:something |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
227 |
preferences := something. |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
228 |
! |
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
229 |
|
96 | 230 |
sourceText |
231 |
"return the value of the instance variable 'sourceText' (automatically generated)" |
|
232 |
||
233 |
^ sourceText |
|
234 |
||
235 |
"Created: / 31.3.1998 / 11:49:05 / cg" |
|
236 |
! |
|
237 |
||
238 |
sourceText:something |
|
239 |
"set the value of the instance variable 'sourceText' (automatically generated)" |
|
240 |
||
241 |
sourceText := something. |
|
242 |
||
243 |
"Created: / 31.3.1998 / 11:49:05 / cg" |
|
244 |
! ! |
|
245 |
||
246 |
!JavaScriptSyntaxHighlighter methodsFor:'error handling'! |
|
247 |
||
248 |
parseError:aMessage position:position to:endPos |
|
249 |
super parseError:aMessage position:position to:endPos. |
|
250 |
||
251 |
self |
|
252 |
markFrom:position to:endPos |
|
253 |
withEmphasis:nil color:UserPreferences current errorColor |
|
254 |
! ! |
|
255 |
||
256 |
!JavaScriptSyntaxHighlighter methodsFor:'initialization'! |
|
257 |
||
258 |
initialize |
|
259 |
super initialize. |
|
260 |
||
261 |
foldConstants := false. |
|
262 |
||
339
c5ac6e54fdef
allow for preferences (color spec) to be passed as argument
Claus Gittinger <cg@exept.de>
parents:
273
diff
changeset
|
263 |
preferences := preferences ? UserPreferences current. |
96 | 264 |
|
265 |
fullSelectorCheck := preferences fullSelectorCheck. |
|
266 |
! ! |
|
267 |
||
268 |
!JavaScriptSyntaxHighlighter methodsFor:'private'! |
|
269 |
||
270 |
isSyntaxHighlighter |
|
271 |
^ true |
|
272 |
! ! |
|
273 |
||
274 |
!JavaScriptSyntaxHighlighter methodsFor:'syntax detection'! |
|
275 |
||
276 |
markArgumentIdentifierFrom:pos1 to:pos2 |
|
277 |
self |
|
278 |
markFrom:pos1 to:pos2 |
|
279 |
withEmphasis:(preferences argumentIdentifierEmphasis) color:(preferences argumentIdentifierColor) |
|
280 |
! |
|
281 |
||
282 |
markClassVariableIdentifierFrom:pos1 to:pos2 |
|
283 |
self |
|
284 |
markFrom:pos1 to:pos2 |
|
285 |
withEmphasis:(preferences classVariableIdentifierEmphasis) color:(preferences classVariableIdentifierColor) |
|
286 |
||
287 |
"Modified: / 31.3.1998 / 18:02:14 / cg" |
|
288 |
! |
|
289 |
||
290 |
markCommentFrom:pos1 to:pos2 |
|
291 |
self |
|
292 |
markFrom:pos1 to:pos2 |
|
293 |
withEmphasis:(preferences commentEmphasis) color:(preferences commentColor) |
|
294 |
! |
|
295 |
||
296 |
markConstantFrom:pos1 to:pos2 |
|
297 |
self |
|
298 |
markFrom:pos1 to:pos2 |
|
299 |
withEmphasis:(preferences constantEmphasis) color:(preferences constantColor) |
|
300 |
! |
|
301 |
||
302 |
markFrom:pos1 to:pos2 withEmphasis:fontEmp color:clrIn |
|
527
7ec420981329
changed: #markFrom:to:withEmphasis:color:
Claus Gittinger <cg@exept.de>
parents:
526
diff
changeset
|
303 |
AbstractSyntaxHighlighter |
7ec420981329
changed: #markFrom:to:withEmphasis:color:
Claus Gittinger <cg@exept.de>
parents:
526
diff
changeset
|
304 |
mark:sourceText from:pos1 to:pos2 withEmphasis:fontEmp color:clrIn |
96 | 305 |
|
527
7ec420981329
changed: #markFrom:to:withEmphasis:color:
Claus Gittinger <cg@exept.de>
parents:
526
diff
changeset
|
306 |
"Created: / 31-03-1998 / 13:26:53 / cg" |
7ec420981329
changed: #markFrom:to:withEmphasis:color:
Claus Gittinger <cg@exept.de>
parents:
526
diff
changeset
|
307 |
"Modified: / 01-06-2012 / 21:48:21 / cg" |
96 | 308 |
! |
309 |
||
310 |
markFunctionNameFrom:pos1 to:pos2 |
|
311 |
self |
|
312 |
markFrom:pos1 to:pos2 |
|
313 |
withEmphasis:(preferences methodSelectorEmphasis) color:(preferences methodSelectorColor) |
|
314 |
! |
|
315 |
||
316 |
markGlobalClassIdentifierFrom:pos1 to:pos2 |
|
317 |
self |
|
318 |
markFrom:pos1 to:pos2 |
|
319 |
withEmphasis:(preferences globalClassIdentifierEmphasis) color:(preferences globalClassIdentifierColor) |
|
320 |
||
321 |
"Modified: / 31.3.1998 / 18:02:14 / cg" |
|
322 |
"Created: / 4.3.1999 / 12:53:02 / cg" |
|
323 |
! |
|
324 |
||
325 |
markGlobalIdentifierFrom:pos1 to:pos2 |
|
326 |
self |
|
327 |
markFrom:pos1 to:pos2 |
|
328 |
withEmphasis:(preferences globalIdentifierEmphasis) color:(preferences globalIdentifierColor) |
|
329 |
||
330 |
"Modified: / 31.3.1998 / 18:02:14 / cg" |
|
331 |
! |
|
332 |
||
333 |
markIdentifierFrom:pos1 to:pos2 |
|
334 |
self |
|
335 |
markFrom:pos1 to:pos2 |
|
336 |
withEmphasis:(preferences identifierEmphasis) color:(preferences identifierColor) |
|
337 |
! |
|
338 |
||
339 |
markInstVarIdentifierFrom:pos1 to:pos2 |
|
340 |
self |
|
341 |
markFrom:pos1 to:pos2 |
|
342 |
withEmphasis:(preferences instVarIdentifierEmphasis) color:(preferences instVarIdentifierColor) |
|
343 |
||
344 |
"Created: / 16.4.1998 / 18:35:40 / cg" |
|
345 |
"Modified: / 16.4.1998 / 18:37:30 / cg" |
|
346 |
! |
|
347 |
||
348 |
markKeyword:kw from:pos1 to:pos2 |
|
522
b09960c73c99
changed: #markKeyword:from:to:
Claus Gittinger <cg@exept.de>
parents:
515
diff
changeset
|
349 |
"keywords get a special color" |
b09960c73c99
changed: #markKeyword:from:to:
Claus Gittinger <cg@exept.de>
parents:
515
diff
changeset
|
350 |
|
635
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
351 |
|kwOk em clr| |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
352 |
|
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
353 |
kwOk := true. |
346
fcbd007cf870
blueish control flow keywords
Claus Gittinger <cg@exept.de>
parents:
339
diff
changeset
|
354 |
|
635
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
355 |
"/ why should we test again. |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
356 |
"/ kwOk := ( #( 'if' 'else' |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
357 |
"/ 'while' |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
358 |
"/ 'for' |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
359 |
"/ 'do' |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
360 |
"/ 'return' |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
361 |
"/ 'from' |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
362 |
"/ 'try' 'catch' 'finally' |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
363 |
"/ 'switch' 'case' 'default' |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
364 |
"/ ) includes:kw). |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
365 |
kwOk ifTrue:[ |
346
fcbd007cf870
blueish control flow keywords
Claus Gittinger <cg@exept.de>
parents:
339
diff
changeset
|
366 |
em := preferences controlFlowSelectorEmphasis. |
fcbd007cf870
blueish control flow keywords
Claus Gittinger <cg@exept.de>
parents:
339
diff
changeset
|
367 |
clr := preferences controlFlowSelectorColor. |
522
b09960c73c99
changed: #markKeyword:from:to:
Claus Gittinger <cg@exept.de>
parents:
515
diff
changeset
|
368 |
]. |
b09960c73c99
changed: #markKeyword:from:to:
Claus Gittinger <cg@exept.de>
parents:
515
diff
changeset
|
369 |
em isNil ifTrue:[ |
346
fcbd007cf870
blueish control flow keywords
Claus Gittinger <cg@exept.de>
parents:
339
diff
changeset
|
370 |
em := preferences jsKeywordEmphasis. |
522
b09960c73c99
changed: #markKeyword:from:to:
Claus Gittinger <cg@exept.de>
parents:
515
diff
changeset
|
371 |
]. |
b09960c73c99
changed: #markKeyword:from:to:
Claus Gittinger <cg@exept.de>
parents:
515
diff
changeset
|
372 |
clr isNil ifTrue:[ |
346
fcbd007cf870
blueish control flow keywords
Claus Gittinger <cg@exept.de>
parents:
339
diff
changeset
|
373 |
clr := preferences jsKeywordColor. |
fcbd007cf870
blueish control flow keywords
Claus Gittinger <cg@exept.de>
parents:
339
diff
changeset
|
374 |
]. |
96 | 375 |
self |
376 |
markFrom:pos1 to:pos2 |
|
346
fcbd007cf870
blueish control flow keywords
Claus Gittinger <cg@exept.de>
parents:
339
diff
changeset
|
377 |
withEmphasis:em color:clr |
454 | 378 |
|
522
b09960c73c99
changed: #markKeyword:from:to:
Claus Gittinger <cg@exept.de>
parents:
515
diff
changeset
|
379 |
"Modified: / 14-02-2012 / 16:00:58 / cg" |
96 | 380 |
! |
381 |
||
382 |
markLocalIdentifierFrom:pos1 to:pos2 |
|
383 |
self |
|
384 |
markFrom:pos1 to:pos2 |
|
385 |
withEmphasis:(preferences localIdentifierEmphasis) color:(preferences localIdentifierColor) |
|
386 |
! |
|
387 |
||
134 | 388 |
markSelector:selectorString from:pos1 to:pos2 receiverNode:aReceiverNodeOrNil numArgs:numArgs |
96 | 389 |
|fg selectorSymbol check ok rec em| |
390 |
||
391 |
fg := preferences selectorColor. |
|
392 |
em := preferences selectorEmphasis. |
|
393 |
||
511
de23a81ad261
changed: #markSelector:from:to:receiverNode:numArgs:
Claus Gittinger <cg@exept.de>
parents:
510
diff
changeset
|
394 |
(currentEnvironment notNil |
de23a81ad261
changed: #markSelector:from:to:receiverNode:numArgs:
Claus Gittinger <cg@exept.de>
parents:
510
diff
changeset
|
395 |
and:[ (((currentEnvironment _localVariables ? #()) contains:[:local | local name = selectorString]) |
de23a81ad261
changed: #markSelector:from:to:receiverNode:numArgs:
Claus Gittinger <cg@exept.de>
parents:
510
diff
changeset
|
396 |
or:[((currentEnvironment _argVariables ? #()) contains:[:local | local name = selectorString])]) |
de23a81ad261
changed: #markSelector:from:to:receiverNode:numArgs:
Claus Gittinger <cg@exept.de>
parents:
510
diff
changeset
|
397 |
]) |
153 | 398 |
ifTrue:[ |
399 |
"/ a local call |
|
96 | 400 |
] ifFalse:[ |
153 | 401 |
selectorSymbol := (self translatedSmalltalkSelectorFor:selectorString numArgs:numArgs) asSymbolIfInterned. |
402 |
selectorSymbol isNil ifTrue:[ |
|
403 |
fg := Color red. |
|
404 |
] ifFalse:[ |
|
635
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
405 |
ok := true. |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
406 |
|
153 | 407 |
fullSelectorCheck == true ifTrue:[ |
408 |
aReceiverNodeOrNil notNil ifTrue:[ |
|
409 |
check := [:cls | (cls includesSelector:selectorSymbol) |
|
410 |
or:[cls class includesSelector:selectorSymbol]]. |
|
411 |
||
412 |
ok := false. |
|
96 | 413 |
|
153 | 414 |
"/ limit search if possible |
415 |
(classToCompileFor notNil |
|
416 |
and:[aReceiverNodeOrNil isSelf or:[aReceiverNodeOrNil isSuper]]) ifTrue:[ |
|
417 |
currentSuperclasses isNil ifTrue:[ |
|
418 |
currentSuperclasses := classToCompileFor withAllSuperclasses. |
|
419 |
]. |
|
420 |
ok := currentSuperclasses contains:check. |
|
421 |
(ok not and:[aReceiverNodeOrNil isSelf]) ifTrue:[ |
|
422 |
currentSubclasses isNil ifTrue:[ |
|
423 |
currentSubclasses := classToCompileFor allSubclasses. |
|
424 |
]. |
|
425 |
ok := currentSubclasses contains:check. |
|
426 |
]. |
|
427 |
] ifFalse:[ |
|
428 |
aReceiverNodeOrNil isConstant ifTrue:[ |
|
429 |
ok := aReceiverNodeOrNil evaluate class withAllSuperclasses contains:check. |
|
430 |
] ifFalse:[ |
|
431 |
(aReceiverNodeOrNil isGlobal |
|
432 |
and:[(rec := aReceiverNodeOrNil evaluate) isBehavior]) ifTrue:[ |
|
433 |
ok := rec class withAllSuperclasses contains:check. |
|
434 |
] ifFalse:[ |
|
435 |
ok := Smalltalk allClasses contains:check |
|
436 |
] |
|
437 |
] |
|
96 | 438 |
]. |
635
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
439 |
] |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
440 |
]. |
153 | 441 |
|
635
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
442 |
|
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
443 |
ok ifFalse:[ |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
444 |
em := preferences unimplementedSelectorEmphasis ? em. |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
445 |
fg := preferences unimplementedSelectorColor ? fg. |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
446 |
] ifTrue:[ |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
447 |
(AbstractSyntaxHighlighter controlFlowSelectors includesIdentical:selectorSymbol) ifTrue:[ |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
448 |
em := preferences controlFlowSelectorEmphasis ? em. |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
449 |
fg := preferences controlFlowSelectorColor ? fg |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
450 |
] ifFalse:[ |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
451 |
(AbstractSyntaxHighlighter collectionEnumerationSelectors includesIdentical:selectorSymbol) ifTrue:[ |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
452 |
em := preferences collectionEnumerationSelectorEmphasis ? em. |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
453 |
fg := preferences collectionEnumerationSelectorColor ? fg |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
454 |
] ifFalse:[ |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
455 |
(AbstractSyntaxHighlighter debugSelectors includesIdentical:selectorSymbol) ifTrue:[ |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
456 |
em := preferences debugSelectorEmphasis ? em. |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
457 |
fg := preferences debugSelectorColor ? fg |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
458 |
] ifFalse:[ |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
459 |
(AbstractSyntaxHighlighter errorRaisingSelectors includesIdentical:selectorSymbol) ifTrue:[ |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
460 |
em := preferences errorRaisingSelectorEmphasis ? em. |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
461 |
fg := preferences errorRaisingSelectorColor ? fg |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
462 |
]. |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
463 |
]. |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
464 |
]. |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
465 |
]. |
ebd2a4f385a4
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
585
diff
changeset
|
466 |
]. |
153 | 467 |
]. |
96 | 468 |
]. |
469 |
self |
|
470 |
markFrom:pos1 to:pos2 |
|
471 |
withEmphasis:em color:fg |
|
472 |
||
511
de23a81ad261
changed: #markSelector:from:to:receiverNode:numArgs:
Claus Gittinger <cg@exept.de>
parents:
510
diff
changeset
|
473 |
"Modified: / 04-10-2011 / 19:48:48 / cg" |
96 | 474 |
! |
475 |
||
476 |
markSelfFrom:pos1 to:pos2 |
|
477 |
self |
|
478 |
markFrom:pos1 to:pos2 |
|
479 |
withEmphasis:(preferences selfEmphasis) color:(preferences selfColor) |
|
480 |
! |
|
481 |
||
482 |
markStringFrom:pos1 to:pos2 |
|
483 |
self |
|
484 |
markFrom:pos1 to:pos2 |
|
485 |
withEmphasis:(preferences stringEmphasis) color:(preferences stringColor) |
|
486 |
! |
|
487 |
||
488 |
markUnknownIdentifierFrom:pos1 to:pos2 |
|
489 |
self |
|
490 |
markFrom:pos1 to:pos2 |
|
491 |
withEmphasis:(preferences unknownIdentifierEmphasis) color:(preferences unknownIdentifierColor) |
|
492 |
! |
|
493 |
||
494 |
markVariable:v |
|
495 |
"support for syntaxColoring" |
|
496 |
||
497 |
|pos endPos| |
|
498 |
||
499 |
pos := tokenPosition. |
|
500 |
endPos := pos+tokenName size-1. |
|
501 |
self markVariable:v from:pos to:endPos |
|
502 |
! |
|
503 |
||
504 |
markVariable:v from:pos to:endPos |
|
505 |
"support for syntaxColoring" |
|
506 |
||
507 |
|type globalValue nameSym| |
|
508 |
||
509 |
type := v type. |
|
510 |
(type == #BlockArg |
|
511 |
or:[type == #MethodArg]) ifTrue:[ |
|
512 |
self markArgumentIdentifierFrom:pos to:endPos. |
|
513 |
^ self |
|
514 |
]. |
|
515 |
(type == #BlockVariable |
|
516 |
or:[type == #MethodVariable]) ifTrue:[ |
|
517 |
self markLocalIdentifierFrom:pos to:endPos. |
|
518 |
^ self |
|
519 |
]. |
|
520 |
(type == #GlobalVariable) ifTrue:[ |
|
521 |
nameSym := v name asSymbolIfInterned. |
|
522 |
(nameSym isNil |
|
523 |
or:[(Smalltalk includesKey:nameSym) not]) ifTrue:[ |
|
524 |
self markUnknownIdentifierFrom:pos to:endPos. |
|
525 |
^ self |
|
526 |
]. |
|
527 |
globalValue := Smalltalk at:nameSym ifAbsent:nil. |
|
528 |
globalValue isBehavior ifTrue:[ |
|
529 |
self markGlobalClassIdentifierFrom:pos to:endPos. |
|
530 |
] ifFalse:[ |
|
531 |
self markGlobalIdentifierFrom:pos to:endPos. |
|
532 |
]. |
|
533 |
^ self |
|
534 |
]. |
|
535 |
(type == #ClassVariable) ifTrue:[ |
|
536 |
self markClassVariableIdentifierFrom:pos to:endPos. |
|
537 |
^ self |
|
538 |
]. |
|
539 |
(type == #InstanceVariable) ifTrue:[ |
|
540 |
self markInstVarIdentifierFrom:pos to:endPos. |
|
541 |
^ self |
|
542 |
]. |
|
543 |
||
544 |
self markIdentifierFrom:pos to:endPos. |
|
545 |
||
546 |
"Created: / 16.4.1998 / 18:49:34 / cg" |
|
547 |
"Modified: / 4.3.1999 / 12:56:13 / cg" |
|
548 |
! ! |
|
549 |
||
550 |
!JavaScriptSyntaxHighlighter class methodsFor:'documentation'! |
|
551 |
||
552 |
version |
|
553 |
^ '$Header$' |
|
454 | 554 |
! |
555 |
||
556 |
version_CVS |
|
557 |
^ '$Header$' |
|
96 | 558 |
! ! |
585
ed48778f1fb0
class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents:
541
diff
changeset
|
559 |