Chromium Code Reviews| Index: Source/devtools/front_end/FilteredItemSelectionDialog.js |
| diff --git a/Source/devtools/front_end/FilteredItemSelectionDialog.js b/Source/devtools/front_end/FilteredItemSelectionDialog.js |
| index 0fedcc9f82206b8fe28aa09909c819308303b77f..cd7aef1739c52dbc32a786e29fcdeca7d94e3731 100644 |
| --- a/Source/devtools/front_end/FilteredItemSelectionDialog.js |
| +++ b/Source/devtools/front_end/FilteredItemSelectionDialog.js |
| @@ -624,8 +624,9 @@ WebInspector.SelectUISourceCodeDialog.prototype = { |
| /** |
| * @param {?WebInspector.UISourceCode} uiSourceCode |
| * @param {number=} lineNumber |
| + * @param {number=} columnNumber |
| */ |
| - uiSourceCodeSelected: function(uiSourceCode, lineNumber) |
| + uiSourceCodeSelected: function(uiSourceCode, lineNumber, columnNumber) |
| { |
| // Overridden by subclasses |
| }, |
| @@ -689,7 +690,7 @@ WebInspector.SelectUISourceCodeDialog.prototype = { |
| { |
| query = this.rewriteQuery(query); |
| var uiSourceCode = this._uiSourceCodes[itemIndex]; |
| - titleElement.textContent = uiSourceCode.displayName() + (this._queryLineNumber ? this._queryLineNumber : ""); |
| + titleElement.textContent = uiSourceCode.displayName() + (this._queryLineNumberAndColumnNumber || ""); |
| subtitleElement.textContent = uiSourceCode.fullDisplayName().trimEnd(100); |
| var indexes = []; |
| @@ -713,15 +714,23 @@ WebInspector.SelectUISourceCodeDialog.prototype = { |
| */ |
| selectItem: function(itemIndex, promptValue) |
| { |
| - if (/^:\d+$/.test(promptValue.trimRight())) { |
|
vsevik
2014/01/27 17:19:11
Let's keep trimRight
lushnikov
2014/01/28 13:27:07
Done; even more: made trim() call here as it makes
|
| - var lineNumber = parseInt(promptValue.trimRight().substring(1), 10) - 1; |
| - if (!isNaN(lineNumber) && lineNumber >= 0) |
| - this.uiSourceCodeSelected(null, lineNumber); |
| + var gotoLineNumber = promptValue.match(/^(:\d+)(:\d+)?$/); |
| + if (gotoLineNumber) { |
| + var lineNumber = parseInt(gotoLineNumber[1].substr(1), 10) - 1; |
| + var columnNumber; |
| + if (gotoLineNumber[2]) |
| + columnNumber = parseInt(gotoLineNumber[2].substr(1), 10) - 1; |
| + this.uiSourceCodeSelected(null, lineNumber, columnNumber); |
| return; |
| } |
| - var lineNumberMatch = promptValue.match(/[^:]+\:([\d]*)$/); |
| - var lineNumber = lineNumberMatch ? Math.max(parseInt(lineNumberMatch[1], 10) - 1, 0) : undefined; |
| - this.uiSourceCodeSelected(this._uiSourceCodes[itemIndex], lineNumber); |
| + var gotoSourceMatch = promptValue.match(/^[^:]+(:\d+)?(:\d+)?$/); |
|
vsevik
2014/01/27 17:19:11
A lot of code duplication here.
lushnikov
2014/01/28 13:27:07
Done.
|
| + var lineNumber; |
| + var columnNumber; |
| + if (gotoSourceMatch[1]) |
| + lineNumber = parseInt(gotoSourceMatch[1].substr(1), 10) - 1; |
| + if (gotoSourceMatch[2]) |
| + columnNumber = parseInt(gotoSourceMatch[2].substr(1), 10) - 1; |
| + this.uiSourceCodeSelected(this._uiSourceCodes[itemIndex], lineNumber, columnNumber); |
| }, |
| /** |
| @@ -733,8 +742,8 @@ WebInspector.SelectUISourceCodeDialog.prototype = { |
| if (!query) |
| return query; |
| query = query.trim(); |
| - var lineNumberMatch = query.match(/([^:]+)(\:[\d]*)$/); |
| - this._queryLineNumber = lineNumberMatch ? lineNumberMatch[2] : ""; |
| + var lineNumberMatch = query.match(/^([^:]+)((?::[^:]*){0,2})$/); |
| + this._queryLineNumberAndColumnNumber = lineNumberMatch ? lineNumberMatch[2] : ""; |
| return lineNumberMatch ? lineNumberMatch[1] : query; |
| }, |
| @@ -775,14 +784,15 @@ WebInspector.OpenResourceDialog.prototype = { |
| /** |
| * @param {?WebInspector.UISourceCode} uiSourceCode |
| * @param {number=} lineNumber |
| + * @param {number=} columnNumber |
| */ |
| - uiSourceCodeSelected: function(uiSourceCode, lineNumber) |
| + uiSourceCodeSelected: function(uiSourceCode, lineNumber, columnNumber) |
| { |
| if (!uiSourceCode) |
| uiSourceCode = this._panel.currentUISourceCode(); |
| if (!uiSourceCode) |
| return; |
| - this._panel.showUISourceCode(uiSourceCode, lineNumber); |
| + this._panel.showUISourceCode(uiSourceCode, lineNumber, columnNumber); |
| }, |
| /** |
| @@ -841,8 +851,9 @@ WebInspector.SelectUISourceCodeForProjectTypeDialog.prototype = { |
| /** |
| * @param {!WebInspector.UISourceCode} uiSourceCode |
| * @param {number=} lineNumber |
| + * @param {number=} columnNumber |
| */ |
| - uiSourceCodeSelected: function(uiSourceCode, lineNumber) |
| + uiSourceCodeSelected: function(uiSourceCode, lineNumber, columnNumber) |
| { |
| this._callback(uiSourceCode); |
| }, |