SmallSenseSyntaxHighlightingService.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 07 Aug 2013 01:59:17 +0100
changeset 57 7e9a47c8ddde
parent 55 236fd2e60a0c
child 59 6cdb2c16ecf2
permissions -rw-r--r--
Fix in SmallSenseService: do not try to draw annotations for non-smalltalk code.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'jv:smallsense' }"
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Tools::CodeHighlightingService subclass:#SmallSenseSyntaxHighlightingService
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
     4
	instanceVariableNames:'lastLineFromChanged lastLineToChanged lastContentsList'
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
	classVariableNames:''
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	poolDictionaries:''
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	category:'SmallSense-Services'
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
!
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    10
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
!SmallSenseSyntaxHighlightingService class methodsFor:'accessing'!
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
label
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
    "Answers a short label - for UI"
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
    ^'SmallSense - Syntax Highlighting'
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
    "Created: / 27-07-2013 / 22:46:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
! !
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
!SmallSenseSyntaxHighlightingService methodsFor:'change & update'!
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
sourceChanged:force
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    ^self sourceChanged: force from: nil to: nil.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    "Created: / 27-07-2013 / 22:52:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
!
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
sourceChanged:force from:start to:end    
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    "Called when codeview's text changes"
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    (force or:[codeView reallyModified]) ifTrue:[
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    33
        (start notNil and: [end notNil and:[start > end]]) ifTrue:[
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    34
            lastLineFromChanged  := lastLineToChanged := nil.
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    35
        ] ifFalse:[
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    36
            lastLineFromChanged := start.
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    37
            lastLineToChanged := end.   
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    38
        ].
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
        self process
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
    ].
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    "Created: / 27-07-2013 / 22:51:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    43
    "Modified: / 03-08-2013 / 13:00:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    44
!
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    45
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    46
update:aspect with:param from:sender
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    47
    "Invoked when an object that I depend upon sends a change notification."
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    49
    textView notNil ifTrue:[
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    50
        (sender == textView and:[aspect == #sizeOfContents]) ifTrue:[
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    51
"/            self halt.
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    52
"/            lastContentsList ~~ textView list ifTrue:[
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    53
"/                lastContentsList := textView list.
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    54
"/                self sourceChanged:true.
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    55
"/                textView instVarNamed: #suppressNotifications put: false.
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    56
"/            ].
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    57
            ^self.
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    58
        ].  
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    59
    ].
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    60
    super update:aspect with:param from:sender
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    61
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    62
    "Modified: / 03-08-2013 / 12:39:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
! !
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
!SmallSenseSyntaxHighlightingService methodsFor:'event handling'!
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
linesDeletedFrom:start to:end 
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    self sourceChanged:true from:start to:end
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    "Created: / 27-07-2013 / 22:51:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
!
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
linesInsertedFrom:start to:end 
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    self sourceChanged:true from:start to:end
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    "Created: / 27-07-2013 / 22:51:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
!
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
linesModifiedFrom:start to:end 
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    self sourceChanged:true from:start to:end
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    "Created: / 27-07-2013 / 22:50:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
! !
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    85
!SmallSenseSyntaxHighlightingService methodsFor:'initialization'!
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    86
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    87
initialize
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    88
    job := (Smalltalk at:#BackgroundQueueProcessingJob) 
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    89
                named:self defaultJobName
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    90
                on:[:interval |
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    91
                    Error handle:[:ex |
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    92
                        (Dialog confirm:('Error while processing source:\\',ex description,'\\Debug ?') withCRs)
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    93
                        ifTrue:[
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    94
                            ex reject.
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    95
                        ]
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    96
                    ] do:[
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    97
                        self process:true changed: interval
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    98
                    ]
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
    99
                ].
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   100
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   101
    "Created: / 03-08-2013 / 11:08:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   102
! !
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   103
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   104
!SmallSenseSyntaxHighlightingService methodsFor:'private'!
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   105
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   106
setHighlightedLine: line at: lineNr
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   107
    |firstShown lastShown anyChange replaceAction list|
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   108
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   109
    "textView" modified ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   110
        "/ new input arrived in the meantime
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   111
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   112
        ^ self
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   113
    ].
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   114
"/    done ifFalse:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   115
"/        "/ another coloring process has already been started.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   116
"/        "/ ignore this (leftover) code.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   117
"/        ^ self
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   118
"/    ].
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   119
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   120
    firstShown := textView firstLineShown.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   121
    lastShown := textView lastLineShown.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   122
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   123
    replaceAction := [:lNr :line |
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   124
            |oldLine|
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   125
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   126
            oldLine :=  list at:lNr ifAbsent:nil.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   127
            oldLine notNil ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   128
                line notNil ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   129
                    "/ this check is needed - there is a race
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   130
                    "/ when the text is converted. This detects the
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   131
                    "/ resulting error.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   132
                    "/ Certainly a kludge.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   133
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   134
                    oldLine string = line string ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   135
                        | i |
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   136
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   137
                        "JV@2012-02-01: Remove any emphasis on leading whitespace"
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   138
                        "(presumably created by LintHighlighter)"
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   139
                        i := line string indexOfNonSeparator.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   140
                        i > 1 ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   141
                            | e |
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   142
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   143
                            (e := (line emphasisAt: i - 1)) notNil ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   144
                                line emphasisFrom: 1 to: i - 1 remove: e.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   145
                            ]
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   146
                        ].
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   147
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   148
                        oldLine emphasis ~= line emphasis ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   149
                            textView modifiedChannel removeDependent:self.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   150
                            list at:lNr put:line.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   151
                            textView modifiedChannel addDependent:self.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   152
                            (lNr between:firstShown and:lastShown) ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   153
                                anyChange ifFalse:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   154
                                    anyChange := true.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   155
                                ].
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   156
                                textView redrawLine:lNr
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   157
                            ]
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   158
                        ]
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   159
                    ]
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   160
                ]
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   161
            ]
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   162
        ].
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   163
    list := textView list.  
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   164
    replaceAction value: lineNr value: line.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   165
    gutterView invalidate.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   166
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   167
"/    Transcript showCR:'--> rehighlighted ', self identityHash printString.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   168
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   169
    "Created: / 03-08-2013 / 23:49:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   170
    "Modified: / 04-08-2013 / 00:55:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   171
! !
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   172
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   173
!SmallSenseSyntaxHighlightingService methodsFor:'processing'!
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   174
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   175
process
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   176
    "(Re)starts the processing job. Should be called whenever a source 
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   177
     must be (re)processed."
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   178
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   179
    | browser |
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   180
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   181
    (self syntaxHighlighters isEmptyOrNil) ifTrue:[
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   182
        "No higlighter, nothing to do"
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   183
        ^self
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   184
    ].   
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   185
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   186
    "/ this clobbers the codeViews modified state; therefore, we have to remember
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   187
    "/ this info somewhere ...
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   188
    (browser := codeView browser) notNil ifTrue:[
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   189
        textView modified ifTrue:[
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   190
            browser navigationState realModifiedState: true
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   191
        ].
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   192
        textView modifiedChannel setValue:false.
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   193
    ].
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   194
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   195
    ((lastLineFromChanged isNil and:[lastLineToChanged isNil]) 
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   196
        or:[lastLineFromChanged == 1 and:[lastLineToChanged == textView size]]) ifTrue:[
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   197
        job stopAndRemoveAll.
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   198
        job add: nil.
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   199
    ] ifFalse:[
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   200
        job add:(lastLineFromChanged to:lastLineToChanged).
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   201
    ]
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   202
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   203
    "Created: / 03-08-2013 / 11:07:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   204
    "Modified: / 06-08-2013 / 03:41:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   205
!
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
process: delayed
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   209
    ^self process: delayed changed: nil.
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   210
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   211
    "Created: / 27-07-2013 / 22:53:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   212
    "Modified: / 03-08-2013 / 11:11:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   213
!
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   214
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   215
process: delayed changed: interval
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   216
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   217
    |oldCode oldCodeList newCode newCodeList newCodeRefetch newCodeListRefetch elements cls mthd highlighters|
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
    done := false.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
    modified := false.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
    codeView syntaxElements: nil.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
    codeView syntaxElementSelection: nil.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   224
    highlighters := self syntaxHighlighters.
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
    cls := codeView klass.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
    (cls notNil and:[cls isObsolete]) ifTrue:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
        cls isMeta ifTrue:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
            cls := (Smalltalk at:cls theNonMetaclass name) class
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
        ] ifFalse:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
            cls := Smalltalk at:cls name
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
        ].
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
    ].
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
    mthd := codeView methodHolder value.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   236
    "textView" modified ifFalse:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   237
        oldCodeList := textView list copy.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
        "textView" modified ifFalse:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
            oldCodeList isNil ifFalse:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
                oldCode := oldCodeList asStringWithoutEmphasis.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
                "textView" modified ifFalse:[
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   242
                    Screen currentScreenQuerySignal answer:codeView device do:[
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
                        Parser parseErrorSignal handle:[:ex |
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
                            |errMsg|
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   246
                            errMsg := ex description asStringCollection first asString.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
                            "/ Transcript topView raiseDeiconified.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   249
                            "/ Transcript showCR:'ParseError: ', ex description.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
"/ self halt.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
                            "/ self showInfo:(errMsg colorizeAllWith:Color red).
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   252
                            newCode := nil.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
                        ] do:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
                            | codeAspect |
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
                            
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
                            elements := ParseTreeIndex new.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
                            codeAspect := codeView codeAspect.
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   258
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   259
                            "/ switch codeAspect
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   260
                            "/ case method
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   261
                                codeAspect == SyntaxHighlighter codeAspectMethod ifTrue:[
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   262
                                    (highlighters first respondsTo:#formatMethod:source:line:number:in:using:) ifTrue:[
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   263
                                        newCodeList := oldCodeList.
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   264
                                        newCode := newCodeList asString.
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   265
                                    ] ifFalse:[
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   266
                                        newCodeList := oldCode asStringCollection.
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   267
                                        newCode := oldCode asText. 
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   268
                                    ].
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   269
                                    newCodeListRefetch := [].
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   270
                                    newCodeRefetch := [].
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   271
                                    highlighters do:[:h|
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   272
                                        (interval notNil and:[h respondsTo:#formatMethod:source:line:number:in:using:]) ifTrue:[
55
236fd2e60a0c Fix in SmallSenseSyntaxHighlightingService for expression highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   273
                                            newCodeListRefetch value.   
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   274
                                            interval do:[:lnr |
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   275
                                                | ln |
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   276
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   277
                                                ln := newCodeList at: lnr ifAbsent:[nil].
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   278
                                                ln notEmptyOrNil ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   279
                                                    | nln |
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   280
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   281
                                                    nln := h formatMethod:mthd source:newCode line: ln string number: lnr in:cls using:syntaxPreferences.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   282
                                                    nln ~~ ln ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   283
                                                        delayed ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   284
                                                            codeView sensor 
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   285
                                                                pushUserEvent:#setHighlightedLine:at:
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   286
                                                                for:self
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   287
                                                                withArguments:(Array with:nln with: lnr).                                                                                                                                                                                                                     
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   288
                                                        ] ifFalse:[
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   289
                                                           self setHighlightedLine: nln at: lnr.
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   290
                                                        ].
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   291
                                                        newCodeList at: lnr put: nln.
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   292
                                                       newCodeListRefetch := [].
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   293
                                                       newCodeRefetch := [ newCode := newCodeList asString. newCodeListRefetch := [] ].   
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   294
                                                    ]
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   295
                                                ]
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   296
                                            ].
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   297
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   298
                                        ] ifFalse:[
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   299
                                            newCodeRefetch value.
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   300
                                            newCode := h formatMethod:mthd source:newCode in:cls using:syntaxPreferences elementsInto: elements.
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   301
                                            newCodeListRefetch := [ newCodeList := newCode asStringCollection. newCodeRefetch := [] ].
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   302
                                            newCodeRefetch := [  ].
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   303
                                        ].
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   304
                                    ].
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
                                ] ifFalse:[
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   306
                            "/ case expession
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   307
                                codeAspect == (SyntaxHighlighter codeAspectExpression) ifTrue:[
55
236fd2e60a0c Fix in SmallSenseSyntaxHighlightingService for expression highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   308
                                    newCodeList := oldCode asStringCollection.
236fd2e60a0c Fix in SmallSenseSyntaxHighlightingService for expression highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   309
                                    newCode := oldCode asText.
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   310
                                    highlighters do:[:h|
55
236fd2e60a0c Fix in SmallSenseSyntaxHighlightingService for expression highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   311
                                        newCodeRefetch value.
236fd2e60a0c Fix in SmallSenseSyntaxHighlightingService for expression highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   312
                                        newCode := h formatExpression:newCode in:cls elementsInto: elements.
236fd2e60a0c Fix in SmallSenseSyntaxHighlightingService for expression highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   313
                                        newCodeListRefetch := [ newCodeList := newCode asStringCollection. newCodeRefetch := [] ].
236fd2e60a0c Fix in SmallSenseSyntaxHighlightingService for expression highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   314
                                        newCodeRefetch := [  ].
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   315
                                    ].
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   316
                                ] ifFalse:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   317
                            "/case class definition
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   318
                               codeView codeAspect == #classDefinition ifTrue:[
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   319
                                    (highlighters first respondsTo:#formatClassDefinition:line:number:in:) ifTrue:[
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   320
                                         newCodeList := oldCodeList.
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   321
                                         newCode := newCodeList asString.
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   322
                                    ] ifFalse:[
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   323
                                         newCodeList := oldCode asStringCollection.
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   324
                                         newCode := oldCode asText. 
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   325
                                    ].
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   326
                                    newCodeListRefetch := [].
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   327
                                    newCodeRefetch := [].
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   328
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   329
                                    highlighters do:[:h|
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   330
                                       (interval notNil and:[h respondsTo:#formatClassDefinition:line:number:in:]) ifTrue:[
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   331
                                            newCodeListRefetch value.
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   332
                                            interval do:[:lnr |
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   333
                                                | ln |
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   334
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   335
                                                ln := oldCodeList at: lnr ifAbsent:[nil].
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   336
                                                ln notEmptyOrNil ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   337
                                                    | nln |
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   338
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   339
                                                    nln := h formatClassDefinition:newCode line: ln string number: lnr in:cls.
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   340
                                                    nln ~~ ln ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   341
                                                        delayed ifTrue:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   342
                                                            codeView sensor 
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   343
                                                                pushUserEvent:#setHighlightedLine:at:
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   344
                                                                for:self
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   345
                                                                withArguments:(Array with:nln with: lnr).                                                                                                 
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   346
                                                       ] ifFalse:[
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   347
                                                           self setHighlightedLine: nln at: lnr.
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   348
                                                       ].
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   349
                                                       newCodeList at: lnr put: nln.
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   350
                                                       newCodeListRefetch := [].
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   351
                                                       newCodeRefetch := [ newCode := newCodeList asString. newCodeListRefetch := [] ].   
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   352
                                                    ]
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   353
                                                ]
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   354
                                            ].
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   355
                                        ] ifFalse:[
54
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   356
                                            newCodeRefetch value.
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   357
                                            newCode := h formatClassDefinition:newCode in:cls elementsInto: elements.
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   358
                                            newCodeListRefetch := [ newCodeList := newCode asStringCollection. newCodeRefetch := [] ].
39ea54953e8c Improved support for incremental highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 49
diff changeset
   359
                                            newCodeRefetch := [  ].
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   360
                                        ]
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   361
                                   ].
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   362
                               ]]].
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
                        ]
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   364
                    ].
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   365
                    newCode notNil ifTrue:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   366
                        "textView" modified ifFalse:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   367
                            newCode ~= oldCodeList ifTrue:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   368
                                newCode := newCode asStringCollection.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   369
                                "textView" modified ifFalse:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   370
                                    done := true.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   371
                                    textView notNil ifTrue:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   372
                                        "/ must add this event - and not been interrupted
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
                                        "/ by any arriving key-event.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   374
                                        "/ self showInfo:nil.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
                                        delayed ifTrue:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   376
                                            codeView sensor
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   377
                                                pushUserEvent:#setHighlightedCode:elements:
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
                                                for:self
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
                                                withArguments:(Array with:newCode with: elements).
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
                                                "/self delayedUpdateBufferLabelWithCheckIfModified
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
                                        ] ifFalse:[
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   382
                                            textView contents: newCode.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   383
                                            codeView syntaxElements: elements.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   384
                                            gutterView invalidate.
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   385
                                        ]
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   386
                                    ]
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   387
                                ]
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   388
                            ].
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   389
                        ]
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   390
                    ]
49
8a99621a3853 Initial support for incremental highlighting. Not ideal, but works for Java.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 48
diff changeset
   391
                ] "/ ---
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   392
            ]
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   393
        ]
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   394
    ]
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   395
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   396
    "Created: / 03-08-2013 / 11:11:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
55
236fd2e60a0c Fix in SmallSenseSyntaxHighlightingService for expression highlighting.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   397
    "Modified: / 06-08-2013 / 11:43:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   398
! !
48307f46ff8e Edit support cut off to a new service. Added SmallSense syntax highlighting service.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   399
48
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   400
!SmallSenseSyntaxHighlightingService class methodsFor:'documentation'!
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   401
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   402
version_HG
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   403
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   404
    ^ '$Changeset: <not expanded> $'
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   405
! !
1ff5ddc8dc9c The SmallSense cyntax highlighter routine gets feedback of what changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 42
diff changeset
   406