| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 |
| 5 self['Common'] = self['Common'] || {}; |
| 6 |
| 4 /** | 7 /** |
| 5 * @unrestricted | 8 * @unrestricted |
| 6 */ | 9 */ |
| 7 WebInspector.Text = class { | 10 Common.Text = class { |
| 8 /** | 11 /** |
| 9 * @param {string} value | 12 * @param {string} value |
| 10 */ | 13 */ |
| 11 constructor(value) { | 14 constructor(value) { |
| 12 this._value = value; | 15 this._value = value; |
| 13 } | 16 } |
| 14 | 17 |
| 15 /** | 18 /** |
| 16 * @return {!Array<number>} | 19 * @return {!Array<number>} |
| 17 */ | 20 */ |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 var lineEndings = this.lineEndings(); | 55 var lineEndings = this.lineEndings(); |
| 53 var lineStart = lineNumber > 0 ? lineEndings[lineNumber - 1] + 1 : 0; | 56 var lineStart = lineNumber > 0 ? lineEndings[lineNumber - 1] + 1 : 0; |
| 54 var lineEnd = lineEndings[lineNumber]; | 57 var lineEnd = lineEndings[lineNumber]; |
| 55 var lineContent = this._value.substring(lineStart, lineEnd); | 58 var lineContent = this._value.substring(lineStart, lineEnd); |
| 56 if (lineContent.length > 0 && lineContent.charAt(lineContent.length - 1) ===
'\r') | 59 if (lineContent.length > 0 && lineContent.charAt(lineContent.length - 1) ===
'\r') |
| 57 lineContent = lineContent.substring(0, lineContent.length - 1); | 60 lineContent = lineContent.substring(0, lineContent.length - 1); |
| 58 return lineContent; | 61 return lineContent; |
| 59 } | 62 } |
| 60 | 63 |
| 61 /** | 64 /** |
| 62 * @param {!WebInspector.TextRange} range | 65 * @param {!Common.TextRange} range |
| 63 * @return {!WebInspector.SourceRange} | 66 * @return {!Common.SourceRange} |
| 64 */ | 67 */ |
| 65 toSourceRange(range) { | 68 toSourceRange(range) { |
| 66 var start = this.offsetFromPosition(range.startLine, range.startColumn); | 69 var start = this.offsetFromPosition(range.startLine, range.startColumn); |
| 67 var end = this.offsetFromPosition(range.endLine, range.endColumn); | 70 var end = this.offsetFromPosition(range.endLine, range.endColumn); |
| 68 return new WebInspector.SourceRange(start, end - start); | 71 return new Common.SourceRange(start, end - start); |
| 69 } | 72 } |
| 70 | 73 |
| 71 /** | 74 /** |
| 72 * @param {!WebInspector.SourceRange} sourceRange | 75 * @param {!Common.SourceRange} sourceRange |
| 73 * @return {!WebInspector.TextRange} | 76 * @return {!Common.TextRange} |
| 74 */ | 77 */ |
| 75 toTextRange(sourceRange) { | 78 toTextRange(sourceRange) { |
| 76 var cursor = new WebInspector.TextCursor(this.lineEndings()); | 79 var cursor = new Common.TextCursor(this.lineEndings()); |
| 77 var result = WebInspector.TextRange.createFromLocation(0, 0); | 80 var result = Common.TextRange.createFromLocation(0, 0); |
| 78 | 81 |
| 79 cursor.resetTo(sourceRange.offset); | 82 cursor.resetTo(sourceRange.offset); |
| 80 result.startLine = cursor.lineNumber(); | 83 result.startLine = cursor.lineNumber(); |
| 81 result.startColumn = cursor.columnNumber(); | 84 result.startColumn = cursor.columnNumber(); |
| 82 | 85 |
| 83 cursor.advance(sourceRange.offset + sourceRange.length); | 86 cursor.advance(sourceRange.offset + sourceRange.length); |
| 84 result.endLine = cursor.lineNumber(); | 87 result.endLine = cursor.lineNumber(); |
| 85 result.endColumn = cursor.columnNumber(); | 88 result.endColumn = cursor.columnNumber(); |
| 86 return result; | 89 return result; |
| 87 } | 90 } |
| 88 | 91 |
| 89 /** | 92 /** |
| 90 * @param {!WebInspector.TextRange} range | 93 * @param {!Common.TextRange} range |
| 91 * @param {string} replacement | 94 * @param {string} replacement |
| 92 * @return {string} | 95 * @return {string} |
| 93 */ | 96 */ |
| 94 replaceRange(range, replacement) { | 97 replaceRange(range, replacement) { |
| 95 var sourceRange = this.toSourceRange(range); | 98 var sourceRange = this.toSourceRange(range); |
| 96 return this._value.substring(0, sourceRange.offset) + replacement + | 99 return this._value.substring(0, sourceRange.offset) + replacement + |
| 97 this._value.substring(sourceRange.offset + sourceRange.length); | 100 this._value.substring(sourceRange.offset + sourceRange.length); |
| 98 } | 101 } |
| 99 | 102 |
| 100 /** | 103 /** |
| 101 * @param {!WebInspector.TextRange} range | 104 * @param {!Common.TextRange} range |
| 102 * @return {string} | 105 * @return {string} |
| 103 */ | 106 */ |
| 104 extract(range) { | 107 extract(range) { |
| 105 var sourceRange = this.toSourceRange(range); | 108 var sourceRange = this.toSourceRange(range); |
| 106 return this._value.substr(sourceRange.offset, sourceRange.length); | 109 return this._value.substr(sourceRange.offset, sourceRange.length); |
| 107 } | 110 } |
| 108 }; | 111 }; |
| 109 | 112 |
| 110 /** | 113 /** |
| 111 * @unrestricted | 114 * @unrestricted |
| 112 */ | 115 */ |
| 113 WebInspector.TextCursor = class { | 116 Common.TextCursor = class { |
| 114 /** | 117 /** |
| 115 * @param {!Array<number>} lineEndings | 118 * @param {!Array<number>} lineEndings |
| 116 */ | 119 */ |
| 117 constructor(lineEndings) { | 120 constructor(lineEndings) { |
| 118 this._lineEndings = lineEndings; | 121 this._lineEndings = lineEndings; |
| 119 this._offset = 0; | 122 this._offset = 0; |
| 120 this._lineNumber = 0; | 123 this._lineNumber = 0; |
| 121 this._columnNumber = 0; | 124 this._columnNumber = 0; |
| 122 } | 125 } |
| 123 | 126 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 154 return this._lineNumber; | 157 return this._lineNumber; |
| 155 } | 158 } |
| 156 | 159 |
| 157 /** | 160 /** |
| 158 * @return {number} | 161 * @return {number} |
| 159 */ | 162 */ |
| 160 columnNumber() { | 163 columnNumber() { |
| 161 return this._columnNumber; | 164 return this._columnNumber; |
| 162 } | 165 } |
| 163 }; | 166 }; |
| OLD | NEW |