@@ -45,6 +45,7 @@ class MessageWidget {
45
45
domNode . setAttribute ( 'role' , 'alert' ) ;
46
46
47
47
this . _messageBlock = document . createElement ( 'div' ) ;
48
+ dom . addClass ( this . _messageBlock , 'message' ) ;
48
49
domNode . appendChild ( this . _messageBlock ) ;
49
50
50
51
this . _relatedBlock = document . createElement ( 'div' ) ;
@@ -80,28 +81,14 @@ class MessageWidget {
80
81
update ( { source, message, relatedInformation, code } : IMarker ) : void {
81
82
82
83
if ( source ) {
83
- this . _lines = 0 ;
84
- this . _longestLineLength = 0 ;
85
- const indent = new Array ( source . length + 3 + 1 ) . join ( ' ' ) ;
86
84
const lines = message . split ( / \r \n | \r | \n / g) ;
87
- for ( let i = 0 ; i < lines . length ; i ++ ) {
88
- let line = lines [ i ] ;
89
- this . _lines += 1 ;
90
- if ( code && i === lines . length - 1 ) {
91
- line += ` [${ code } ]` ;
92
- }
85
+ this . _lines = lines . length ;
86
+ this . _longestLineLength = 0 ;
87
+ for ( const line of lines ) {
93
88
this . _longestLineLength = Math . max ( line . length , this . _longestLineLength ) ;
94
- if ( i === 0 ) {
95
- message = `[${ source } ] ${ line } ` ;
96
- } else {
97
- message += `\n${ indent } ${ line } ` ;
98
- }
99
89
}
100
90
} else {
101
91
this . _lines = 1 ;
102
- if ( code ) {
103
- message += ` [${ code } ]` ;
104
- }
105
92
this . _longestLineLength = message . length ;
106
93
}
107
94
@@ -133,8 +120,24 @@ class MessageWidget {
133
120
}
134
121
}
135
122
136
- this . _messageBlock . innerText = message ;
137
- this . _editor . applyFontInfo ( this . _messageBlock ) ;
123
+ dom . clearNode ( this . _messageBlock ) ;
124
+ if ( source ) {
125
+ const sourceElement = document . createElement ( 'div' ) ;
126
+ sourceElement . innerText = `[${ source } ] ` ;
127
+ dom . addClass ( sourceElement , 'source' ) ;
128
+ this . _messageBlock . appendChild ( sourceElement ) ;
129
+ }
130
+ const messageElement = document . createElement ( 'div' ) ;
131
+ messageElement . innerText = message ;
132
+ this . _editor . applyFontInfo ( messageElement ) ;
133
+ this . _messageBlock . appendChild ( messageElement ) ;
134
+ if ( code ) {
135
+ const codeElement = document . createElement ( 'div' ) ;
136
+ codeElement . innerText = ` [${ code } ]` ;
137
+ dom . addClass ( codeElement , 'code' ) ;
138
+ this . _messageBlock . appendChild ( codeElement ) ;
139
+ }
140
+
138
141
const fontInfo = this . _editor . getConfiguration ( ) . fontInfo ;
139
142
const scrollWidth = Math . ceil ( fontInfo . typicalFullwidthCharacterWidth * this . _longestLineLength * 0.75 ) ;
140
143
const scrollHeight = fontInfo . lineHeight * this . _lines ;
0 commit comments