SyntaxHighlighter.st
author Jan Vrany <jan.vrany@labware.com>
Thu, 27 Oct 2022 14:53:59 +0100
branchjv
changeset 4735 3b11fb3ede98
parent 4727 36bdabdd6495
permissions -rw-r--r--
Allow single underscore as method / block argument and temporaries This commit is a follow up for 38b221e.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 1998 by eXept Software AG
4275
e06f4b087e47 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4259
diff changeset
     3
 COPYRIGHT (c) 2016-2017 Jan Vrany
4665
c9a622b87273 Allow setting custom variable resolver for parsing / compilation
Jan Vrany <jan.vrany@labware.com>
parents: 4281
diff changeset
     4
 COPYRIGHT (c) 2021 LabWare
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
              All Rights Reserved
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 This software is furnished under a license and may be used
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
 hereby transferred.
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
"
1110
3e08a12956fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 990
diff changeset
    14
"{ Package: 'stx:libcomp' }"
3e08a12956fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 990
diff changeset
    15
3560
b0c86d7cb860 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3353
diff changeset
    16
"{ NameSpace: Smalltalk }"
b0c86d7cb860 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3353
diff changeset
    17
2373
5705835046a9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2289
diff changeset
    18
AbstractSyntaxHighlighter subclass:#SyntaxHighlighter
5705835046a9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2289
diff changeset
    19
	instanceVariableNames:'currentSuperclasses currentSubclasses
5705835046a9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2289
diff changeset
    20
		cachedLocalIdentifierEmphasis cachedLocalIdentifierColor
5705835046a9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2289
diff changeset
    21
		cachedStringEmphasis cachedStringColor'
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
	classVariableNames:''
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
	poolDictionaries:''
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	category:'System-Compiler'
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
!SyntaxHighlighter class methodsFor:'documentation'!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
copyright
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 COPYRIGHT (c) 1998 by eXept Software AG
4275
e06f4b087e47 Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4259
diff changeset
    32
 COPYRIGHT (c) 2016-2017 Jan Vrany
4665
c9a622b87273 Allow setting custom variable resolver for parsing / compilation
Jan Vrany <jan.vrany@labware.com>
parents: 4281
diff changeset
    33
 COPYRIGHT (c) 2021 LabWare
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
              All Rights Reserved
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
 This software is furnished under a license and may be used
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
 only in accordance with the terms of that license and with the
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
 inclusion of the above copyright notice.   This software may not
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
 be provided or otherwise made available to, or used by, any
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
 other person.  No title to or ownership of the software is
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
 hereby transferred.
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
681
3add270b9c1e documentation added
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    45
!
3add270b9c1e documentation added
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    46
3add270b9c1e documentation added
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    47
documentation
3add270b9c1e documentation added
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    48
"
3add270b9c1e documentation added
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    49
    colors a method.
3add270b9c1e documentation added
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    50
"
3add270b9c1e documentation added
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    51
3add270b9c1e documentation added
Claus Gittinger <cg@exept.de>
parents: 680
diff changeset
    52
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
! !
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
4211
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    55
!SyntaxHighlighter class methodsFor:'constants'!
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    56
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    57
codeAspectClassDefinition
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    58
    ^ #classDefinition
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    59
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    60
    "Created: / 27-07-2012 / 22:17:24 / cg"
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    61
!
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    62
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    63
codeAspectExpression
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    64
    ^ #expression
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    65
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    66
    "Created: / 27-07-2012 / 22:01:26 / cg"
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    67
!
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    68
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    69
codeAspectFile
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    70
    ^ #file
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    71
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    72
    "Created: / 21-10-2017 / 13:25:14 / cg"
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    73
!
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    74
4665
c9a622b87273 Allow setting custom variable resolver for parsing / compilation
Jan Vrany <jan.vrany@labware.com>
parents: 4281
diff changeset
    75
codeAspectMethod
c9a622b87273 Allow setting custom variable resolver for parsing / compilation
Jan Vrany <jan.vrany@labware.com>
parents: 4281
diff changeset
    76
    ^ #method
c9a622b87273 Allow setting custom variable resolver for parsing / compilation
Jan Vrany <jan.vrany@labware.com>
parents: 4281
diff changeset
    77
c9a622b87273 Allow setting custom variable resolver for parsing / compilation
Jan Vrany <jan.vrany@labware.com>
parents: 4281
diff changeset
    78
    "Created: / 27-07-2012 / 22:01:42 / cg"
c9a622b87273 Allow setting custom variable resolver for parsing / compilation
Jan Vrany <jan.vrany@labware.com>
parents: 4281
diff changeset
    79
!
c9a622b87273 Allow setting custom variable resolver for parsing / compilation
Jan Vrany <jan.vrany@labware.com>
parents: 4281
diff changeset
    80
3716
bcd80550baab Added AbstractSyntaxHighlighter class>>formatStatements:in:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3598
diff changeset
    81
codeAspectStatements
bcd80550baab Added AbstractSyntaxHighlighter class>>formatStatements:in:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3598
diff changeset
    82
    ^ #statements
bcd80550baab Added AbstractSyntaxHighlighter class>>formatStatements:in:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3598
diff changeset
    83
bcd80550baab Added AbstractSyntaxHighlighter class>>formatStatements:in:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3598
diff changeset
    84
    "Created: / 22-02-2016 / 20:57:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4211
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    85
! !
5ecadf00f515 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 4203
diff changeset
    86
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
!SyntaxHighlighter methodsFor:'initialization'!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
initialize
4113
2542528ec54a #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
    90
    <modifier: #super> "must be called if redefined"
2542528ec54a #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
    91
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    super initialize.
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
990
cd1aa00086fd dont care to fold constants during syntaxHighlight
Claus Gittinger <cg@exept.de>
parents: 987
diff changeset
    94
    foldConstants := false.
1636
98afdcdacde8 compilerflags separated into ParserFlags.
Claus Gittinger <cg@exept.de>
parents: 1553
diff changeset
    95
"/    parserFlags allowDollarInIdentifier:true.
990
cd1aa00086fd dont care to fold constants during syntaxHighlight
Claus Gittinger <cg@exept.de>
parents: 987
diff changeset
    96
4113
2542528ec54a #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
    97
    "Created: / 31-03-1998 / 15:12:55 / cg"
4281
7edd11db2e23 Editor theme: do not allow for special fonts for comments
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4275
diff changeset
    98
    "Modified: / 05-01-1980 / 00:44:03 / cg"
7edd11db2e23 Editor theme: do not allow for special fonts for comments
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4275
diff changeset
    99
    "Modified: / 05-12-2017 / 21:09:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
! !
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
!SyntaxHighlighter methodsFor:'syntax detection'!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
markArgumentIdentifierFrom:pos1 to:pos2
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
    self 
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   107
        withEmphasis:(preferences argumentIdentifierEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   108
        color:(preferences argumentIdentifierColor)
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    "Modified: / 31.3.1998 / 18:01:27 / cg"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
2811
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   113
markAssignedClassVariableIdentifierFrom:pos1 to:pos2
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   114
    self 
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   115
        markFrom:pos1 to:pos2 
3560
b0c86d7cb860 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3353
diff changeset
   116
        withEmphasis:(preferences sideEffectAssignmentEmphasis) ifNil:(preferences classVariableIdentifierEmphasis)
b0c86d7cb860 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3353
diff changeset
   117
        color:(preferences sideEffectAssignmentColor) ifNil:(preferences classVariableIdentifierColor)
2811
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   118
        backgroundColor:(preferences sideEffectAssignmentBackgroundColor)
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   119
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   120
    "Created: / 13-02-2012 / 11:49:59 / cg"
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   121
!
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   122
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   123
markAssignedGlobalIdentifierFrom:pos1 to:pos2
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   124
    self 
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   125
        markFrom:pos1 to:pos2 
3560
b0c86d7cb860 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3353
diff changeset
   126
        withEmphasis:(preferences sideEffectAssignmentEmphasis) ifNil:(preferences globalIdentifierEmphasis)
b0c86d7cb860 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3353
diff changeset
   127
        color:(preferences sideEffectAssignmentColor) ifNil:(preferences globalIdentifierColor)
2811
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   128
        backgroundColor:(preferences sideEffectAssignmentBackgroundColor)
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   129
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   130
    "Modified: / 31-03-1998 / 18:02:14 / cg"
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   131
    "Created: / 13-02-2012 / 11:44:33 / cg"
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   132
!
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   133
2997
c9e4109b6420 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 2892
diff changeset
   134
markAssignedIdentifierFrom:pos1 to:pos2
c9e4109b6420 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 2892
diff changeset
   135
    "any other identifier (PrivateClass, Workspace, Doit, etc.)"
c9e4109b6420 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 2892
diff changeset
   136
c9e4109b6420 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 2892
diff changeset
   137
    self markAssignedGlobalIdentifierFrom:pos1 to:pos2
c9e4109b6420 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 2892
diff changeset
   138
!
c9e4109b6420 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 2892
diff changeset
   139
2811
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   140
markAssignedInstVarIdentifierFrom:pos1 to:pos2
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   141
    self 
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   142
        markFrom:pos1 to:pos2 
3560
b0c86d7cb860 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3353
diff changeset
   143
        withEmphasis:(preferences sideEffectAssignmentEmphasis) ifNil:(preferences instVarIdentifierEmphasis)
b0c86d7cb860 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3353
diff changeset
   144
        color:(preferences sideEffectAssignmentColor) ifNil:(preferences instVarIdentifierColor)
2811
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   145
        backgroundColor:(preferences sideEffectAssignmentBackgroundColor)
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   146
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   147
    "Created: / 13-02-2012 / 11:50:19 / cg"
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   148
!
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   149
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   150
markAssignedPoolVariableIdentifierFrom:pos1 to:pos2
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   151
    self 
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   152
        markFrom:pos1 to:pos2 
3560
b0c86d7cb860 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3353
diff changeset
   153
        withEmphasis:(preferences sideEffectAssignmentEmphasis) ifNil:(preferences poolVariableIdentifierEmphasis)
b0c86d7cb860 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3353
diff changeset
   154
        color:(preferences sideEffectAssignmentColor) ifNil:(preferences poolVariableIdentifierColor)
2811
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   155
        backgroundColor:(preferences sideEffectAssignmentBackgroundColor)
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   156
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   157
    "Created: / 13-02-2012 / 11:49:14 / cg"
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   158
!
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   159
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   160
markAssignedVariable:v from:pos to:endPos
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   161
    "support for syntaxColoring"
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   162
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   163
    |type|
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   164
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   165
    type := v type.
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   166
    (type == #BlockArg
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   167
    or:[ type == #MethodArg
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   168
    or:[ type == #BlockVariable
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   169
    or:[ type == #MethodVariable]]]) ifTrue:[
3187
7aa3c1a58647 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
   170
        self markVariable:v from:pos to:endPos assigned:true.
2811
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   171
        ^ self
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   172
    ].
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   173
    (type == #GlobalVariable) ifTrue:[
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   174
        self markAssignedGlobalIdentifierFrom:pos to:endPos.
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   175
        ^ self
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   176
    ].
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   177
    (type == #PoolVariable) ifTrue:[
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   178
        self markAssignedPoolVariableIdentifierFrom:pos to:endPos.
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   179
        ^ self
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   180
    ].
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   181
    (type == #ClassVariable) ifTrue:[
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   182
        self markAssignedClassVariableIdentifierFrom:pos to:endPos.
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   183
        ^ self
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   184
    ].
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   185
    (type == #InstanceVariable) ifTrue:[
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   186
        self markAssignedInstVarIdentifierFrom:pos to:endPos.
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   187
        ^ self
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   188
    ].
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   189
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   190
    self markAssignedIdentifierFrom:pos to:endPos.
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   191
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   192
    "Created: / 13-02-2012 / 11:42:23 / cg"
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   193
!
88582e700b37 added:5 methods
Claus Gittinger <cg@exept.de>
parents: 2807
diff changeset
   194
884
5ec4b67dce33 mark bad identifiers
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   195
markBadIdentifierFrom:pos1 to:pos2
5ec4b67dce33 mark bad identifiers
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   196
    self 
5ec4b67dce33 mark bad identifiers
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   197
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   198
        withEmphasis:(preferences badIdentifierEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   199
        color:(preferences badIdentifierColor)
884
5ec4b67dce33 mark bad identifiers
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   200
!
5ec4b67dce33 mark bad identifiers
Claus Gittinger <cg@exept.de>
parents: 870
diff changeset
   201
2055
b04faf4243fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1905
diff changeset
   202
markBlockFrom:pos1 to:pos2
2228
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   203
    "an experiment (which does not look too good, after all):
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   204
     the deeper the nesting of the block, the darker the background color."
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   205
2055
b04faf4243fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1905
diff changeset
   206
"/    |level color|
b04faf4243fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1905
diff changeset
   207
"/
b04faf4243fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1905
diff changeset
   208
"/    level := currentBlock isNil ifTrue:[1] ifFalse:[currentBlock nestingLevel+1].
2228
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   209
"/    level > 5 ifTrue:[
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   210
"/        color := Color yellow darkened.
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   211
"/    ] ifFalse:[
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   212
"/        color := {
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   213
"/                    Color yellow lightened lightened.
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   214
"/                    Color yellow lightened          .
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   215
"/                    Color yellow                    .
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   216
"/                    Color yellow slightlyDarkened   .
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   217
"/                    Color yellow darkened           .
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   218
"/                } at:level.
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   219
"/    ].
2055
b04faf4243fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1905
diff changeset
   220
"/    self 
b04faf4243fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1905
diff changeset
   221
"/        markFrom:pos1 to:pos2 
2228
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   222
"/        withAddedEmphasis:(#backgroundColor->color).
2055
b04faf4243fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1905
diff changeset
   223
!
b04faf4243fd *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1905
diff changeset
   224
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
markBooleanConstantFrom:pos1 to:pos2
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
    self 
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   228
        withEmphasis:(preferences booleanConstantEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   229
        color:(preferences booleanConstantColor)
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
    "Created: / 31.3.1998 / 18:09:01 / cg"
665
14114d1e653c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
   232
    "Modified: / 31.3.1998 / 19:36:44 / cg"
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
673
0c66b7cb1d2f checkin from browser
ca
parents: 672
diff changeset
   235
markBracketAt:pos
2070
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   236
    |level colors clr em|
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   237
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   238
    preferences emphasizeParenthesisLevel ifFalse:[
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   239
        self 
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   240
            markFrom:pos to:pos 
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   241
            withEmphasis:(preferences bracketEmphasis) 
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   242
            color:(preferences bracketColor).
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   243
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   244
        ^ self
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   245
    ].
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   246
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   247
    level := currentBlock isNil ifTrue:[1] ifFalse:[currentBlock nestingLevel + 2].
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   248
    (sourceText at:pos) = $] ifTrue:[
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   249
        level := level - 1.
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   250
    ].
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   251
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   252
    colors := Array 
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   253
                with:(Color black)
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   254
                with:(Color blue)
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   255
                with:(Color green blendWith:(Color grey:30))
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   256
                with:(Color red blendWith:(Color grey:30))
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   257
                with:(Color yellow darkened).
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   258
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   259
    clr := colors at:((level-1) \\ colors size + 1).
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   260
    em := #normal.
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   261
    level > 1 ifTrue:[
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   262
        em := #bold.
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   263
    ].
673
0c66b7cb1d2f checkin from browser
ca
parents: 672
diff changeset
   264
    self 
0c66b7cb1d2f checkin from browser
ca
parents: 672
diff changeset
   265
        markFrom:pos to:pos 
2070
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   266
        withEmphasis:em 
1f4574d55b53 bracket level
Claus Gittinger <cg@exept.de>
parents: 2055
diff changeset
   267
        color:clr
673
0c66b7cb1d2f checkin from browser
ca
parents: 672
diff changeset
   268
!
0c66b7cb1d2f checkin from browser
ca
parents: 672
diff changeset
   269
870
1db26e4ce4c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 868
diff changeset
   270
markClassVariableIdentifierFrom:pos1 to:pos2
1db26e4ce4c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 868
diff changeset
   271
    self 
1db26e4ce4c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 868
diff changeset
   272
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   273
        withEmphasis:(preferences classVariableIdentifierEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   274
        color:(preferences classVariableIdentifierColor)
870
1db26e4ce4c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 868
diff changeset
   275
1db26e4ce4c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 868
diff changeset
   276
    "Modified: / 31.3.1998 / 18:02:14 / cg"
1db26e4ce4c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 868
diff changeset
   277
!
1db26e4ce4c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 868
diff changeset
   278
822
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   279
markGlobalClassIdentifierFrom:pos1 to:pos2
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   280
    self 
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   281
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   282
        withEmphasis:(preferences globalClassIdentifierEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   283
        color:(preferences globalClassIdentifierColor)
822
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   284
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   285
    "Modified: / 31.3.1998 / 18:02:14 / cg"
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   286
    "Created: / 4.3.1999 / 12:53:02 / cg"
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   287
!
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   288
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
markGlobalIdentifierFrom:pos1 to:pos2
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
    self 
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   291
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   292
        withEmphasis:(preferences globalIdentifierEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   293
        color:(preferences globalIdentifierColor)
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   295
    "Modified: / 31.3.1998 / 18:02:14 / cg"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   298
markHereFrom:pos1 to:pos2
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   299
    self 
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   300
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   301
        withEmphasis:(preferences hereEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   302
        color:(preferences hereColor)
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   303
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
    "Modified: / 31.3.1998 / 18:02:25 / cg"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   306
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   307
markIdentifierFrom:pos1 to:pos2
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   308
    self 
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   309
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   310
        withEmphasis:(preferences identifierEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   311
        color:(preferences identifierColor)
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   312
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   313
    "Modified: / 31.3.1998 / 18:02:39 / cg"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   314
    "Created: / 31.3.1998 / 18:04:56 / cg"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   315
!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   316
686
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   317
markInstVarIdentifierFrom:pos1 to:pos2
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   318
    self 
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   319
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   320
        withEmphasis:(preferences instVarIdentifierEmphasis)    
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   321
        color:(preferences instVarIdentifierColor)
686
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   322
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   323
    "Created: / 16.4.1998 / 18:35:40 / cg"
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   324
    "Modified: / 16.4.1998 / 18:37:30 / cg"
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   325
!
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   326
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   327
markLocalIdentifierFrom:pos1 to:pos2
1802
e0b32dc71dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1757
diff changeset
   328
    cachedLocalIdentifierEmphasis isNil ifTrue:[
e0b32dc71dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1757
diff changeset
   329
        cachedLocalIdentifierEmphasis := preferences localIdentifierEmphasis.
e0b32dc71dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1757
diff changeset
   330
        cachedLocalIdentifierColor := preferences localIdentifierColor.
e0b32dc71dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1757
diff changeset
   331
    ].
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   332
    self 
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   333
        markFrom:pos1 to:pos2 
1802
e0b32dc71dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1757
diff changeset
   334
        withEmphasis:cachedLocalIdentifierEmphasis 
e0b32dc71dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1757
diff changeset
   335
        color:cachedLocalIdentifierColor
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   336
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   337
    "Modified: / 31.3.1998 / 18:02:39 / cg"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   338
!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   339
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   340
markMethodSelectorFrom:pos1 to:pos2
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   341
    self 
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   342
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   343
        withEmphasis:(preferences methodSelectorEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   344
        color:(preferences methodSelectorColor)
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   345
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   346
    "Modified: / 31.3.1998 / 18:02:52 / cg"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   347
!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   348
1684
e9d1d09ca914 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1640
diff changeset
   349
markNumberConstantFrom:pos1 to:pos2
e9d1d09ca914 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1640
diff changeset
   350
    self 
e9d1d09ca914 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1640
diff changeset
   351
        markFrom:pos1 to:pos2 
e9d1d09ca914 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1640
diff changeset
   352
        withEmphasis:(preferences numberConstantEmphasis) 
e9d1d09ca914 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1640
diff changeset
   353
        color:(preferences numberConstantColor)
e9d1d09ca914 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1640
diff changeset
   354
e9d1d09ca914 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1640
diff changeset
   355
    "Modified: / 31.3.1998 / 18:01:44 / cg"
e9d1d09ca914 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1640
diff changeset
   356
    "Created: / 31.3.1998 / 18:09:22 / cg"
e9d1d09ca914 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1640
diff changeset
   357
!
e9d1d09ca914 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1640
diff changeset
   358
1640
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   359
markParenthesisAt:pos
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   360
    |colors clr em|
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   361
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   362
    preferences emphasizeParenthesisLevel ifFalse:[^ self].
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   363
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   364
    colors := Array 
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   365
                with:(Color black)
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   366
                with:(Color blue)
1757
c1edf49e8f9f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1684
diff changeset
   367
                with:(Color green blendWith:(Color grey:30))
c1edf49e8f9f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1684
diff changeset
   368
                with:(Color red blendWith:(Color grey:30))
1640
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   369
                with:(Color yellow darkened).
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   370
                        
1757
c1edf49e8f9f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1684
diff changeset
   371
    clr := colors at:((parenthesisLevel-1) \\ colors size + 1).
1640
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   372
    em := #normal.
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   373
    parenthesisLevel > 1 ifTrue:[
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   374
        em := #bold.
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   375
    ].
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   376
    self 
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   377
        markFrom:pos to:pos 
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   378
        withEmphasis:em 
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   379
        color:clr
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   380
!
261459ccc704 emphasize parenthesis nesting
Claus Gittinger <cg@exept.de>
parents: 1636
diff changeset
   381
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   382
markPoolVariableIdentifierFrom:pos1 to:pos2
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   383
    self 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   384
        markFrom:pos1 to:pos2 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   385
        withEmphasis:(preferences poolVariableIdentifierEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   386
        color:(preferences poolVariableIdentifierColor)
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   387
!
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   388
838
fd3286584da6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 823
diff changeset
   389
markReturnAt:pos
3598
72fc8ed7472e some code cleanup
Claus Gittinger <cg@exept.de>
parents: 3560
diff changeset
   390
    "/ sourceText := (sourceText copyTo:pos-1),(Character value:16r21e7),(sourceText copyFrom:pos+1).
838
fd3286584da6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 823
diff changeset
   391
    self 
fd3286584da6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 823
diff changeset
   392
        markFrom:pos to:pos 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   393
        withEmphasis:(preferences returnEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   394
        color:(preferences returnColor)
838
fd3286584da6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 823
diff changeset
   395
fd3286584da6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 823
diff changeset
   396
    "Modified: / 31.3.1998 / 19:36:44 / cg"
fd3286584da6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 823
diff changeset
   397
    "Created: / 5.1.1980 / 00:44:27 / cg"
fd3286584da6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 823
diff changeset
   398
!
fd3286584da6 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 823
diff changeset
   399
863
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   400
markSelector:selectorString from:pos1 to:pos2 receiverNode:aReceiverNode
1498
9b4366551a2a speed up symbol checking and generation
Stefan Vogel <sv@exept.de>
parents: 1396
diff changeset
   401
    |fg selectorSymbol check ok rec em|
863
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   402
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   403
"/ uncommenting the code below
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   404
"/ will suppress highlighting of common selectors ...
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   405
"/
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   406
"/    (#(
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   407
"/        'ifTrue:' 
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   408
"/        'ifFalse:'
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   409
"/        'not'
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   410
"/        'and:'
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   411
"/        'or:'
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   412
"/        '='
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   413
"/        '=='
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   414
"/        '~='
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   415
"/        '~~'
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   416
"/    ) includes:sel) ifTrue:[
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   417
"/        ^ self
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   418
"/    ].
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   419
1526
e3b13dd2f034 *** empty log message ***
ca
parents: 1498
diff changeset
   420
    fg := preferences selectorColor.
e3b13dd2f034 *** empty log message ***
ca
parents: 1498
diff changeset
   421
    em := preferences selectorEmphasis.
1498
9b4366551a2a speed up symbol checking and generation
Stefan Vogel <sv@exept.de>
parents: 1396
diff changeset
   422
    selectorSymbol := selectorString asSymbolIfInterned.
9b4366551a2a speed up symbol checking and generation
Stefan Vogel <sv@exept.de>
parents: 1396
diff changeset
   423
    selectorSymbol isNil ifTrue:[
1905
fba079d9d509 control flow color&emphasis
Claus Gittinger <cg@exept.de>
parents: 1857
diff changeset
   424
        em := preferences unimplementedSelectorEmphasis.
fba079d9d509 control flow color&emphasis
Claus Gittinger <cg@exept.de>
parents: 1857
diff changeset
   425
        fg := preferences unimplementedSelectorColor.
1498
9b4366551a2a speed up symbol checking and generation
Stefan Vogel <sv@exept.de>
parents: 1396
diff changeset
   426
    ] ifFalse:[
1905
fba079d9d509 control flow color&emphasis
Claus Gittinger <cg@exept.de>
parents: 1857
diff changeset
   427
        ok := true.
fba079d9d509 control flow color&emphasis
Claus Gittinger <cg@exept.de>
parents: 1857
diff changeset
   428
863
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   429
        fullSelectorCheck == true ifTrue:[
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   430
1498
9b4366551a2a speed up symbol checking and generation
Stefan Vogel <sv@exept.de>
parents: 1396
diff changeset
   431
            check := [:cls | (cls includesSelector:selectorSymbol)
9b4366551a2a speed up symbol checking and generation
Stefan Vogel <sv@exept.de>
parents: 1396
diff changeset
   432
                             or:[cls class includesSelector:selectorSymbol]].
863
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   433
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   434
            ok := false.
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   435
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   436
            "/ limit search if possible
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   437
            (classToCompileFor notNil
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   438
             and:[aReceiverNode isSelf or:[aReceiverNode isSuper]]) ifTrue:[
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   439
                currentSuperclasses isNil ifTrue:[
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   440
                    currentSuperclasses := classToCompileFor withAllSuperclasses.
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   441
                ].
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   442
                ok := currentSuperclasses contains:check.
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   443
                (ok not and:[aReceiverNode isSelf]) ifTrue:[
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   444
                    currentSubclasses isNil ifTrue:[
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   445
                        currentSubclasses := classToCompileFor allSubclasses.
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   446
                    ].
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   447
                    ok := currentSubclasses contains:check.
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   448
                ].
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   449
            ] ifFalse:[
3816
cfa6ac81379f #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
   450
                aReceiverNode isLiteral ifTrue:[
863
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   451
                    ok := aReceiverNode evaluate class withAllSuperclasses contains:check.
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   452
                ] ifFalse:[
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   453
                    (aReceiverNode isGlobal 
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   454
                    and:[(rec := aReceiverNode evaluate) isBehavior]) ifTrue:[
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   455
                        ok := rec class withAllSuperclasses contains:check.
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   456
                    ] ifFalse:[
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   457
                        ok := Smalltalk allClasses contains:check
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   458
                    ]
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   459
                ]
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   460
            ].
1905
fba079d9d509 control flow color&emphasis
Claus Gittinger <cg@exept.de>
parents: 1857
diff changeset
   461
        ].
3232
351760212601 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3229
diff changeset
   462
1905
fba079d9d509 control flow color&emphasis
Claus Gittinger <cg@exept.de>
parents: 1857
diff changeset
   463
        ok ifFalse:[
fba079d9d509 control flow color&emphasis
Claus Gittinger <cg@exept.de>
parents: 1857
diff changeset
   464
            em := preferences unimplementedSelectorEmphasis.
fba079d9d509 control flow color&emphasis
Claus Gittinger <cg@exept.de>
parents: 1857
diff changeset
   465
            fg := preferences unimplementedSelectorColor.
fba079d9d509 control flow color&emphasis
Claus Gittinger <cg@exept.de>
parents: 1857
diff changeset
   466
        ] ifTrue:[
3343
61cec2951288 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3263
diff changeset
   467
            (self class isControlFlowSelector:selectorSymbol) ifTrue:[
1905
fba079d9d509 control flow color&emphasis
Claus Gittinger <cg@exept.de>
parents: 1857
diff changeset
   468
                em := preferences controlFlowSelectorEmphasis.
2816
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   469
                fg := preferences controlFlowSelectorColor
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   470
            ] ifFalse:[
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   471
                (self collectionEnumerationSelectors includesIdentical:selectorSymbol) ifTrue:[
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   472
                    em := preferences collectionEnumerationSelectorEmphasis.
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   473
                    fg := preferences collectionEnumerationSelectorColor
3229
379d4b04f7cf class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
   474
                ] ifFalse:[
379d4b04f7cf class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
   475
                    (self debugSelectors includesIdentical:selectorSymbol) ifTrue:[
379d4b04f7cf class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
   476
                        em := preferences debugSelectorEmphasis.
379d4b04f7cf class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
   477
                        fg := preferences debugSelectorColor
379d4b04f7cf class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
   478
                    ] ifFalse:[
379d4b04f7cf class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
   479
                        (self errorRaisingSelectors includesIdentical:selectorSymbol) ifTrue:[
379d4b04f7cf class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
   480
                            em := preferences errorRaisingSelectorEmphasis.
379d4b04f7cf class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
   481
                            fg := preferences errorRaisingSelectorColor
379d4b04f7cf class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
   482
                        ].
379d4b04f7cf class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3187
diff changeset
   483
                    ].
2816
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   484
                ].
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   485
            ].
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   486
            em isNil ifTrue:[
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   487
                em := preferences selectorEmphasis
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   488
            ].
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   489
            fg isNil ifTrue:[
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   490
                fg := preferences selectorColor
1905
fba079d9d509 control flow color&emphasis
Claus Gittinger <cg@exept.de>
parents: 1857
diff changeset
   491
            ].
fba079d9d509 control flow color&emphasis
Claus Gittinger <cg@exept.de>
parents: 1857
diff changeset
   492
        ].
863
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   493
    ].
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   494
    self
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   495
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   496
        withEmphasis:em 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   497
        color:fg
863
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   498
2816
e8b84f6d7462 changed: #markSelector:from:to:receiverNode:
Claus Gittinger <cg@exept.de>
parents: 2811
diff changeset
   499
    "Modified: / 14-02-2012 / 16:03:52 / cg"
863
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   500
!
4e8b99196457 better selector checks
Claus Gittinger <cg@exept.de>
parents: 838
diff changeset
   501
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   502
markSelfFrom:pos1 to:pos2
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   503
    self 
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   504
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   505
        withEmphasis:(preferences selfEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   506
        color:(preferences selfColor)
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   507
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   508
    "Modified: / 31.3.1998 / 18:03:10 / cg"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   509
!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   510
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   511
markStringFrom:pos1 to:pos2
1802
e0b32dc71dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1757
diff changeset
   512
    cachedStringEmphasis isNil ifTrue:[
e0b32dc71dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1757
diff changeset
   513
        cachedStringEmphasis := preferences stringEmphasis.
e0b32dc71dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1757
diff changeset
   514
        cachedStringColor := preferences stringColor.
e0b32dc71dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1757
diff changeset
   515
    ].
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   516
    self 
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   517
        markFrom:pos1 to:pos2 
1802
e0b32dc71dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1757
diff changeset
   518
        withEmphasis:cachedStringEmphasis 
e0b32dc71dac *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1757
diff changeset
   519
        color:cachedStringColor
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   520
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   521
    "Modified: / 31.3.1998 / 18:03:18 / cg"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   522
!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   523
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   524
markSuperFrom:pos1 to:pos2
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   525
    self 
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   526
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   527
        withEmphasis:(preferences superEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   528
        color:(preferences superColor)
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   529
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   530
    "Modified: / 31.3.1998 / 18:03:26 / cg"
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   531
!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   532
672
392927bad277 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   533
markSymbolFrom:pos1 to:pos2
392927bad277 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   534
    self 
392927bad277 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   535
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   536
        withEmphasis:(preferences symbolEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   537
        color:(preferences symbolColor)
672
392927bad277 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   538
392927bad277 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   539
    "Created: / 1.4.1998 / 12:56:47 / cg"
392927bad277 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   540
    "Modified: / 1.4.1998 / 12:58:00 / cg"
392927bad277 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   541
!
392927bad277 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 669
diff changeset
   542
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   543
markThisContextFrom:pos1 to:pos2
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   544
    self 
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   545
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   546
        withEmphasis:(preferences thisContextEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   547
        color:(preferences thisContextColor)
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   548
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   549
    "Modified: / 31.3.1998 / 18:03:36 / cg"
665
14114d1e653c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
   550
!
14114d1e653c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
   551
14114d1e653c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
   552
markUnknownIdentifierFrom:pos1 to:pos2
14114d1e653c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
   553
    self 
14114d1e653c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
   554
        markFrom:pos1 to:pos2 
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   555
        withEmphasis:(preferences unknownIdentifierEmphasis) 
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   556
        color:(preferences unknownIdentifierColor)
665
14114d1e653c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
   557
14114d1e653c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
   558
    "Created: / 31.3.1998 / 19:09:26 / cg"
14114d1e653c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 662
diff changeset
   559
    "Modified: / 31.3.1998 / 19:10:30 / cg"
686
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   560
!
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   561
3187
7aa3c1a58647 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
   562
markVariable:v from:pos to:endPos assigned:assigned
686
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   563
    "support for syntaxColoring"
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   564
823
a05ffe57b1b8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 822
diff changeset
   565
    |type globalValue nameSym|
686
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   566
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   567
    type := v type.
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   568
    (type == #BlockArg
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   569
    or:[type == #MethodArg]) ifTrue:[
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   570
        self markArgumentIdentifierFrom:pos to:endPos.
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   571
        ^ self
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   572
    ].
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   573
    (type == #BlockVariable
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   574
    or:[type == #MethodVariable]) ifTrue:[
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   575
        self markLocalIdentifierFrom:pos to:endPos.
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   576
        ^ self
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   577
    ].
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   578
    (type == #GlobalVariable) ifTrue:[
823
a05ffe57b1b8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 822
diff changeset
   579
        nameSym := v name asSymbolIfInterned.
a05ffe57b1b8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 822
diff changeset
   580
        nameSym notNil ifTrue:[
a05ffe57b1b8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 822
diff changeset
   581
            globalValue := Smalltalk at:nameSym ifAbsent:nil.
a05ffe57b1b8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 822
diff changeset
   582
        ].
822
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   583
        globalValue isBehavior ifTrue:[
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   584
            self markGlobalClassIdentifierFrom:pos to:endPos.
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   585
        ] ifFalse:[
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   586
            self markGlobalIdentifierFrom:pos to:endPos.
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   587
        ].
686
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   588
        ^ self
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   589
    ].
1553
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   590
    (type == #PoolVariable) ifTrue:[
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   591
        self markPoolVariableIdentifierFrom:pos to:endPos.
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   592
        ^ self
1657d0843c64 sharedPools
ca
parents: 1550
diff changeset
   593
    ].
870
1db26e4ce4c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 868
diff changeset
   594
    (type == #ClassVariable) ifTrue:[
1db26e4ce4c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 868
diff changeset
   595
        self markClassVariableIdentifierFrom:pos to:endPos.
1db26e4ce4c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 868
diff changeset
   596
        ^ self
1db26e4ce4c4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 868
diff changeset
   597
    ].
686
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   598
    (type == #InstanceVariable) ifTrue:[
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   599
        self markInstVarIdentifierFrom:pos to:endPos.
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   600
        ^ self
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   601
    ].
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   602
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   603
    self markIdentifierFrom:pos to:endPos.
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   604
067a8c8be462 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 684
diff changeset
   605
    "Created: / 16.4.1998 / 18:49:34 / cg"
822
a773bb72cbd6 added extra globalClassIdentifierColor & emphasis
Claus Gittinger <cg@exept.de>
parents: 794
diff changeset
   606
    "Modified: / 4.3.1999 / 12:56:13 / cg"
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   607
! !
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   608
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   609
!SyntaxHighlighter class methodsFor:'documentation'!
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   610
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   611
version
3816
cfa6ac81379f #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
   612
    ^ '$Header$'
2228
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   613
!
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   614
a4fefd07cf25 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2177
diff changeset
   615
version_CVS
3816
cfa6ac81379f #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
   616
    ^ '$Header$'
3716
bcd80550baab Added AbstractSyntaxHighlighter class>>formatStatements:in:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3598
diff changeset
   617
!
bcd80550baab Added AbstractSyntaxHighlighter class>>formatStatements:in:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3598
diff changeset
   618
bcd80550baab Added AbstractSyntaxHighlighter class>>formatStatements:in:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3598
diff changeset
   619
version_HG
bcd80550baab Added AbstractSyntaxHighlighter class>>formatStatements:in:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3598
diff changeset
   620
bcd80550baab Added AbstractSyntaxHighlighter class>>formatStatements:in:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3598
diff changeset
   621
    ^ '$Changeset: <not expanded> $'
662
5a0a832ac06c initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   622
! !
2997
c9e4109b6420 class: SyntaxHighlighter
Claus Gittinger <cg@exept.de>
parents: 2892
diff changeset
   623