Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1116)

Unified Diff: Source/devtools/front_end/source_frame/SourceFrame.js

Issue 1264133002: Devtools: [WIP] Implement enhanced devtools extension language APIs Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Modify override dropdown to apply to console completions & transpile Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..78131c66b017174bb02af07cfd21fd9735e171f0 100644
--- a/Source/devtools/front_end/source_frame/SourceFrame.js
+++ b/Source/devtools/front_end/source_frame/SourceFrame.js
@@ -600,12 +600,43 @@ WebInspector.SourceFrame.prototype = {
}
},
+ /**
+ * @return {!Array<!WebInspector.SourceFrameMessage>}
+ */
+ getMessagesFromSource: function()
wes 2015/08/14 00:55:05 This is marked for removal.
+ {
+ var ret = [];
+ for (var line in this._rowMessageBuckets) {
+ if (this._rowMessageBuckets.hasOwnProperty(line)) {
+ var bucket = this._rowMessageBuckets[line];
+ ret.concat(bucket._messages);
+ }
+ }
+ return ret;
+ },
+
+ 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 +715,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 +750,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 +772,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 +798,7 @@ WebInspector.SourceFrameMessage.prototype = {
*/
columnNumber: function()
{
- return this._columnNumber;
+ return this._start.column;
},
/**
@@ -755,7 +807,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 +915,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 +1070,25 @@ WebInspector.TextEditorDelegateForSourceFrame.prototype = {
/**
* @override
+ * @param {!WebInspector.ContextMenu} contextMenu
+ * @param {number} lineNumber
+ * @return {!Promise}
*/
populateLineGutterContextMenu: function(contextMenu, lineNumber)
pfeldman 2015/08/13 21:15:47 This is worth a separate patch.
wes 2015/08/14 00:55:05 Making the context menu flow async in general, or
{
- 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);
},
/**

Powered by Google App Engine
This is Rietveld 408576698