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

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

Issue 2783233005: DevTools: Move JavaScript and CSS outline into QuickOpen (Closed)
Patch Set: Created 3 years, 8 months 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 /** 4 /**
5 * @unrestricted 5 * @unrestricted
6 */ 6 */
7 Common.FormatterWorkerPool = class { 7 Common.FormatterWorkerPool = class {
8 constructor() { 8 constructor() {
9 this._taskQueue = []; 9 this._taskQueue = [];
10 /** @type {!Map<!Common.Worker, ?Common.FormatterWorkerPool.Task>} */ 10 /** @type {!Map<!Common.Worker, ?Common.FormatterWorkerPool.Task>} */
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 175
176 /** 176 /**
177 * @param {boolean} isLastChunk 177 * @param {boolean} isLastChunk
178 * @param {*} data 178 * @param {*} data
179 */ 179 */
180 function onDataChunk(isLastChunk, data) { 180 function onDataChunk(isLastChunk, data) {
181 var items = /** @type {!Array.<!Common.FormatterWorkerPool.JSOutlineItem>} */ (data || []); 181 var items = /** @type {!Array.<!Common.FormatterWorkerPool.JSOutlineItem>} */ (data || []);
182 callback(isLastChunk, items); 182 callback(isLastChunk, items);
183 } 183 }
184 } 184 }
185
186 /**
187 * @param {string} content
188 * @param {string} mimeType
189 * @param {function(boolean, !Array<!Common.FormatterWorkerPool.OutlineItem>)} callback
190 * @return {boolean}
191 */
192 outlineForMimetype(content, mimeType, callback) {
193 switch (mimeType) {
194 case 'text/html':
195 case 'text/javascript':
196 this.javaScriptOutline(content, javaScriptCallback);
197 return true;
198 case 'text/css':
199 this.parseCSS(content, cssCallback);
200 return true;
201 }
202 return false;
203
204 /**
205 * @param {boolean} isLastChunk
206 * @param {!Array<!Common.FormatterWorkerPool.JSOutlineItem>} items
207 */
208 function javaScriptCallback(isLastChunk, items) {
209 callback(
210 isLastChunk,
211 items.map(item => ({line: item.line, column: item.column, title: item. name, subtitle: item.arguments})));
212 }
213
214 /**
215 * @param {boolean} isLastChunk
216 * @param {!Array<!Common.FormatterWorkerPool.CSSRule>} rules
217 */
218 function cssCallback(isLastChunk, rules) {
219 callback(
220 isLastChunk,
221 rules.map(
222 rule => ({line: rule.lineNumber, column: rule.columnNumber, title: rule.selectorText || rule.atRule})));
223 }
224 }
185 }; 225 };
186 226
187 Common.FormatterWorkerPool.MaxWorkers = 2; 227 Common.FormatterWorkerPool.MaxWorkers = 2;
188 228
189 /** 229 /**
190 * @unrestricted 230 * @unrestricted
191 */ 231 */
192 Common.FormatterWorkerPool.Task = class { 232 Common.FormatterWorkerPool.Task = class {
193 /** 233 /**
194 * @param {string} method 234 * @param {string} method
(...skipping 14 matching lines...) Expand all
209 /** @type {string} */ 249 /** @type {string} */
210 this.content; 250 this.content;
211 /** @type {!Common.FormatterWorkerPool.FormatMapping} */ 251 /** @type {!Common.FormatterWorkerPool.FormatMapping} */
212 this.mapping; 252 this.mapping;
213 } 253 }
214 }; 254 };
215 255
216 /** @typedef {{original: !Array<number>, formatted: !Array<number>}} */ 256 /** @typedef {{original: !Array<number>, formatted: !Array<number>}} */
217 Common.FormatterWorkerPool.FormatMapping; 257 Common.FormatterWorkerPool.FormatMapping;
218 258
259 /** @typedef {{line: number, column: number, title: string, subtitle: (string|un defined) }} */
260 Common.FormatterWorkerPool.OutlineItem;
261
219 Common.FormatterWorkerPool.JSOutlineItem = class { 262 Common.FormatterWorkerPool.JSOutlineItem = class {
220 constructor() { 263 constructor() {
221 /** @type {string} */ 264 /** @type {string} */
222 this.name; 265 this.name;
223 /** @type {(string|undefined)} */ 266 /** @type {(string|undefined)} */
224 this.arguments; 267 this.arguments;
225 /** @type {number} */ 268 /** @type {number} */
226 this.line; 269 this.line;
227 /** @type {number} */ 270 /** @type {number} */
228 this.column; 271 this.column;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 this.selectors; 338 this.selectors;
296 /** @type {!Array<!Common.FormatterWorkerPool.SCSSProperty>} */ 339 /** @type {!Array<!Common.FormatterWorkerPool.SCSSProperty>} */
297 this.properties; 340 this.properties;
298 /** @type {!Common.FormatterWorkerPool.TextRange} */ 341 /** @type {!Common.FormatterWorkerPool.TextRange} */
299 this.styleRange; 342 this.styleRange;
300 } 343 }
301 }; 344 };
302 345
303 /** @type {!Common.FormatterWorkerPool} */ 346 /** @type {!Common.FormatterWorkerPool} */
304 Common.formatterWorkerPool; 347 Common.formatterWorkerPool;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698