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..23c9a6a5389616a63696560ccf19fff1886e8c22 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,18 @@ WebInspector.SelectUISourceCodeDialog.prototype = { |
| */ |
| selectItem: function(itemIndex, promptValue) |
| { |
| - if (/^:\d+$/.test(promptValue.trimRight())) { |
| - var lineNumber = parseInt(promptValue.trimRight().substring(1), 10) - 1; |
| - if (!isNaN(lineNumber) && lineNumber >= 0) |
| - this.uiSourceCodeSelected(null, lineNumber); |
| + var parsedExpression = promptValue.trimRight().match(/^([^:]*)(:\d+)?(:\d+)?$/); |
| + if (!parsedExpression) |
|
vsevik
2014/01/28 14:45:41
I don't think this ever happens!
lushnikov
2014/01/28 15:15:09
It does!
|
| 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 lineNumber; |
| + var columnNumber; |
| + if (parsedExpression[2]) |
| + lineNumber = parseInt(parsedExpression[2].substr(1), 10) - 1; |
| + if (parsedExpression[3]) |
| + columnNumber = parseInt(parsedExpression[3].substr(1), 10) - 1; |
| + var uiSourceCode = parsedExpression[1] ? this._uiSourceCodes[itemIndex] : null; |
| + this.uiSourceCodeSelected(uiSourceCode, lineNumber, columnNumber); |
| }, |
| /** |
| @@ -733,8 +737,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 +779,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 +846,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); |
| }, |