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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/common/Text.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
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 * @unrestricted
6 */
7 WebInspector.Text = class {
8 /**
9 * @param {string} value
10 */
11 constructor(value) {
12 this._value = value;
13 }
4 14
5 /** 15 /**
6 * @constructor 16 * @return {!Array<number>}
7 * @param {string} value 17 */
8 */ 18 lineEndings() {
9 WebInspector.Text = function(value) 19 if (!this._lineEndings)
10 { 20 this._lineEndings = this._value.computeLineEndings();
11 this._value = value; 21 return this._lineEndings;
12 }; 22 }
13 23
14 WebInspector.Text.prototype = { 24 /**
15 /** 25 * @return {string}
16 * @return {!Array<number>} 26 */
17 */ 27 value() {
18 lineEndings: function() 28 return this._value;
19 { 29 }
20 if (!this._lineEndings)
21 this._lineEndings = this._value.computeLineEndings();
22 return this._lineEndings;
23 },
24 30
25 /** 31 /**
26 * @return {string} 32 * @return {number}
27 */ 33 */
28 value: function() 34 lineCount() {
29 { 35 var lineEndings = this.lineEndings();
30 return this._value; 36 return lineEndings.length;
31 }, 37 }
32 38
33 /** 39 /**
34 * @return {number} 40 * @param {number} lineNumber
35 */ 41 * @param {number} columNumber
36 lineCount: function() 42 * @return {number}
37 { 43 */
38 var lineEndings = this.lineEndings(); 44 offsetFromPosition(lineNumber, columNumber) {
39 return lineEndings.length; 45 return (lineNumber ? this.lineEndings()[lineNumber - 1] + 1 : 0) + columNumb er;
40 }, 46 }
41 47
42 /** 48 /**
43 * @param {number} lineNumber 49 * @return {string}
44 * @param {number} columNumber 50 */
45 * @return {number} 51 lineAt(lineNumber) {
46 */ 52 var lineEndings = this.lineEndings();
47 offsetFromPosition: function(lineNumber, columNumber) 53 var lineStart = lineNumber > 0 ? lineEndings[lineNumber - 1] + 1 : 0;
48 { 54 var lineEnd = lineEndings[lineNumber];
49 return (lineNumber ? this.lineEndings()[lineNumber - 1] + 1 : 0) + colum Number; 55 var lineContent = this._value.substring(lineStart, lineEnd);
50 }, 56 if (lineContent.length > 0 && lineContent.charAt(lineContent.length - 1) === '\r')
57 lineContent = lineContent.substring(0, lineContent.length - 1);
58 return lineContent;
59 }
51 60
52 /** 61 /**
53 * @return {string} 62 * @param {!WebInspector.TextRange} range
54 */ 63 * @return {!WebInspector.SourceRange}
55 lineAt: function(lineNumber) 64 */
56 { 65 toSourceRange(range) {
57 var lineEndings = this.lineEndings(); 66 var start = this.offsetFromPosition(range.startLine, range.startColumn);
58 var lineStart = lineNumber > 0 ? lineEndings[lineNumber - 1] + 1 : 0; 67 var end = this.offsetFromPosition(range.endLine, range.endColumn);
59 var lineEnd = lineEndings[lineNumber]; 68 return new WebInspector.SourceRange(start, end - start);
60 var lineContent = this._value.substring(lineStart, lineEnd); 69 }
61 if (lineContent.length > 0 && lineContent.charAt(lineContent.length - 1) === "\r")
62 lineContent = lineContent.substring(0, lineContent.length - 1);
63 return lineContent;
64 },
65 70
66 /** 71 /**
67 * @param {!WebInspector.TextRange} range 72 * @param {!WebInspector.SourceRange} sourceRange
68 * @return {!WebInspector.SourceRange} 73 * @return {!WebInspector.TextRange}
69 */ 74 */
70 toSourceRange: function(range) 75 toTextRange(sourceRange) {
71 { 76 var cursor = new WebInspector.TextCursor(this.lineEndings());
72 var start = this.offsetFromPosition(range.startLine, range.startColumn); 77 var result = WebInspector.TextRange.createFromLocation(0, 0);
73 var end = this.offsetFromPosition(range.endLine, range.endColumn);
74 return new WebInspector.SourceRange(start, end - start);
75 },
76 78
77 /** 79 cursor.resetTo(sourceRange.offset);
78 * @param {!WebInspector.SourceRange} sourceRange 80 result.startLine = cursor.lineNumber();
79 * @return {!WebInspector.TextRange} 81 result.startColumn = cursor.columnNumber();
80 */
81 toTextRange: function(sourceRange)
82 {
83 var cursor = new WebInspector.TextCursor(this.lineEndings());
84 var result = WebInspector.TextRange.createFromLocation(0, 0);
85 82
86 cursor.resetTo(sourceRange.offset); 83 cursor.advance(sourceRange.offset + sourceRange.length);
87 result.startLine = cursor.lineNumber(); 84 result.endLine = cursor.lineNumber();
88 result.startColumn = cursor.columnNumber(); 85 result.endColumn = cursor.columnNumber();
86 return result;
87 }
89 88
90 cursor.advance(sourceRange.offset + sourceRange.length); 89 /**
91 result.endLine = cursor.lineNumber(); 90 * @param {!WebInspector.TextRange} range
92 result.endColumn = cursor.columnNumber(); 91 * @param {string} replacement
93 return result; 92 * @return {string}
94 }, 93 */
94 replaceRange(range, replacement) {
95 var sourceRange = this.toSourceRange(range);
96 return this._value.substring(0, sourceRange.offset) + replacement +
97 this._value.substring(sourceRange.offset + sourceRange.length);
98 }
95 99
96 /** 100 /**
97 * @param {!WebInspector.TextRange} range 101 * @param {!WebInspector.TextRange} range
98 * @param {string} replacement 102 * @return {string}
99 * @return {string} 103 */
100 */ 104 extract(range) {
101 replaceRange: function(range, replacement) 105 var sourceRange = this.toSourceRange(range);
102 { 106 return this._value.substr(sourceRange.offset, sourceRange.length);
103 var sourceRange = this.toSourceRange(range); 107 }
104 return this._value.substring(0, sourceRange.offset) + replacement + this ._value.substring(sourceRange.offset + sourceRange.length);
105 },
106
107 /**
108 * @param {!WebInspector.TextRange} range
109 * @return {string}
110 */
111 extract: function(range)
112 {
113 var sourceRange = this.toSourceRange(range);
114 return this._value.substr(sourceRange.offset, sourceRange.length);
115 }
116 }; 108 };
117 109
118 /** 110 /**
119 * @constructor 111 * @unrestricted
120 * @param {!Array<number>} lineEndings
121 */ 112 */
122 WebInspector.TextCursor = function(lineEndings) 113 WebInspector.TextCursor = class {
123 { 114 /**
115 * @param {!Array<number>} lineEndings
116 */
117 constructor(lineEndings) {
124 this._lineEndings = lineEndings; 118 this._lineEndings = lineEndings;
125 this._offset = 0; 119 this._offset = 0;
126 this._lineNumber = 0; 120 this._lineNumber = 0;
127 this._columnNumber = 0; 121 this._columnNumber = 0;
122 }
123
124 /**
125 * @param {number} offset
126 */
127 advance(offset) {
128 this._offset = offset;
129 while (this._lineNumber < this._lineEndings.length && this._lineEndings[this ._lineNumber] < this._offset)
130 ++this._lineNumber;
131 this._columnNumber = this._lineNumber ? this._offset - this._lineEndings[thi s._lineNumber - 1] - 1 : this._offset;
132 }
133
134 /**
135 * @return {number}
136 */
137 offset() {
138 return this._offset;
139 }
140
141 /**
142 * @param {number} offset
143 */
144 resetTo(offset) {
145 this._offset = offset;
146 this._lineNumber = this._lineEndings.lowerBound(offset);
147 this._columnNumber = this._lineNumber ? this._offset - this._lineEndings[thi s._lineNumber - 1] - 1 : this._offset;
148 }
149
150 /**
151 * @return {number}
152 */
153 lineNumber() {
154 return this._lineNumber;
155 }
156
157 /**
158 * @return {number}
159 */
160 columnNumber() {
161 return this._columnNumber;
162 }
128 }; 163 };
129
130 WebInspector.TextCursor.prototype = {
131 /**
132 * @param {number} offset
133 */
134 advance: function(offset)
135 {
136 this._offset = offset;
137 while (this._lineNumber < this._lineEndings.length && this._lineEndings[ this._lineNumber] < this._offset)
138 ++this._lineNumber;
139 this._columnNumber = this._lineNumber ? this._offset - this._lineEndings [this._lineNumber - 1] - 1 : this._offset;
140 },
141
142 /**
143 * @return {number}
144 */
145 offset: function()
146 {
147 return this._offset;
148 },
149
150 /**
151 * @param {number} offset
152 */
153 resetTo: function(offset)
154 {
155 this._offset = offset;
156 this._lineNumber = this._lineEndings.lowerBound(offset);
157 this._columnNumber = this._lineNumber ? this._offset - this._lineEndings [this._lineNumber - 1] - 1 : this._offset;
158 },
159
160 /**
161 * @return {number}
162 */
163 lineNumber: function()
164 {
165 return this._lineNumber;
166 },
167
168 /**
169 * @return {number}
170 */
171 columnNumber: function()
172 {
173 return this._columnNumber;
174 }
175 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698