Chromium Code Reviews| Index: Source/devtools/front_end/source_frame/SourceFrame.js |
| diff --git a/Source/devtools/front_end/source_frame/SourceFrame.js b/Source/devtools/front_end/source_frame/SourceFrame.js |
| index 41f0c36a1617b36ac4c40ebb088ad0a310b3b9f5..a7c528aaa37a3f483b3acb7c311bc92e804a7f2f 100644 |
| --- a/Source/devtools/front_end/source_frame/SourceFrame.js |
| +++ b/Source/devtools/front_end/source_frame/SourceFrame.js |
| @@ -606,6 +606,14 @@ WebInspector.SourceFrame.prototype = { |
| } |
| }, |
| + setMessagesForSource: function(messages) { |
|
pfeldman
2015/10/21 23:47:53
This requires JSDoc and { to be on the next line.
wes
2015/10/23 20:35:30
Acknowledged.
|
| + this.clearMessages(); |
| + for (var index = 0; index < messages.length; index++) { |
| + var message = messages[index]; |
| + this.addMessageToSource(message); |
| + } |
| + }, |
| + |
| populateLineGutterContextMenu: function(contextMenu, lineNumber) |
| { |
| }, |
| @@ -690,15 +698,21 @@ WebInspector.SourceFrame.prototype = { |
| * @constructor |
| * @param {string} messageText |
| * @param {!WebInspector.SourceFrameMessage.Level} level |
| - * @param {number} lineNumber |
| - * @param {number=} columnNumber |
| + * @param {{line: number, column: (number|undefined)}} start |
| + * @param {{line: number, column: (number|undefined)}} end |
| */ |
| -WebInspector.SourceFrameMessage = function(messageText, level, lineNumber, columnNumber) |
| +WebInspector.SourceFrameMessage = function(messageText, level, start, end) |
| { |
| this._messageText = messageText; |
| this._level = level; |
| - this._lineNumber = lineNumber; |
| - this._columnNumber = columnNumber; |
| + this._start = { |
|
pfeldman
2015/10/21 23:47:53
We have WebInspector.TextRange that could be reuse
wes
2015/10/23 20:35:30
Acknowledged.
|
| + line: start.line, |
| + column: start.column |
| + }; |
| + this._end = { |
| + line: end.line, |
| + column: end.column |
| + }; |
| } |
| /** |
| @@ -719,7 +733,8 @@ WebInspector.SourceFrameMessage.fromConsoleMessage = function(consoleMessage, li |
| { |
| console.assert(consoleMessage.level === WebInspector.ConsoleMessage.MessageLevel.Error || consoleMessage.level === WebInspector.ConsoleMessage.MessageLevel.Warning); |
| var level = consoleMessage.level === WebInspector.ConsoleMessage.MessageLevel.Error ? WebInspector.SourceFrameMessage.Level.Error : WebInspector.SourceFrameMessage.Level.Warning; |
| - return new WebInspector.SourceFrameMessage(consoleMessage.messageText, level, lineNumber, columnNumber); |
| + var location = {line: lineNumber, column: columnNumber}; |
|
pfeldman
2015/10/21 23:47:53
Should this also be a range now?
wes
2015/10/23 20:35:29
Yep.
|
| + return new WebInspector.SourceFrameMessage(consoleMessage.messageText, level, location, location); |
| } |
| WebInspector.SourceFrameMessage.prototype = { |
| @@ -740,11 +755,25 @@ WebInspector.SourceFrameMessage.prototype = { |
| }, |
| /** |
| + * @return {{line: number, column: (number|undefined)}} |
| + */ |
| + start: function() { |
|
pfeldman
2015/10/21 23:47:53
{ goes the next line.
wes
2015/10/23 20:35:29
Acknowledged.
|
| + return this._start; |
| + }, |
| + |
| + /** |
| + * @return {{line: number, column: (number|undefined)}} |
| + */ |
| + end: function() { |
| + return this._end; |
| + }, |
| + |
| + /** |
| * @return {number} |
| */ |
| lineNumber: function() |
| { |
| - return this._lineNumber; |
| + return this._start.line; |
| }, |
| /** |
| @@ -752,7 +781,7 @@ WebInspector.SourceFrameMessage.prototype = { |
| */ |
| columnNumber: function() |
| { |
| - return this._columnNumber; |
| + return this._start.column; |
| }, |
| /** |
| @@ -761,7 +790,12 @@ WebInspector.SourceFrameMessage.prototype = { |
| */ |
| isEqual: function(another) |
| { |
| - return this.messageText() === another.messageText() && this.level() === another.level() && this.lineNumber() === another.lineNumber() && this.columnNumber() === another.columnNumber(); |
| + return this.messageText() === another.messageText() && |
| + this.level() === another.level() && |
| + this.lineNumber() === another.lineNumber() && |
| + this.columnNumber() === another.columnNumber() && |
| + this.end().line === another.end().line && |
| + this.end().column === another.end().column; |
| } |
| } |
| @@ -866,6 +900,9 @@ WebInspector.SourceFrame.RowMessageBucket.prototype = { |
| var base = this._textEditor.cursorPositionToCoordinates(lineNumber, 0); |
| var start = this._textEditor.cursorPositionToCoordinates(lineNumber, Math.max(columnNumber - 1, lineIndent)); |
| + if (!start) { |
|
pfeldman
2015/10/21 23:47:53
drop {}
wes
2015/10/23 20:35:29
Acknowledged.
|
| + return; //stale data - columnNumber is already gone, wait for future update and for UI to settle |
| + } |
| var end = this._textEditor.cursorPositionToCoordinates(lineNumber, lineText.length); |
| /** @const */ |
| var codeMirrorLinesLeftPadding = 4; |