| 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 ad6b11b302e305c2016a44c2ec819bbd6e559d15..79e8fe84d7d04671fe8c754687a129eaa46fdc5b 100644
|
| --- a/Source/devtools/front_end/source_frame/SourceFrame.js
|
| +++ b/Source/devtools/front_end/source_frame/SourceFrame.js
|
| @@ -600,12 +600,28 @@ WebInspector.SourceFrame.prototype = {
|
| }
|
| },
|
|
|
| + setMessagesForSource: function(messages) {
|
| + this.clearMessages();
|
| + for (var index = 0; index < messages.length; index++) {
|
| + var message = messages[index];
|
| + this.addMessageToSource(message);
|
| + }
|
| + },
|
| +
|
| + /**
|
| + * @return {!Promise}
|
| + */
|
| populateLineGutterContextMenu: function(contextMenu, lineNumber)
|
| {
|
| + return Promise.resolve();
|
| },
|
|
|
| + /**
|
| + * @return {!Promise}
|
| + */
|
| populateTextAreaContextMenu: function(contextMenu, lineNumber, columnNumber)
|
| {
|
| + return Promise.resolve();
|
| },
|
|
|
| /**
|
| @@ -684,15 +700,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 = {
|
| + line: start.line,
|
| + column: start.column
|
| + };
|
| + this._end = {
|
| + line: end.line,
|
| + column: end.column
|
| + };
|
| }
|
|
|
| /**
|
| @@ -713,7 +735,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};
|
| + return new WebInspector.SourceFrameMessage(consoleMessage.messageText, level, location, location);
|
| }
|
|
|
| WebInspector.SourceFrameMessage.prototype = {
|
| @@ -734,11 +757,25 @@ WebInspector.SourceFrameMessage.prototype = {
|
| },
|
|
|
| /**
|
| + * @return {{line: number, column: (number|undefined)}}
|
| + */
|
| + start: function() {
|
| + 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;
|
| },
|
|
|
| /**
|
| @@ -746,7 +783,7 @@ WebInspector.SourceFrameMessage.prototype = {
|
| */
|
| columnNumber: function()
|
| {
|
| - return this._columnNumber;
|
| + return this._start.column;
|
| },
|
|
|
| /**
|
| @@ -755,7 +792,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;
|
| }
|
| }
|
|
|
| @@ -858,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) {
|
| + 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;
|
| @@ -1010,18 +1055,25 @@ WebInspector.TextEditorDelegateForSourceFrame.prototype = {
|
|
|
| /**
|
| * @override
|
| + * @param {!WebInspector.ContextMenu} contextMenu
|
| + * @param {number} lineNumber
|
| + * @return {!Promise}
|
| */
|
| populateLineGutterContextMenu: function(contextMenu, lineNumber)
|
| {
|
| - this._sourceFrame.populateLineGutterContextMenu(contextMenu, lineNumber);
|
| + return this._sourceFrame.populateLineGutterContextMenu(contextMenu, lineNumber);
|
| },
|
|
|
| /**
|
| * @override
|
| + * @param {!WebInspector.ContextMenu} contextMenu
|
| + * @param {number} lineNumber
|
| + * @param {number} columnNumber
|
| + * @return {!Promise}
|
| */
|
| populateTextAreaContextMenu: function(contextMenu, lineNumber, columnNumber)
|
| {
|
| - this._sourceFrame.populateTextAreaContextMenu(contextMenu, lineNumber, columnNumber);
|
| + return this._sourceFrame.populateTextAreaContextMenu(contextMenu, lineNumber, columnNumber);
|
| },
|
|
|
| /**
|
|
|