OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * | 10 * |
(...skipping 21 matching lines...) Expand all Loading... | |
32 * @param {!WebInspector.UISourceCode} uiSourceCode | 32 * @param {!WebInspector.UISourceCode} uiSourceCode |
33 */ | 33 */ |
34 WebInspector.UISourceCodeFrame = function(uiSourceCode) | 34 WebInspector.UISourceCodeFrame = function(uiSourceCode) |
35 { | 35 { |
36 this._uiSourceCode = uiSourceCode; | 36 this._uiSourceCode = uiSourceCode; |
37 WebInspector.SourceFrame.call(this, this._uiSourceCode); | 37 WebInspector.SourceFrame.call(this, this._uiSourceCode); |
38 this.textEditor.setAutocompleteDelegate(new WebInspector.SimpleAutocompleteD elegate()); | 38 this.textEditor.setAutocompleteDelegate(new WebInspector.SimpleAutocompleteD elegate()); |
39 this._rowMessageBuckets = {}; | 39 this._rowMessageBuckets = {}; |
40 this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.Working CopyChanged, this._onWorkingCopyChanged, this); | 40 this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.Working CopyChanged, this._onWorkingCopyChanged, this); |
41 this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.Working CopyCommitted, this._onWorkingCopyCommitted, this); | 41 this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.Working CopyCommitted, this._onWorkingCopyCommitted, this); |
42 this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.Message Added, this._onMessageAdded, this); | |
43 this._uiSourceCode.addEventListener(WebInspector.UISourceCode.Events.Message Removed, this._onMessageRemoved, this); | |
42 this._updateStyle(); | 44 this._updateStyle(); |
43 | 45 |
44 this._errorPopoverHelper = new WebInspector.PopoverHelper(this.element, this ._getErrorAnchor.bind(this), this._showErrorPopover.bind(this)); | 46 this._errorPopoverHelper = new WebInspector.PopoverHelper(this.element, this ._getErrorAnchor.bind(this), this._showErrorPopover.bind(this)); |
45 this._errorPopoverHelper.setTimeout(100, 100); | 47 this._errorPopoverHelper.setTimeout(100, 100); |
46 } | 48 } |
47 | 49 |
48 WebInspector.UISourceCodeFrame.prototype = { | 50 WebInspector.UISourceCodeFrame.prototype = { |
49 /** | 51 /** |
50 * @return {!WebInspector.UISourceCode} | 52 * @return {!WebInspector.UISourceCode} |
51 */ | 53 */ |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
101 commitEditing: function() | 103 commitEditing: function() |
102 { | 104 { |
103 if (!this._uiSourceCode.isDirty()) | 105 if (!this._uiSourceCode.isDirty()) |
104 return; | 106 return; |
105 | 107 |
106 this._muteSourceCodeEvents = true; | 108 this._muteSourceCodeEvents = true; |
107 this._uiSourceCode.commitWorkingCopy(); | 109 this._uiSourceCode.commitWorkingCopy(); |
108 delete this._muteSourceCodeEvents; | 110 delete this._muteSourceCodeEvents; |
109 }, | 111 }, |
110 | 112 |
113 onTextEditorContentLoaded: function() | |
dgozman
2015/10/27 21:43:49
@override
pfeldman
2015/10/27 22:35:17
Done.
| |
114 { | |
115 WebInspector.SourceFrame.prototype.onTextEditorContentLoaded.call(this); | |
116 this._clearMessages(); | |
117 for (var message of this._uiSourceCode.messages()) | |
118 this._addMessageToSource(message); | |
119 }, | |
120 | |
111 onTextChanged: function(oldRange, newRange) | 121 onTextChanged: function(oldRange, newRange) |
dgozman
2015/10/27 21:43:49
mind adding JSDoc?
pfeldman
2015/10/27 22:35:17
Done.
| |
112 { | 122 { |
113 WebInspector.SourceFrame.prototype.onTextChanged.call(this, oldRange, ne wRange); | 123 WebInspector.SourceFrame.prototype.onTextChanged.call(this, oldRange, ne wRange); |
114 this.clearMessages(); | 124 this._clearMessages(); |
dgozman
2015/10/27 21:43:49
Do we abandon old messages? If so, who will clear
pfeldman
2015/10/27 22:35:17
Good call. Let me erase all messages from uiSource
| |
115 if (this._isSettingContent) | 125 if (this._isSettingContent) |
116 return; | 126 return; |
117 this._muteSourceCodeEvents = true; | 127 this._muteSourceCodeEvents = true; |
118 if (this._textEditor.isClean()) | 128 if (this._textEditor.isClean()) |
119 this._uiSourceCode.resetWorkingCopy(); | 129 this._uiSourceCode.resetWorkingCopy(); |
120 else | 130 else |
121 this._uiSourceCode.setWorkingCopyGetter(this._textEditor.text.bind(t his._textEditor)); | 131 this._uiSourceCode.setWorkingCopyGetter(this._textEditor.text.bind(t his._textEditor)); |
122 delete this._muteSourceCodeEvents; | 132 delete this._muteSourceCodeEvents; |
123 }, | 133 }, |
124 | 134 |
125 onTextEditorContentLoaded: function() | |
126 { | |
127 WebInspector.SourceFrame.prototype.onTextEditorContentLoaded.call(this); | |
128 this.clearMessages(); | |
129 }, | |
130 | |
131 /** | 135 /** |
132 * @param {!WebInspector.Event} event | 136 * @param {!WebInspector.Event} event |
133 */ | 137 */ |
134 _onWorkingCopyChanged: function(event) | 138 _onWorkingCopyChanged: function(event) |
135 { | 139 { |
136 if (this._muteSourceCodeEvents) | 140 if (this._muteSourceCodeEvents) |
137 return; | 141 return; |
138 this._innerSetContent(this._uiSourceCode.workingCopy()); | 142 this._innerSetContent(this._uiSourceCode.workingCopy()); |
139 this.onUISourceCodeContentChanged(); | 143 this.onUISourceCodeContentChanged(); |
140 }, | 144 }, |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
194 this.doResize(); | 198 this.doResize(); |
195 }, | 199 }, |
196 | 200 |
197 dispose: function() | 201 dispose: function() |
198 { | 202 { |
199 this._textEditor.dispose(); | 203 this._textEditor.dispose(); |
200 this.detach(); | 204 this.detach(); |
201 }, | 205 }, |
202 | 206 |
203 /** | 207 /** |
208 * @param {!WebInspector.Event} event | |
209 */ | |
210 _onMessageAdded: function(event) | |
211 { | |
212 var message = /** @type {!WebInspector.UISourceCode.Message} */ (event.d ata); | |
213 this._addMessageToSource(message); | |
214 }, | |
215 | |
216 /** | |
204 * @param {!WebInspector.UISourceCode.Message} message | 217 * @param {!WebInspector.UISourceCode.Message} message |
205 */ | 218 */ |
206 addMessageToSource: function(message) | 219 _addMessageToSource: function(message) |
207 { | 220 { |
208 var lineNumber = message.lineNumber(); | 221 var lineNumber = message.lineNumber(); |
209 if (lineNumber >= this._textEditor.linesCount) | 222 if (lineNumber >= this._textEditor.linesCount) |
210 lineNumber = this._textEditor.linesCount - 1; | 223 lineNumber = this._textEditor.linesCount - 1; |
211 if (lineNumber < 0) | 224 if (lineNumber < 0) |
212 lineNumber = 0; | 225 lineNumber = 0; |
213 | 226 |
214 if (!this._rowMessageBuckets[lineNumber]) | 227 if (!this._rowMessageBuckets[lineNumber]) |
215 this._rowMessageBuckets[lineNumber] = new WebInspector.UISourceCodeF rame.RowMessageBucket(this, this._textEditor, lineNumber); | 228 this._rowMessageBuckets[lineNumber] = new WebInspector.UISourceCodeF rame.RowMessageBucket(this, this._textEditor, lineNumber); |
216 var messageBucket = this._rowMessageBuckets[lineNumber]; | 229 var messageBucket = this._rowMessageBuckets[lineNumber]; |
217 messageBucket.addMessage(message); | 230 messageBucket.addMessage(message); |
218 }, | 231 }, |
219 | 232 |
220 /** | 233 /** |
234 * @param {!WebInspector.Event} event | |
235 */ | |
236 _onMessageRemoved: function(event) | |
237 { | |
238 var message = /** @type {!WebInspector.UISourceCode.Message} */ (event.d ata); | |
239 this._removeMessageFromSource(message); | |
240 }, | |
241 | |
242 /** | |
221 * @param {!WebInspector.UISourceCode.Message} message | 243 * @param {!WebInspector.UISourceCode.Message} message |
222 */ | 244 */ |
223 removeMessageFromSource: function(message) | 245 _removeMessageFromSource: function(message) |
224 { | 246 { |
225 var lineNumber = message.lineNumber(); | 247 var lineNumber = message.lineNumber(); |
226 if (lineNumber >= this._textEditor.linesCount) | 248 if (lineNumber >= this._textEditor.linesCount) |
227 lineNumber = this._textEditor.linesCount - 1; | 249 lineNumber = this._textEditor.linesCount - 1; |
228 if (lineNumber < 0) | 250 if (lineNumber < 0) |
229 lineNumber = 0; | 251 lineNumber = 0; |
230 | 252 |
231 var messageBucket = this._rowMessageBuckets[lineNumber]; | 253 var messageBucket = this._rowMessageBuckets[lineNumber]; |
232 if (!messageBucket) | 254 if (!messageBucket) |
233 return; | 255 return; |
234 messageBucket.removeMessage(message); | 256 messageBucket.removeMessage(message); |
235 if (!messageBucket.uniqueMessagesCount()) { | 257 if (!messageBucket.uniqueMessagesCount()) { |
236 messageBucket.detachFromEditor(); | 258 messageBucket.detachFromEditor(); |
237 delete this._rowMessageBuckets[lineNumber]; | 259 delete this._rowMessageBuckets[lineNumber]; |
238 } | 260 } |
239 }, | 261 }, |
240 | 262 |
241 clearMessages: function() | 263 _clearMessages: function() |
242 { | 264 { |
243 for (var line in this._rowMessageBuckets) { | 265 for (var line in this._rowMessageBuckets) { |
244 var bubble = this._rowMessageBuckets[line]; | 266 var bubble = this._rowMessageBuckets[line]; |
245 bubble.detachFromEditor(); | 267 bubble.detachFromEditor(); |
246 } | 268 } |
247 | 269 |
248 this._rowMessageBuckets = {}; | 270 this._rowMessageBuckets = {}; |
249 this._errorPopoverHelper.hidePopover(); | 271 this._errorPopoverHelper.hidePopover(); |
250 }, | 272 }, |
251 | 273 |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
354 dispose: function() | 376 dispose: function() |
355 { | 377 { |
356 this.element.remove(); | 378 this.element.remove(); |
357 this._onResize(); | 379 this._onResize(); |
358 delete this._uiSourceCodeFrame; | 380 delete this._uiSourceCodeFrame; |
359 }, | 381 }, |
360 | 382 |
361 __proto__: WebInspector.Infobar.prototype | 383 __proto__: WebInspector.Infobar.prototype |
362 } | 384 } |
363 | 385 |
364 /** | |
365 * @param {!WebInspector.ConsoleMessage} consoleMessage | |
366 * @param {number} lineNumber | |
367 * @param {number} columnNumber | |
368 * @return {!WebInspector.UISourceCode.Message} | |
369 */ | |
370 WebInspector.UISourceCodeFrame.uiMessageFromConsoleMessage = function(consoleMes sage, lineNumber, columnNumber) | |
371 { | |
372 console.assert(consoleMessage.level === WebInspector.ConsoleMessage.MessageL evel.Error || consoleMessage.level === WebInspector.ConsoleMessage.MessageLevel. Warning); | |
373 var level = consoleMessage.level === WebInspector.ConsoleMessage.MessageLeve l.Error ? WebInspector.UISourceCode.Message.Level.Error : WebInspector.UISourceC ode.Message.Level.Warning; | |
374 return new WebInspector.UISourceCode.Message(level, consoleMessage.messageTe xt, lineNumber, columnNumber); | |
375 } | |
376 | |
377 WebInspector.UISourceCodeFrame._iconClassPerLevel = {}; | 386 WebInspector.UISourceCodeFrame._iconClassPerLevel = {}; |
378 WebInspector.UISourceCodeFrame._iconClassPerLevel[WebInspector.UISourceCode.Mess age.Level.Error] = "error-icon"; | 387 WebInspector.UISourceCodeFrame._iconClassPerLevel[WebInspector.UISourceCode.Mess age.Level.Error] = "error-icon"; |
379 WebInspector.UISourceCodeFrame._iconClassPerLevel[WebInspector.UISourceCode.Mess age.Level.Warning] = "warning-icon"; | 388 WebInspector.UISourceCodeFrame._iconClassPerLevel[WebInspector.UISourceCode.Mess age.Level.Warning] = "warning-icon"; |
380 | 389 |
381 WebInspector.UISourceCodeFrame._lineClassPerLevel = {}; | 390 WebInspector.UISourceCodeFrame._lineClassPerLevel = {}; |
382 WebInspector.UISourceCodeFrame._lineClassPerLevel[WebInspector.UISourceCode.Mess age.Level.Error] = "text-editor-line-with-error"; | 391 WebInspector.UISourceCodeFrame._lineClassPerLevel[WebInspector.UISourceCode.Mess age.Level.Error] = "text-editor-line-with-error"; |
383 WebInspector.UISourceCodeFrame._lineClassPerLevel[WebInspector.UISourceCode.Mess age.Level.Warning] = "text-editor-line-with-warning"; | 392 WebInspector.UISourceCodeFrame._lineClassPerLevel[WebInspector.UISourceCode.Mess age.Level.Warning] = "text-editor-line-with-warning"; |
384 | 393 |
385 /** | 394 /** |
386 * @constructor | 395 * @constructor |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
588 | 597 |
589 /** | 598 /** |
590 * @param {!WebInspector.UISourceCode.Message} a | 599 * @param {!WebInspector.UISourceCode.Message} a |
591 * @param {!WebInspector.UISourceCode.Message} b | 600 * @param {!WebInspector.UISourceCode.Message} b |
592 * @return {number} | 601 * @return {number} |
593 */ | 602 */ |
594 WebInspector.UISourceCode.Message.messageLevelComparator = function(a, b) | 603 WebInspector.UISourceCode.Message.messageLevelComparator = function(a, b) |
595 { | 604 { |
596 return WebInspector.UISourceCode.Message._messageLevelPriority[a.level()] - WebInspector.UISourceCode.Message._messageLevelPriority[b.level()]; | 605 return WebInspector.UISourceCode.Message._messageLevelPriority[a.level()] - WebInspector.UISourceCode.Message._messageLevelPriority[b.level()]; |
597 } | 606 } |
OLD | NEW |