JavaScriptSyntaxHighlighter.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 24 Sep 2013 23:18:24 +0200
branchinitialV
changeset 1180 01c6be61f29c
parent 640 a2ca835be5b2
child 729 08e05dad9151
permissions -rw-r--r--
checkin from stx browser
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
155
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
     1
"
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
     2
 COPYRIGHT (c) 2005 by eXept Software AG
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
     3
              All Rights Reserved
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
     4
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
     5
 This software is furnished under a license and may be used
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
     6
 only in accordance with the terms of that license and with the
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
     8
 be provided or otherwise made available to, or used by, any
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
     9
 other person.  No title to or ownership of the software is
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    10
 hereby transferred.
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    11
"
96
84f082f21e01 initial checkin
ca
parents:
diff changeset
    12
"{ Package: 'stx:libjavascript' }"
84f082f21e01 initial checkin
ca
parents:
diff changeset
    13
84f082f21e01 initial checkin
ca
parents:
diff changeset
    14
JavaScriptParser subclass:#JavaScriptSyntaxHighlighter
84f082f21e01 initial checkin
ca
parents:
diff changeset
    15
	instanceVariableNames:'sourceText fullSelectorCheck preferences currentSuperclasses
84f082f21e01 initial checkin
ca
parents:
diff changeset
    16
		currentSubclasses'
84f082f21e01 initial checkin
ca
parents:
diff changeset
    17
	classVariableNames:''
84f082f21e01 initial checkin
ca
parents:
diff changeset
    18
	poolDictionaries:''
84f082f21e01 initial checkin
ca
parents:
diff changeset
    19
	category:'Languages-JavaScript-Compiling & Parsing'
84f082f21e01 initial checkin
ca
parents:
diff changeset
    20
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
    21
155
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    22
!JavaScriptSyntaxHighlighter class methodsFor:'documentation'!
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    23
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    24
copyright
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    25
"
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    26
 COPYRIGHT (c) 2005 by eXept Software AG
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    27
              All Rights Reserved
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    28
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    29
 This software is furnished under a license and may be used
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    30
 only in accordance with the terms of that license and with the
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    32
 be provided or otherwise made available to, or used by, any
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    33
 other person.  No title to or ownership of the software is
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    34
 hereby transferred.
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    35
"
8941ab2fe811 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 153
diff changeset
    36
! !
96
84f082f21e01 initial checkin
ca
parents:
diff changeset
    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
84f082f21e01 initial checkin
ca
parents:
diff changeset
    68
!JavaScriptSyntaxHighlighter class methodsFor:'highlighting'!
84f082f21e01 initial checkin
ca
parents:
diff changeset
    69
104
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
    70
format:aString with:aBlock in:aClass
96
84f082f21e01 initial checkin
ca
parents:
diff changeset
    71
    "format (recolor) a method in a given class.
84f082f21e01 initial checkin
ca
parents:
diff changeset
    72
     Return the text containing font changes and color information."
84f082f21e01 initial checkin
ca
parents:
diff changeset
    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
84f082f21e01 initial checkin
ca
parents:
diff changeset
    94
84f082f21e01 initial checkin
ca
parents:
diff changeset
    95
    aString isNil ifTrue:[^ nil].
84f082f21e01 initial checkin
ca
parents:
diff changeset
    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
84f082f21e01 initial checkin
ca
parents:
diff changeset
    98
84f082f21e01 initial checkin
ca
parents:
diff changeset
    99
    Error handle:[:ex |
585
ed48778f1fb0 class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   100
        ex creator ~~ Parser parseErrorSignal ifTrue:[
96
84f082f21e01 initial checkin
ca
parents:
diff changeset
   101
            ex reject.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   102
        ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
84f082f21e01 initial checkin
ca
parents:
diff changeset
   106
        "/ ex suspendedContext fullPrintAll.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   107
        errorHappened := true
84f082f21e01 initial checkin
ca
parents:
diff changeset
   108
    ] do:[
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
84f082f21e01 initial checkin
ca
parents:
diff changeset
   111
        parser ignoreErrors:true.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   112
        parser ignoreWarnings:true.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   113
        parser sourceText:(text := aString string asText).
84f082f21e01 initial checkin
ca
parents:
diff changeset
   114
        "/ use an array here - this can be changed much faster using #at:put:
84f082f21e01 initial checkin
ca
parents:
diff changeset
   115
        text emphasisCollection:(Array new:aString size).
84f082f21e01 initial checkin
ca
parents:
diff changeset
   116
104
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   117
        parser nextToken.
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   118
        tree := aBlock value:parser.
96
84f082f21e01 initial checkin
ca
parents:
diff changeset
   119
        "/ now, convert the emphasis-array to a runArray
84f082f21e01 initial checkin
ca
parents:
diff changeset
   120
        text emphasisCollection:(text emphasis asRunArray).
84f082f21e01 initial checkin
ca
parents:
diff changeset
   121
84f082f21e01 initial checkin
ca
parents:
diff changeset
   122
        errorHappened := tree == #Error.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   123
    ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
84f082f21e01 initial checkin
ca
parents:
diff changeset
   126
        eColor notNil ifTrue:[
84f082f21e01 initial checkin
ca
parents:
diff changeset
   127
            "/ mhmh - which is better ...
84f082f21e01 initial checkin
ca
parents:
diff changeset
   128
            "/ alternative1: color rest after error in red
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
84f082f21e01 initial checkin
ca
parents:
diff changeset
   131
                to:text size 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   132
                with:(#color->eColor).
84f082f21e01 initial checkin
ca
parents:
diff changeset
   133
        ] ifFalse:[
84f082f21e01 initial checkin
ca
parents:
diff changeset
   134
            "/ alternative2: take original emphasis for rest
84f082f21e01 initial checkin
ca
parents:
diff changeset
   135
640
a2ca835be5b2 class: JavaScriptSyntaxHighlighter
Stefan Vogel <sv@exept.de>
parents: 635
diff changeset
   136
            endPos := parser sourceStream position + 1.
96
84f082f21e01 initial checkin
ca
parents:
diff changeset
   137
            endPos >= text size ifTrue:[
84f082f21e01 initial checkin
ca
parents:
diff changeset
   138
                ^ text
84f082f21e01 initial checkin
ca
parents:
diff changeset
   139
            ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   140
            ^ (text copyTo:endPos) , (aString copyFrom:(endPos+1))
84f082f21e01 initial checkin
ca
parents:
diff changeset
   141
        ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   142
        "/ alternative3: no emphasis for rest.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   143
    ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   144
    ^ text
84f082f21e01 initial checkin
ca
parents:
diff changeset
   145
84f082f21e01 initial checkin
ca
parents:
diff changeset
   146
    "
84f082f21e01 initial checkin
ca
parents:
diff changeset
   147
     self
84f082f21e01 initial checkin
ca
parents:
diff changeset
   148
        formatMethod:'foo 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   149
    ^ self bar:''hello''.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   150
84f082f21e01 initial checkin
ca
parents:
diff changeset
   151
    ' , (Character doubleQuote asString) , 'some comment' , (Character doubleQuote asString) , '
84f082f21e01 initial checkin
ca
parents:
diff changeset
   152
'
84f082f21e01 initial checkin
ca
parents:
diff changeset
   153
        in:UndefinedObject
84f082f21e01 initial checkin
ca
parents:
diff changeset
   154
    "
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   157
!
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   158
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   159
formatClassDefinition:aString in:aClass
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   160
    "format (recolor) a class definition expression in a given class.
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   161
     Return the text containing font changes and color information."
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   162
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   163
    ^ self
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   164
        format:aString 
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   165
        with:[:parser | parser classDefinition] 
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   166
        in:aClass
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   167
!
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   168
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   169
formatExpression:aString in:aClass
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   170
    "format (recolor) an expression in a given class.
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   171
     Return the text containing font changes and color information."
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   172
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   173
    ^ self
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   174
        format:aString 
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   175
        with:[:parser | parser expression] 
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   176
        in:aClass
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   177
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   178
    "
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   179
     self
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   180
        formatExpression:'(1 + 2) max:5' 
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   181
        in:UndefinedObject
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   182
    "
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   183
!
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   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
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   191
formatMethod:aString in:aClass
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   192
    "format (recolor) a method in a given class.
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   193
     Return the text containing font changes and color information."
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   194
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   195
    ^ self
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   196
        format:aString 
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   197
        with:[:parser | parser function] 
3ed1e2ef71ca *** empty log message ***
ca
parents: 96
diff changeset
   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
84f082f21e01 initial checkin
ca
parents:
diff changeset
   222
! !
84f082f21e01 initial checkin
ca
parents:
diff changeset
   223
84f082f21e01 initial checkin
ca
parents:
diff changeset
   224
!JavaScriptSyntaxHighlighter methodsFor:'accessing'!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
84f082f21e01 initial checkin
ca
parents:
diff changeset
   230
sourceText
84f082f21e01 initial checkin
ca
parents:
diff changeset
   231
    "return the value of the instance variable 'sourceText' (automatically generated)"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   232
84f082f21e01 initial checkin
ca
parents:
diff changeset
   233
    ^ sourceText
84f082f21e01 initial checkin
ca
parents:
diff changeset
   234
84f082f21e01 initial checkin
ca
parents:
diff changeset
   235
    "Created: / 31.3.1998 / 11:49:05 / cg"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   236
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   237
84f082f21e01 initial checkin
ca
parents:
diff changeset
   238
sourceText:something
84f082f21e01 initial checkin
ca
parents:
diff changeset
   239
    "set the value of the instance variable 'sourceText' (automatically generated)"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   240
84f082f21e01 initial checkin
ca
parents:
diff changeset
   241
    sourceText := something.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   242
84f082f21e01 initial checkin
ca
parents:
diff changeset
   243
    "Created: / 31.3.1998 / 11:49:05 / cg"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   244
! !
84f082f21e01 initial checkin
ca
parents:
diff changeset
   245
84f082f21e01 initial checkin
ca
parents:
diff changeset
   246
!JavaScriptSyntaxHighlighter methodsFor:'error handling'!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   247
84f082f21e01 initial checkin
ca
parents:
diff changeset
   248
parseError:aMessage position:position to:endPos
84f082f21e01 initial checkin
ca
parents:
diff changeset
   249
    super parseError:aMessage position:position to:endPos.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   250
84f082f21e01 initial checkin
ca
parents:
diff changeset
   251
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   252
        markFrom:position to:endPos 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   253
        withEmphasis:nil color:UserPreferences current errorColor
84f082f21e01 initial checkin
ca
parents:
diff changeset
   254
! !
84f082f21e01 initial checkin
ca
parents:
diff changeset
   255
84f082f21e01 initial checkin
ca
parents:
diff changeset
   256
!JavaScriptSyntaxHighlighter methodsFor:'initialization'!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   257
84f082f21e01 initial checkin
ca
parents:
diff changeset
   258
initialize
84f082f21e01 initial checkin
ca
parents:
diff changeset
   259
    super initialize.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   260
84f082f21e01 initial checkin
ca
parents:
diff changeset
   261
    foldConstants := false.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
84f082f21e01 initial checkin
ca
parents:
diff changeset
   264
84f082f21e01 initial checkin
ca
parents:
diff changeset
   265
    fullSelectorCheck := preferences fullSelectorCheck.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   266
! !
84f082f21e01 initial checkin
ca
parents:
diff changeset
   267
84f082f21e01 initial checkin
ca
parents:
diff changeset
   268
!JavaScriptSyntaxHighlighter methodsFor:'private'!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   269
84f082f21e01 initial checkin
ca
parents:
diff changeset
   270
isSyntaxHighlighter
84f082f21e01 initial checkin
ca
parents:
diff changeset
   271
    ^ true
84f082f21e01 initial checkin
ca
parents:
diff changeset
   272
! !
84f082f21e01 initial checkin
ca
parents:
diff changeset
   273
84f082f21e01 initial checkin
ca
parents:
diff changeset
   274
!JavaScriptSyntaxHighlighter methodsFor:'syntax detection'!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   275
84f082f21e01 initial checkin
ca
parents:
diff changeset
   276
markArgumentIdentifierFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   277
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   278
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   279
        withEmphasis:(preferences argumentIdentifierEmphasis) color:(preferences argumentIdentifierColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   280
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   281
84f082f21e01 initial checkin
ca
parents:
diff changeset
   282
markClassVariableIdentifierFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   283
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   284
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   285
        withEmphasis:(preferences classVariableIdentifierEmphasis) color:(preferences classVariableIdentifierColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   286
84f082f21e01 initial checkin
ca
parents:
diff changeset
   287
    "Modified: / 31.3.1998 / 18:02:14 / cg"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   288
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   289
84f082f21e01 initial checkin
ca
parents:
diff changeset
   290
markCommentFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   291
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   292
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   293
        withEmphasis:(preferences commentEmphasis) color:(preferences commentColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   294
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   295
84f082f21e01 initial checkin
ca
parents:
diff changeset
   296
markConstantFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   297
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   298
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   299
        withEmphasis:(preferences constantEmphasis) color:(preferences constantColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   300
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   301
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
84f082f21e01 initial checkin
ca
parents:
diff changeset
   308
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   309
84f082f21e01 initial checkin
ca
parents:
diff changeset
   310
markFunctionNameFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   311
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   312
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   313
        withEmphasis:(preferences methodSelectorEmphasis) color:(preferences methodSelectorColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   314
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   315
84f082f21e01 initial checkin
ca
parents:
diff changeset
   316
markGlobalClassIdentifierFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   317
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   318
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   319
        withEmphasis:(preferences globalClassIdentifierEmphasis) color:(preferences globalClassIdentifierColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   320
84f082f21e01 initial checkin
ca
parents:
diff changeset
   321
    "Modified: / 31.3.1998 / 18:02:14 / cg"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   322
    "Created: / 4.3.1999 / 12:53:02 / cg"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   323
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   324
84f082f21e01 initial checkin
ca
parents:
diff changeset
   325
markGlobalIdentifierFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   326
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   327
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   328
        withEmphasis:(preferences globalIdentifierEmphasis) color:(preferences globalIdentifierColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   329
84f082f21e01 initial checkin
ca
parents:
diff changeset
   330
    "Modified: / 31.3.1998 / 18:02:14 / cg"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   331
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   332
84f082f21e01 initial checkin
ca
parents:
diff changeset
   333
markIdentifierFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   334
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   335
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   336
        withEmphasis:(preferences identifierEmphasis) color:(preferences identifierColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   337
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   338
84f082f21e01 initial checkin
ca
parents:
diff changeset
   339
markInstVarIdentifierFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   340
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   341
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   342
        withEmphasis:(preferences instVarIdentifierEmphasis) color:(preferences instVarIdentifierColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   343
84f082f21e01 initial checkin
ca
parents:
diff changeset
   344
    "Created: / 16.4.1998 / 18:35:40 / cg"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   345
    "Modified: / 16.4.1998 / 18:37:30 / cg"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   346
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   347
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
84f082f21e01 initial checkin
ca
parents:
diff changeset
   375
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
5a64386b26da changed: #returnStatement
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   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
84f082f21e01 initial checkin
ca
parents:
diff changeset
   380
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   381
84f082f21e01 initial checkin
ca
parents:
diff changeset
   382
markLocalIdentifierFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   383
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   384
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   385
        withEmphasis:(preferences localIdentifierEmphasis) color:(preferences localIdentifierColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   386
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   387
134
87838c5fa62c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   388
markSelector:selectorString from:pos1 to:pos2 receiverNode:aReceiverNodeOrNil numArgs:numArgs
96
84f082f21e01 initial checkin
ca
parents:
diff changeset
   389
    |fg selectorSymbol check ok rec em|
84f082f21e01 initial checkin
ca
parents:
diff changeset
   390
84f082f21e01 initial checkin
ca
parents:
diff changeset
   391
    fg := preferences selectorColor.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   392
    em := preferences selectorEmphasis.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   398
    ifTrue:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   399
        "/ a local call
96
84f082f21e01 initial checkin
ca
parents:
diff changeset
   400
    ] ifFalse:[
153
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   401
        selectorSymbol := (self translatedSmalltalkSelectorFor:selectorString numArgs:numArgs) asSymbolIfInterned.
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   402
        selectorSymbol isNil ifTrue:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   403
            fg := Color red.
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   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
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   407
            fullSelectorCheck == true ifTrue:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   408
                aReceiverNodeOrNil notNil ifTrue:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   409
                    check := [:cls | (cls includesSelector:selectorSymbol)
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   410
                                     or:[cls class includesSelector:selectorSymbol]].
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   411
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   412
                    ok := false.
96
84f082f21e01 initial checkin
ca
parents:
diff changeset
   413
153
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   414
                    "/ limit search if possible
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   415
                    (classToCompileFor notNil
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   416
                     and:[aReceiverNodeOrNil isSelf or:[aReceiverNodeOrNil isSuper]]) ifTrue:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   417
                        currentSuperclasses isNil ifTrue:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   418
                            currentSuperclasses := classToCompileFor withAllSuperclasses.
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   419
                        ].
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   420
                        ok := currentSuperclasses contains:check.
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   421
                        (ok not and:[aReceiverNodeOrNil isSelf]) ifTrue:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   422
                            currentSubclasses isNil ifTrue:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   423
                                currentSubclasses := classToCompileFor allSubclasses.
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   424
                            ].
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   425
                            ok := currentSubclasses contains:check.
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   426
                        ].
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   427
                    ] ifFalse:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   428
                        aReceiverNodeOrNil isConstant ifTrue:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   429
                            ok := aReceiverNodeOrNil evaluate class withAllSuperclasses contains:check.
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   430
                        ] ifFalse:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   431
                            (aReceiverNodeOrNil isGlobal 
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   432
                            and:[(rec := aReceiverNodeOrNil evaluate) isBehavior]) ifTrue:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   433
                                ok := rec class withAllSuperclasses contains:check.
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   434
                            ] ifFalse:[
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   435
                                ok := Smalltalk allClasses contains:check
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   436
                            ]
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   437
                        ]
96
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   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
4d8da52f1822 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 134
diff changeset
   467
        ].
96
84f082f21e01 initial checkin
ca
parents:
diff changeset
   468
    ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   469
    self
84f082f21e01 initial checkin
ca
parents:
diff changeset
   470
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   471
        withEmphasis:em color:fg
84f082f21e01 initial checkin
ca
parents:
diff changeset
   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
84f082f21e01 initial checkin
ca
parents:
diff changeset
   474
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   475
84f082f21e01 initial checkin
ca
parents:
diff changeset
   476
markSelfFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   477
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   478
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   479
        withEmphasis:(preferences selfEmphasis) color:(preferences selfColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   480
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   481
84f082f21e01 initial checkin
ca
parents:
diff changeset
   482
markStringFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   483
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   484
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   485
        withEmphasis:(preferences stringEmphasis) color:(preferences stringColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   486
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   487
84f082f21e01 initial checkin
ca
parents:
diff changeset
   488
markUnknownIdentifierFrom:pos1 to:pos2
84f082f21e01 initial checkin
ca
parents:
diff changeset
   489
    self 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   490
        markFrom:pos1 to:pos2 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   491
        withEmphasis:(preferences unknownIdentifierEmphasis) color:(preferences unknownIdentifierColor)
84f082f21e01 initial checkin
ca
parents:
diff changeset
   492
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   493
84f082f21e01 initial checkin
ca
parents:
diff changeset
   494
markVariable:v
84f082f21e01 initial checkin
ca
parents:
diff changeset
   495
    "support for syntaxColoring"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   496
84f082f21e01 initial checkin
ca
parents:
diff changeset
   497
    |pos endPos|
84f082f21e01 initial checkin
ca
parents:
diff changeset
   498
84f082f21e01 initial checkin
ca
parents:
diff changeset
   499
    pos := tokenPosition.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   500
    endPos := pos+tokenName size-1.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   501
    self markVariable:v from:pos to:endPos
84f082f21e01 initial checkin
ca
parents:
diff changeset
   502
!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   503
84f082f21e01 initial checkin
ca
parents:
diff changeset
   504
markVariable:v from:pos to:endPos
84f082f21e01 initial checkin
ca
parents:
diff changeset
   505
    "support for syntaxColoring"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   506
84f082f21e01 initial checkin
ca
parents:
diff changeset
   507
    |type globalValue nameSym|
84f082f21e01 initial checkin
ca
parents:
diff changeset
   508
84f082f21e01 initial checkin
ca
parents:
diff changeset
   509
    type := v type.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   510
    (type == #BlockArg
84f082f21e01 initial checkin
ca
parents:
diff changeset
   511
    or:[type == #MethodArg]) ifTrue:[
84f082f21e01 initial checkin
ca
parents:
diff changeset
   512
        self markArgumentIdentifierFrom:pos to:endPos.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   513
        ^ self
84f082f21e01 initial checkin
ca
parents:
diff changeset
   514
    ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   515
    (type == #BlockVariable
84f082f21e01 initial checkin
ca
parents:
diff changeset
   516
    or:[type == #MethodVariable]) ifTrue:[
84f082f21e01 initial checkin
ca
parents:
diff changeset
   517
        self markLocalIdentifierFrom:pos to:endPos.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   518
        ^ self
84f082f21e01 initial checkin
ca
parents:
diff changeset
   519
    ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   520
    (type == #GlobalVariable) ifTrue:[
84f082f21e01 initial checkin
ca
parents:
diff changeset
   521
        nameSym := v name asSymbolIfInterned.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   522
        (nameSym isNil 
84f082f21e01 initial checkin
ca
parents:
diff changeset
   523
        or:[(Smalltalk includesKey:nameSym) not]) ifTrue:[
84f082f21e01 initial checkin
ca
parents:
diff changeset
   524
            self markUnknownIdentifierFrom:pos to:endPos.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   525
            ^ self
84f082f21e01 initial checkin
ca
parents:
diff changeset
   526
        ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   527
        globalValue := Smalltalk at:nameSym ifAbsent:nil.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   528
        globalValue isBehavior ifTrue:[
84f082f21e01 initial checkin
ca
parents:
diff changeset
   529
            self markGlobalClassIdentifierFrom:pos to:endPos.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   530
        ] ifFalse:[
84f082f21e01 initial checkin
ca
parents:
diff changeset
   531
            self markGlobalIdentifierFrom:pos to:endPos.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   532
        ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   533
        ^ self
84f082f21e01 initial checkin
ca
parents:
diff changeset
   534
    ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   535
    (type == #ClassVariable) ifTrue:[
84f082f21e01 initial checkin
ca
parents:
diff changeset
   536
        self markClassVariableIdentifierFrom:pos to:endPos.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   537
        ^ self
84f082f21e01 initial checkin
ca
parents:
diff changeset
   538
    ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   539
    (type == #InstanceVariable) ifTrue:[
84f082f21e01 initial checkin
ca
parents:
diff changeset
   540
        self markInstVarIdentifierFrom:pos to:endPos.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   541
        ^ self
84f082f21e01 initial checkin
ca
parents:
diff changeset
   542
    ].
84f082f21e01 initial checkin
ca
parents:
diff changeset
   543
84f082f21e01 initial checkin
ca
parents:
diff changeset
   544
    self markIdentifierFrom:pos to:endPos.
84f082f21e01 initial checkin
ca
parents:
diff changeset
   545
84f082f21e01 initial checkin
ca
parents:
diff changeset
   546
    "Created: / 16.4.1998 / 18:49:34 / cg"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   547
    "Modified: / 4.3.1999 / 12:56:13 / cg"
84f082f21e01 initial checkin
ca
parents:
diff changeset
   548
! !
84f082f21e01 initial checkin
ca
parents:
diff changeset
   549
84f082f21e01 initial checkin
ca
parents:
diff changeset
   550
!JavaScriptSyntaxHighlighter class methodsFor:'documentation'!
84f082f21e01 initial checkin
ca
parents:
diff changeset
   551
84f082f21e01 initial checkin
ca
parents:
diff changeset
   552
version
84f082f21e01 initial checkin
ca
parents:
diff changeset
   553
    ^ '$Header$'
454
5a64386b26da changed: #returnStatement
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   554
!
5a64386b26da changed: #returnStatement
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   555
5a64386b26da changed: #returnStatement
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   556
version_CVS
5a64386b26da changed: #returnStatement
Claus Gittinger <cg@exept.de>
parents: 346
diff changeset
   557
    ^ '$Header$'
96
84f082f21e01 initial checkin
ca
parents:
diff changeset
   558
! !
585
ed48778f1fb0 class: JavaScriptSyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   559