@@ -7,7 +7,7 @@ var Lines = require("./lines").Lines;
7
7
var EventEmitter = require ( "../lib/event_emitter" ) . EventEmitter ;
8
8
9
9
var Text = function ( parentEl ) {
10
- this . dom = dom ;
10
+ this . dom = dom ;
11
11
this . element = this . dom . createElement ( "div" ) ;
12
12
this . element . className = "ace_layer ace_text-layer" ;
13
13
parentEl . appendChild ( this . element ) ;
@@ -50,7 +50,7 @@ var Text = function(parentEl) {
50
50
this . getCharacterWidth = function ( ) {
51
51
return this . $fontMetrics . $characterSize . width || 0 ;
52
52
} ;
53
-
53
+
54
54
this . $setFontMetrics = function ( measure ) {
55
55
this . $fontMetrics = measure ;
56
56
this . $fontMetrics . on ( "changeCharacterSize" , function ( e ) {
@@ -135,15 +135,15 @@ var Text = function(parentEl) {
135
135
: lang . stringRepeat ( " " , this . tabSize ) ;
136
136
137
137
var tabClass = this . showTabs ? " ace_invisible ace_invisible_tab" : "" ;
138
- var tabContent = this . showTabs
138
+ var tabContent = this . showTabs
139
139
? lang . stringRepeat ( this . TAB_CHAR , this . tabSize )
140
140
: spaceContent ;
141
141
142
142
var span = this . dom . createElement ( "span" ) ;
143
143
span . className = className + spaceClass ;
144
144
span . textContent = spaceContent ;
145
145
this . $tabStrings [ " " ] = span ;
146
-
146
+
147
147
var span = this . dom . createElement ( "span" ) ;
148
148
span . className = className + tabClass ;
149
149
span . textContent = tabContent ;
@@ -158,7 +158,7 @@ var Text = function(parentEl) {
158
158
this . config . firstRow != config . firstRow ) {
159
159
return this . update ( config ) ;
160
160
}
161
-
161
+
162
162
this . config = config ;
163
163
164
164
var first = Math . max ( firstRow , config . firstRow ) ;
@@ -226,9 +226,9 @@ var Text = function(parentEl) {
226
226
227
227
if ( this . $lines . pageChanged ( oldConfig , config ) )
228
228
return this . update ( config ) ;
229
-
229
+
230
230
this . $lines . moveContainer ( config ) ;
231
-
231
+
232
232
var lastRow = config . lastRow ;
233
233
var oldLastRow = oldConfig ? oldConfig . lastRow : - 1 ;
234
234
@@ -278,7 +278,7 @@ var Text = function(parentEl) {
278
278
break ;
279
279
280
280
var line = this . $lines . createCell ( row , config , this . session ) ;
281
-
281
+
282
282
var lineEl = line . element ;
283
283
this . dom . removeChildren ( lineEl ) ;
284
284
dom . setStyle ( lineEl . style , "height" , this . $lines . computeLineHeight ( row , config , this . session ) + "px" ) ;
@@ -302,7 +302,7 @@ var Text = function(parentEl) {
302
302
303
303
this . update = function ( config ) {
304
304
this . $lines . moveContainer ( config ) ;
305
-
305
+
306
306
this . config = config ;
307
307
308
308
var firstRow = config . firstRow ;
@@ -311,7 +311,7 @@ var Text = function(parentEl) {
311
311
var lines = this . $lines ;
312
312
while ( lines . getLength ( ) )
313
313
lines . pop ( ) ;
314
-
314
+
315
315
lines . push ( this . $renderLinesFragment ( config , firstRow , lastRow ) ) ;
316
316
} ;
317
317
@@ -324,7 +324,7 @@ var Text = function(parentEl) {
324
324
this . $renderToken = function ( parent , screenColumn , token , value ) {
325
325
var self = this ;
326
326
var re = / ( \t ) | ( + ) | ( [ \x00 - \x1f \x80 - \xa0 \xad \u1680 \u180E \u2000 - \u200f \u2028 \u2029 \u202F \u205F \uFEFF \uFFF9 - \uFFFC \u2066 \u2067 \u2068 \u202A \u202B \u202D \u202E \u202C \u2069 ] + ) | ( \u3000 ) | ( [ \u1100 - \u115F \u11A3 - \u11A7 \u11FA - \u11FF \u2329 - \u232A \u2E80 - \u2E99 \u2E9B - \u2EF3 \u2F00 - \u2FD5 \u2FF0 - \u2FFB \u3001 - \u303E \u3041 - \u3096 \u3099 - \u30FF \u3105 - \u312D \u3131 - \u318E \u3190 - \u31BA \u31C0 - \u31E3 \u31F0 - \u321E \u3220 - \u3247 \u3250 - \u32FE \u3300 - \u4DBF \u4E00 - \uA48C \uA490 - \uA4C6 \uA960 - \uA97C \uAC00 - \uD7A3 \uD7B0 - \uD7C6 \uD7CB - \uD7FB \uF900 - \uFAFF \uFE10 - \uFE19 \uFE30 - \uFE52 \uFE54 - \uFE66 \uFE68 - \uFE6B \uFF01 - \uFF60 \uFFE0 - \uFFE6 ] | [ \uD800 - \uDBFF ] [ \uDC00 - \uDFFF ] ) / g;
327
-
327
+
328
328
var valueFragment = this . dom . createFragment ( this . element ) ;
329
329
330
330
var m ;
@@ -335,18 +335,18 @@ var Text = function(parentEl) {
335
335
var controlCharacter = m [ 3 ] ;
336
336
var cjkSpace = m [ 4 ] ;
337
337
var cjk = m [ 5 ] ;
338
-
338
+
339
339
if ( ! self . showSpaces && simpleSpace )
340
340
continue ;
341
341
342
342
var before = i != m . index ? value . slice ( i , m . index ) : "" ;
343
343
344
344
i = m . index + m [ 0 ] . length ;
345
-
345
+
346
346
if ( before ) {
347
347
valueFragment . appendChild ( this . dom . createTextNode ( before , this . element ) ) ;
348
348
}
349
-
349
+
350
350
if ( tab ) {
351
351
var tabSize = self . session . getScreenTabSize ( screenColumn + m . index ) ;
352
352
valueFragment . appendChild ( self . $tabStrings [ tabSize ] . cloneNode ( true ) ) ;
@@ -368,7 +368,7 @@ var Text = function(parentEl) {
368
368
} else if ( cjkSpace ) {
369
369
// U+3000 is both invisible AND full-width, so must be handled uniquely
370
370
screenColumn += 1 ;
371
-
371
+
372
372
var span = this . dom . createElement ( "span" ) ;
373
373
span . style . width = ( self . config . characterWidth * 2 ) + "px" ;
374
374
span . className = self . showSpaces ? "ace_cjk ace_invisible ace_invisible_space" : "ace_cjk" ;
@@ -383,24 +383,24 @@ var Text = function(parentEl) {
383
383
valueFragment . appendChild ( span ) ;
384
384
}
385
385
}
386
-
386
+
387
387
valueFragment . appendChild ( this . dom . createTextNode ( i ? value . slice ( i ) : value , this . element ) ) ;
388
388
389
389
if ( ! this . $textToken [ token . type ] ) {
390
390
var classes = "ace_" + token . type . replace ( / \. / g, " ace_" ) ;
391
391
var span = this . dom . createElement ( "span" ) ;
392
392
if ( token . type == "fold" )
393
393
span . style . width = ( token . value . length * this . config . characterWidth ) + "px" ;
394
-
394
+
395
395
span . className = classes ;
396
396
span . appendChild ( valueFragment ) ;
397
-
397
+
398
398
parent . appendChild ( span ) ;
399
399
}
400
400
else {
401
401
parent . appendChild ( valueFragment ) ;
402
402
}
403
-
403
+
404
404
return screenColumn + value . length ;
405
405
} ;
406
406
@@ -504,9 +504,10 @@ var Text = function(parentEl) {
504
504
"ace_indent-guide" , "ace_indent-guide-active" ) ;
505
505
}
506
506
}
507
- }
507
+ } ;
508
508
509
509
this . $renderHighlightIndentGuide = function ( ) {
510
+ if ( ! this . $lines ) return ;
510
511
var cells = this . $lines . cells ;
511
512
this . $clearActiveIndentGuide ( ) ;
512
513
var indentLevel = this . $highlightIndentGuideMarker . indentLevel ;
@@ -537,7 +538,7 @@ var Text = function(parentEl) {
537
538
var lineEl = this . dom . createElement ( "div" ) ;
538
539
lineEl . className = "ace_line" ;
539
540
lineEl . style . height = this . config . lineHeight + "px" ;
540
-
541
+
541
542
return lineEl ;
542
543
} ;
543
544
@@ -549,7 +550,7 @@ var Text = function(parentEl) {
549
550
550
551
var lineEl = this . $createLineElement ( ) ;
551
552
parent . appendChild ( lineEl ) ;
552
-
553
+
553
554
for ( var i = 0 ; i < tokens . length ; i ++ ) {
554
555
var token = tokens [ i ] ;
555
556
var value = token . value ;
@@ -590,7 +591,7 @@ var Text = function(parentEl) {
590
591
}
591
592
}
592
593
}
593
-
594
+
594
595
if ( splits [ splits . length - 1 ] > this . MAX_LINE_LENGTH )
595
596
this . $renderOverflowMessage ( lineEl , screenColumn , null , "" , true ) ;
596
597
} ;
@@ -611,16 +612,16 @@ var Text = function(parentEl) {
611
612
screenColumn = this . $renderToken ( parent , screenColumn , token , value ) ;
612
613
}
613
614
} ;
614
-
615
+
615
616
this . $renderOverflowMessage = function ( parent , screenColumn , token , value , hide ) {
616
617
token && this . $renderToken ( parent , screenColumn , token ,
617
618
value . slice ( 0 , this . MAX_LINE_LENGTH - screenColumn ) ) ;
618
-
619
+
619
620
var overflowEl = this . dom . createElement ( "span" ) ;
620
621
overflowEl . className = "ace_inline_button ace_keyword ace_toggle_wrap" ;
621
622
overflowEl . textContent = hide ? "<hide>" : "<click to see more...>" ;
622
-
623
- parent . appendChild ( overflowEl ) ;
623
+
624
+ parent . appendChild ( overflowEl ) ;
624
625
} ;
625
626
626
627
// row is either first row of foldline or not in fold
@@ -659,7 +660,7 @@ var Text = function(parentEl) {
659
660
var invisibleEl = this . dom . createElement ( "span" ) ;
660
661
invisibleEl . className = "ace_invisible ace_invisible_eol" ;
661
662
invisibleEl . textContent = row == this . session . getLength ( ) - 1 ? this . EOF_CHAR : this . EOL_CHAR ;
662
-
663
+
663
664
lastLineEl . appendChild ( invisibleEl ) ;
664
665
}
665
666
} ;
0 commit comments