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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sources/ScriptFormatter.js

Issue 2440953003: DevTools: use semicolons after each statement. (Closed)
Patch Set: rebaseline 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 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 15 matching lines...) Expand all
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 /** 31 /**
32 * @interface 32 * @interface
33 */ 33 */
34 WebInspector.Formatter = function() 34 WebInspector.Formatter = function()
35 { 35 {
36 } 36 };
37 37
38 /** 38 /**
39 * @param {!WebInspector.ResourceType} contentType 39 * @param {!WebInspector.ResourceType} contentType
40 * @param {string} mimeType 40 * @param {string} mimeType
41 * @param {string} content 41 * @param {string} content
42 * @param {function(string, !WebInspector.FormatterSourceMapping)} callback 42 * @param {function(string, !WebInspector.FormatterSourceMapping)} callback
43 */ 43 */
44 WebInspector.Formatter.format = function(contentType, mimeType, content, callbac k) 44 WebInspector.Formatter.format = function(contentType, mimeType, content, callbac k)
45 { 45 {
46 if (contentType.isDocumentOrScriptOrStyleSheet()) 46 if (contentType.isDocumentOrScriptOrStyleSheet())
47 new WebInspector.ScriptFormatter(mimeType, content, callback); 47 new WebInspector.ScriptFormatter(mimeType, content, callback);
48 else 48 else
49 new WebInspector.IdentityFormatter(mimeType, content, callback); 49 new WebInspector.IdentityFormatter(mimeType, content, callback);
50 } 50 };
51 51
52 /** 52 /**
53 * @param {!Array.<number>} lineEndings 53 * @param {!Array.<number>} lineEndings
54 * @param {number} lineNumber 54 * @param {number} lineNumber
55 * @param {number} columnNumber 55 * @param {number} columnNumber
56 * @return {number} 56 * @return {number}
57 */ 57 */
58 WebInspector.Formatter.locationToPosition = function(lineEndings, lineNumber, co lumnNumber) 58 WebInspector.Formatter.locationToPosition = function(lineEndings, lineNumber, co lumnNumber)
59 { 59 {
60 var position = lineNumber ? lineEndings[lineNumber - 1] + 1 : 0; 60 var position = lineNumber ? lineEndings[lineNumber - 1] + 1 : 0;
61 return position + columnNumber; 61 return position + columnNumber;
62 } 62 };
63 63
64 /** 64 /**
65 * @param {!Array.<number>} lineEndings 65 * @param {!Array.<number>} lineEndings
66 * @param {number} position 66 * @param {number} position
67 * @return {!Array.<number>} 67 * @return {!Array.<number>}
68 */ 68 */
69 WebInspector.Formatter.positionToLocation = function(lineEndings, position) 69 WebInspector.Formatter.positionToLocation = function(lineEndings, position)
70 { 70 {
71 var lineNumber = lineEndings.upperBound(position - 1); 71 var lineNumber = lineEndings.upperBound(position - 1);
72 if (!lineNumber) 72 if (!lineNumber)
73 var columnNumber = position; 73 var columnNumber = position;
74 else 74 else
75 var columnNumber = position - lineEndings[lineNumber - 1] - 1; 75 var columnNumber = position - lineEndings[lineNumber - 1] - 1;
76 return [lineNumber, columnNumber]; 76 return [lineNumber, columnNumber];
77 } 77 };
78 78
79 /** 79 /**
80 * @constructor 80 * @constructor
81 * @implements {WebInspector.Formatter} 81 * @implements {WebInspector.Formatter}
82 * @param {string} mimeType 82 * @param {string} mimeType
83 * @param {string} content 83 * @param {string} content
84 * @param {function(string, !WebInspector.FormatterSourceMapping)} callback 84 * @param {function(string, !WebInspector.FormatterSourceMapping)} callback
85 */ 85 */
86 WebInspector.ScriptFormatter = function(mimeType, content, callback) 86 WebInspector.ScriptFormatter = function(mimeType, content, callback)
87 { 87 {
88 content = content.replace(/\r\n?|[\n\u2028\u2029]/g, "\n").replace(/^\uFEFF/ , ""); 88 content = content.replace(/\r\n?|[\n\u2028\u2029]/g, "\n").replace(/^\uFEFF/ , "");
89 this._callback = callback; 89 this._callback = callback;
90 this._originalContent = content; 90 this._originalContent = content;
91 91
92 var parameters = { 92 var parameters = {
93 mimeType: mimeType, 93 mimeType: mimeType,
94 content: content, 94 content: content,
95 indentString: WebInspector.moduleSetting("textEditorIndent").get() 95 indentString: WebInspector.moduleSetting("textEditorIndent").get()
96 }; 96 };
97 WebInspector.formatterWorkerPool.runTask("format", parameters) 97 WebInspector.formatterWorkerPool.runTask("format", parameters)
98 .then(this._didFormatContent.bind(this)); 98 .then(this._didFormatContent.bind(this));
99 } 99 };
100 100
101 WebInspector.ScriptFormatter.prototype = { 101 WebInspector.ScriptFormatter.prototype = {
102 /** 102 /**
103 * @param {?MessageEvent} event 103 * @param {?MessageEvent} event
104 */ 104 */
105 _didFormatContent: function(event) 105 _didFormatContent: function(event)
106 { 106 {
107 var formattedContent = ""; 107 var formattedContent = "";
108 var mapping = []; 108 var mapping = [];
109 if (event) { 109 if (event) {
110 formattedContent = event.data.content; 110 formattedContent = event.data.content;
111 mapping = event.data["mapping"]; 111 mapping = event.data["mapping"];
112 } 112 }
113 var sourceMapping = new WebInspector.FormatterSourceMappingImpl(this._or iginalContent.computeLineEndings(), formattedContent.computeLineEndings(), mappi ng); 113 var sourceMapping = new WebInspector.FormatterSourceMappingImpl(this._or iginalContent.computeLineEndings(), formattedContent.computeLineEndings(), mappi ng);
114 this._callback(formattedContent, sourceMapping); 114 this._callback(formattedContent, sourceMapping);
115 } 115 }
116 } 116 };
117 117
118 /** 118 /**
119 * @constructor 119 * @constructor
120 * @implements {WebInspector.Formatter} 120 * @implements {WebInspector.Formatter}
121 * @param {string} mimeType 121 * @param {string} mimeType
122 * @param {string} content 122 * @param {string} content
123 * @param {function(string, !WebInspector.FormatterSourceMapping)} callback 123 * @param {function(string, !WebInspector.FormatterSourceMapping)} callback
124 */ 124 */
125 WebInspector.IdentityFormatter = function(mimeType, content, callback) 125 WebInspector.IdentityFormatter = function(mimeType, content, callback)
126 { 126 {
127 callback(content, new WebInspector.IdentityFormatterSourceMapping()); 127 callback(content, new WebInspector.IdentityFormatterSourceMapping());
128 } 128 };
129 129
130 /** 130 /**
131 * @typedef {{original: !Array.<number>, formatted: !Array.<number>}} 131 * @typedef {{original: !Array.<number>, formatted: !Array.<number>}}
132 */ 132 */
133 WebInspector.FormatterMappingPayload; 133 WebInspector.FormatterMappingPayload;
134 134
135 /** 135 /**
136 * @interface 136 * @interface
137 */ 137 */
138 WebInspector.FormatterSourceMapping = function() 138 WebInspector.FormatterSourceMapping = function()
139 { 139 {
140 } 140 };
141 141
142 WebInspector.FormatterSourceMapping.prototype = { 142 WebInspector.FormatterSourceMapping.prototype = {
143 /** 143 /**
144 * @param {number} lineNumber 144 * @param {number} lineNumber
145 * @param {number=} columnNumber 145 * @param {number=} columnNumber
146 * @return {!Array.<number>} 146 * @return {!Array.<number>}
147 */ 147 */
148 originalToFormatted: function(lineNumber, columnNumber) { }, 148 originalToFormatted: function(lineNumber, columnNumber) { },
149 149
150 /** 150 /**
151 * @param {number} lineNumber 151 * @param {number} lineNumber
152 * @param {number=} columnNumber 152 * @param {number=} columnNumber
153 * @return {!Array.<number>} 153 * @return {!Array.<number>}
154 */ 154 */
155 formattedToOriginal: function(lineNumber, columnNumber) { } 155 formattedToOriginal: function(lineNumber, columnNumber) { }
156 } 156 };
157 157
158 /** 158 /**
159 * @constructor 159 * @constructor
160 * @implements {WebInspector.FormatterSourceMapping} 160 * @implements {WebInspector.FormatterSourceMapping}
161 */ 161 */
162 WebInspector.IdentityFormatterSourceMapping = function() 162 WebInspector.IdentityFormatterSourceMapping = function()
163 { 163 {
164 } 164 };
165 165
166 WebInspector.IdentityFormatterSourceMapping.prototype = { 166 WebInspector.IdentityFormatterSourceMapping.prototype = {
167 /** 167 /**
168 * @override 168 * @override
169 * @param {number} lineNumber 169 * @param {number} lineNumber
170 * @param {number=} columnNumber 170 * @param {number=} columnNumber
171 * @return {!Array.<number>} 171 * @return {!Array.<number>}
172 */ 172 */
173 originalToFormatted: function(lineNumber, columnNumber) 173 originalToFormatted: function(lineNumber, columnNumber)
174 { 174 {
175 return [lineNumber, columnNumber || 0]; 175 return [lineNumber, columnNumber || 0];
176 }, 176 },
177 177
178 /** 178 /**
179 * @override 179 * @override
180 * @param {number} lineNumber 180 * @param {number} lineNumber
181 * @param {number=} columnNumber 181 * @param {number=} columnNumber
182 * @return {!Array.<number>} 182 * @return {!Array.<number>}
183 */ 183 */
184 formattedToOriginal: function(lineNumber, columnNumber) 184 formattedToOriginal: function(lineNumber, columnNumber)
185 { 185 {
186 return [lineNumber, columnNumber || 0]; 186 return [lineNumber, columnNumber || 0];
187 } 187 }
188 } 188 };
189 189
190 /** 190 /**
191 * @constructor 191 * @constructor
192 * @implements {WebInspector.FormatterSourceMapping} 192 * @implements {WebInspector.FormatterSourceMapping}
193 * @param {!Array.<number>} originalLineEndings 193 * @param {!Array.<number>} originalLineEndings
194 * @param {!Array.<number>} formattedLineEndings 194 * @param {!Array.<number>} formattedLineEndings
195 * @param {!WebInspector.FormatterMappingPayload} mapping 195 * @param {!WebInspector.FormatterMappingPayload} mapping
196 */ 196 */
197 WebInspector.FormatterSourceMappingImpl = function(originalLineEndings, formatte dLineEndings, mapping) 197 WebInspector.FormatterSourceMappingImpl = function(originalLineEndings, formatte dLineEndings, mapping)
198 { 198 {
199 this._originalLineEndings = originalLineEndings; 199 this._originalLineEndings = originalLineEndings;
200 this._formattedLineEndings = formattedLineEndings; 200 this._formattedLineEndings = formattedLineEndings;
201 this._mapping = mapping; 201 this._mapping = mapping;
202 } 202 };
203 203
204 WebInspector.FormatterSourceMappingImpl.prototype = { 204 WebInspector.FormatterSourceMappingImpl.prototype = {
205 /** 205 /**
206 * @override 206 * @override
207 * @param {number} lineNumber 207 * @param {number} lineNumber
208 * @param {number=} columnNumber 208 * @param {number=} columnNumber
209 * @return {!Array.<number>} 209 * @return {!Array.<number>}
210 */ 210 */
211 originalToFormatted: function(lineNumber, columnNumber) 211 originalToFormatted: function(lineNumber, columnNumber)
212 { 212 {
(...skipping 22 matching lines...) Expand all
235 * @return {number} 235 * @return {number}
236 */ 236 */
237 _convertPosition: function(positions1, positions2, position) 237 _convertPosition: function(positions1, positions2, position)
238 { 238 {
239 var index = positions1.upperBound(position) - 1; 239 var index = positions1.upperBound(position) - 1;
240 var convertedPosition = positions2[index] + position - positions1[index] ; 240 var convertedPosition = positions2[index] + position - positions1[index] ;
241 if (index < positions2.length - 1 && convertedPosition > positions2[inde x + 1]) 241 if (index < positions2.length - 1 && convertedPosition > positions2[inde x + 1])
242 convertedPosition = positions2[index + 1]; 242 convertedPosition = positions2[index + 1];
243 return convertedPosition; 243 return convertedPosition;
244 } 244 }
245 } 245 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698