| Index: Source/devtools/front_end/TextRange.js
|
| diff --git a/Source/devtools/front_end/TextRange.js b/Source/devtools/front_end/TextRange.js
|
| index b7b6c05e4da04574ec302ab637867b3158b2551e..30a2972186bdd6e6af9301a2bc586e6eb6b728ea 100644
|
| --- a/Source/devtools/front_end/TextRange.js
|
| +++ b/Source/devtools/front_end/TextRange.js
|
| @@ -89,6 +89,16 @@ WebInspector.TextRange.prototype = {
|
| },
|
|
|
| /**
|
| + * @param {!WebInspector.TextRange} range
|
| + * @return {boolean}
|
| + */
|
| + follows: function(range)
|
| + {
|
| + return (range.endLine === this.startLine && range.endColumn <= this.startColumn)
|
| + || range.endLine < this.startLine;
|
| + },
|
| +
|
| + /**
|
| * @return {number}
|
| */
|
| get linesCount()
|
| @@ -173,6 +183,29 @@ WebInspector.TextRange.prototype = {
|
| },
|
|
|
| /**
|
| + * @param {!WebInspector.TextRange} originalRange
|
| + * @param {!WebInspector.TextRange} editedRange
|
| + * @return {!WebInspector.TextRange}
|
| + */
|
| + rebaseAfterTextEdit: function(originalRange, editedRange)
|
| + {
|
| + console.assert(originalRange.startLine === editedRange.startLine);
|
| + console.assert(originalRange.startColumn === editedRange.startColumn);
|
| + var rebase = this.clone();
|
| + if (!this.follows(originalRange))
|
| + return rebase;
|
| + var lineDelta = editedRange.endLine - originalRange.endLine;
|
| + var columnDelta = editedRange.endColumn - originalRange.endColumn;
|
| + rebase.startLine += lineDelta;
|
| + rebase.endLine += lineDelta;
|
| + if (rebase.startLine === editedRange.endLine)
|
| + rebase.startColumn += columnDelta;
|
| + if (rebase.endLine === editedRange.endLine)
|
| + rebase.endColumn += columnDelta;
|
| + return rebase;
|
| + },
|
| +
|
| + /**
|
| * @return {string}
|
| */
|
| toString: function()
|
|
|