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

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

Issue 2801543002: DevTools: simplify ScriptFormatterEditorAction (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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 /**
5 * @implements {Bindings.DebuggerSourceMapping} 6 * @implements {Bindings.DebuggerSourceMapping}
6 * @unrestricted
7 */ 7 */
8 Sources.FormatterScriptMapping = class { 8 Sources.FormatterScriptMapping = class {
9 /** 9 /**
10 * @param {!SDK.DebuggerModel} debuggerModel
11 * @param {!Sources.ScriptFormatterEditorAction} editorAction
12 */
13 constructor(debuggerModel, editorAction) {
14 this._debuggerModel = debuggerModel;
15 this._editorAction = editorAction;
16 }
17
18 /**
19 * @override 10 * @override
20 * @param {!SDK.DebuggerModel.Location} rawLocation 11 * @param {!SDK.DebuggerModel.Location} rawLocation
21 * @return {?Workspace.UILocation} 12 * @return {?Workspace.UILocation}
22 */ 13 */
23 rawLocationToUILocation(rawLocation) { 14 rawLocationToUILocation(rawLocation) {
24 var debuggerModelLocation = /** @type {!SDK.DebuggerModel.Location} */ (rawL ocation); 15 var script = rawLocation.script();
25 var script = debuggerModelLocation.script(); 16 var formatData = script && script[Sources.ScriptFormatterEditorAction._forma tDataSymbol];
pfeldman 2017/04/06 00:46:26 type cast it?
26 if (!script)
27 return null;
28 var uiSourceCode = this._editorAction._uiSourceCodes.get(script);
29 if (!uiSourceCode)
30 return null;
31
32 var formatData = this._editorAction._formatData.get(uiSourceCode);
33 if (!formatData) 17 if (!formatData)
34 return null; 18 return null;
35 var mapping = formatData.mapping; 19 var lineNumber = rawLocation.lineNumber;
pfeldman 2017/04/06 00:46:26 inline those two
36 var lineNumber = debuggerModelLocation.lineNumber; 20 var columnNumber = rawLocation.columnNumber || 0;
37 var columnNumber = debuggerModelLocation.columnNumber || 0; 21 var formattedLocation = formatData.mapping.originalToFormatted(lineNumber, c olumnNumber);
38 var formattedLocation = mapping.originalToFormatted(lineNumber, columnNumber ); 22 return formatData.formattedSourceCode.uiLocation(formattedLocation[0], forma ttedLocation[1]);
39 return uiSourceCode.uiLocation(formattedLocation[0], formattedLocation[1]);
40 } 23 }
41 24
42 /** 25 /**
43 * @override 26 * @override
44 * @param {!Workspace.UISourceCode} uiSourceCode 27 * @param {!Workspace.UISourceCode} uiSourceCode
45 * @param {number} lineNumber 28 * @param {number} lineNumber
46 * @param {number} columnNumber 29 * @param {number} columnNumber
47 * @return {?SDK.DebuggerModel.Location} 30 * @return {?SDK.DebuggerModel.Location}
48 */ 31 */
49 uiLocationToRawLocation(uiSourceCode, lineNumber, columnNumber) { 32 uiLocationToRawLocation(uiSourceCode, lineNumber, columnNumber) {
50 var formatData = this._editorAction._formatData.get(uiSourceCode); 33 var formatData = uiSourceCode[Sources.ScriptFormatterEditorAction._formatDat aSymbol];
lushnikov 2017/04/05 18:29:48 don't you want to save script here instead?
51 if (!formatData) 34 if (!formatData)
52 return null; 35 return null;
53 var originalLocation = formatData.mapping.formattedToOriginal(lineNumber, co lumnNumber); 36 var originalLocation = formatData.mapping.formattedToOriginal(lineNumber, co lumnNumber);
54 for (var i = 0; i < formatData.scripts.length; ++i) { 37 var scripts = Sources.ScriptFormatterEditorAction._scriptsForUISourceCode(fo rmatData.originalSourceCode);
pfeldman 2017/04/05 18:23:36 You are formatting UISourceCodes, not scripts. For
lushnikov 2017/04/05 18:29:48 let's bind formatted UISourceCode to a single scri
55 if (formatData.scripts[i].debuggerModel === this._debuggerModel) 38 if (!scripts.length)
56 return this._debuggerModel.createRawLocation(formatData.scripts[i], orig inalLocation[0], originalLocation[1]); 39 return null;
57 } 40 return scripts[0].debuggerModel.createRawLocation(scripts[0], originalLocati on[0], originalLocation[1]);
pfeldman 2017/04/06 00:46:26 We'll burn in hell for this.
58 return null;
59 } 41 }
60 42
61 /** 43 /**
62 * @override 44 * @override
63 * @return {boolean} 45 * @return {boolean}
64 */ 46 */
65 isIdentity() { 47 isIdentity() {
66 return false; 48 return false;
67 } 49 }
68 50
69 /** 51 /**
70 * @override 52 * @override
71 * @param {!Workspace.UISourceCode} uiSourceCode 53 * @param {!Workspace.UISourceCode} uiSourceCode
72 * @param {number} lineNumber 54 * @param {number} lineNumber
73 * @return {boolean} 55 * @return {boolean}
74 */ 56 */
75 uiLineHasMapping(uiSourceCode, lineNumber) { 57 uiLineHasMapping(uiSourceCode, lineNumber) {
76 return true; 58 return true;
77 } 59 }
78 }; 60 };
79 61
80 /**
81 * @unrestricted
82 */
83 Sources.FormatterScriptMapping.FormatData = class { 62 Sources.FormatterScriptMapping.FormatData = class {
84 /** 63 /**
85 * @param {string} projectId 64 * @param {!Workspace.UISourceCode} originalSourceCode
86 * @param {string} path 65 * @param {!Workspace.UISourceCode} formattedSourceCode
87 * @param {!Sources.FormatterSourceMapping} mapping 66 * @param {!Sources.FormatterSourceMapping} mapping
88 * @param {!Array.<!SDK.Script>} scripts
89 */ 67 */
90 constructor(projectId, path, mapping, scripts) { 68 constructor(originalSourceCode, formattedSourceCode, mapping) {
91 this.projectId = projectId; 69 this.originalSourceCode = originalSourceCode;
92 this.path = path; 70 this.formattedSourceCode = formattedSourceCode;
93 this.mapping = mapping; 71 this.mapping = mapping;
94 this.scripts = scripts; 72 }
73
74 originalPath() {
75 return this.originalSourceCode.project().id() + ':' + this.originalSourceCod e.url();
95 } 76 }
96 }; 77 };
97 78
98 /** 79 /**
99 * @implements {Sources.SourcesView.EditorAction} 80 * @implements {Sources.SourcesView.EditorAction}
100 * @implements {SDK.SDKModelObserver<!SDK.DebuggerModel>} 81 * @implements {SDK.SDKModelObserver<!SDK.DebuggerModel>}
101 * @unrestricted 82 * @unrestricted
102 */ 83 */
103 Sources.ScriptFormatterEditorAction = class { 84 Sources.ScriptFormatterEditorAction = class {
104 constructor() { 85 constructor() {
105 this._projectId = 'formatter:'; 86 this._projectId = 'formatter:';
106 this._project = new Bindings.ContentProviderBasedProject( 87 this._project = new Bindings.ContentProviderBasedProject(
107 Workspace.workspace, this._projectId, Workspace.projectTypes.Formatter, 'formatter', 88 Workspace.workspace, this._projectId, Workspace.projectTypes.Formatter, 'formatter',
108 true /* isServiceProject */); 89 true /* isServiceProject */);
109 90
110 /** @type {!Map.<!SDK.Script, !Workspace.UISourceCode>} */ 91 /** @type {!Map<string, string>} */
111 this._uiSourceCodes = new Map();
112 /** @type {!Map.<string, string>} */
113 this._formattedPaths = new Map(); 92 this._formattedPaths = new Map();
114 /** @type {!Map.<!Workspace.UISourceCode, !Sources.FormatterScriptMapping.Fo rmatData>} */ 93 /** @type {!Set<string>} */
115 this._formatData = new Map(); 94 this._pathsToFormatOnLoad = new Set();
95 this._scriptMapping = new Sources.FormatterScriptMapping();
116 96
117 /** @type {!Set.<string>} */
118 this._pathsToFormatOnLoad = new Set();
119
120 /** @type {!Map.<!SDK.DebuggerModel, !Sources.FormatterScriptMapping>} */
121 this._scriptMappingByDebuggerModel = new Map();
122 this._workspace = Workspace.workspace;
123 SDK.targetManager.observeModels(SDK.DebuggerModel, this); 97 SDK.targetManager.observeModels(SDK.DebuggerModel, this);
124 } 98 }
125 99
126 /** 100 /**
127 * @override 101 * @override
128 * @param {!SDK.DebuggerModel} debuggerModel 102 * @param {!SDK.DebuggerModel} debuggerModel
129 */ 103 */
130 modelAdded(debuggerModel) { 104 modelAdded(debuggerModel) {
131 this._scriptMappingByDebuggerModel.set(debuggerModel, new Sources.FormatterS criptMapping(debuggerModel, this));
132 debuggerModel.addEventListener(SDK.DebuggerModel.Events.GlobalObjectCleared, this._debuggerReset, this); 105 debuggerModel.addEventListener(SDK.DebuggerModel.Events.GlobalObjectCleared, this._debuggerReset, this);
133 } 106 }
134 107
135 /** 108 /**
136 * @override 109 * @override
137 * @param {!SDK.DebuggerModel} debuggerModel 110 * @param {!SDK.DebuggerModel} debuggerModel
138 */ 111 */
139 modelRemoved(debuggerModel) { 112 modelRemoved(debuggerModel) {
140 this._scriptMappingByDebuggerModel.remove(debuggerModel);
141 this._cleanForModel(debuggerModel); 113 this._cleanForModel(debuggerModel);
142 debuggerModel.removeEventListener(SDK.DebuggerModel.Events.GlobalObjectClear ed, this._debuggerReset, this); 114 debuggerModel.removeEventListener(SDK.DebuggerModel.Events.GlobalObjectClear ed, this._debuggerReset, this);
143 } 115 }
144 116
145 /** 117 /**
146 * @param {!Common.Event} event 118 * @param {!Common.Event} event
147 */ 119 */
148 _editorSelected(event) { 120 _editorSelected(event) {
149 var uiSourceCode = /** @type {!Workspace.UISourceCode} */ (event.data); 121 var uiSourceCode = /** @type {!Workspace.UISourceCode} */ (event.data);
150 this._updateButton(uiSourceCode); 122 this._updateButton(uiSourceCode);
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 start = mapping.originalToFormatted(selection.startLine, selection.startCo lumn); 207 start = mapping.originalToFormatted(selection.startLine, selection.startCo lumn);
236 } 208 }
237 this._sourcesView.showSourceLocation(formattedUISourceCode, start[0], start[ 1]); 209 this._sourcesView.showSourceLocation(formattedUISourceCode, start[0], start[ 1]);
238 this._updateButton(formattedUISourceCode); 210 this._updateButton(formattedUISourceCode);
239 } 211 }
240 212
241 /** 213 /**
242 * @param {!Workspace.UISourceCode} formattedUISourceCode 214 * @param {!Workspace.UISourceCode} formattedUISourceCode
243 */ 215 */
244 _discardFormattedUISourceCodeScript(formattedUISourceCode) { 216 _discardFormattedUISourceCodeScript(formattedUISourceCode) {
245 var formatData = this._formatData.get(formattedUISourceCode); 217 var formatData = formattedUISourceCode[Sources.ScriptFormatterEditorAction._ formatDataSymbol];
246 if (!formatData) 218 if (!formatData)
247 return; 219 return;
248 220
249 this._formatData.remove(formattedUISourceCode); 221 var path = formatData.originalPath();
250 var path = formatData.projectId + ':' + formatData.path;
251 this._formattedPaths.remove(path); 222 this._formattedPaths.remove(path);
252 this._pathsToFormatOnLoad.delete(path); 223 this._pathsToFormatOnLoad.delete(path);
253 for (var i = 0; i < formatData.scripts.length; ++i) { 224 var scripts = Sources.ScriptFormatterEditorAction._scriptsForUISourceCode(fo rmatData.originalSourceCode);
254 this._uiSourceCodes.remove(formatData.scripts[i]); 225 for (var script of scripts) {
255 Bindings.debuggerWorkspaceBinding.popSourceMapping(formatData.scripts[i]); 226 script[Sources.ScriptFormatterEditorAction._formatDataSymbol] = null;
227 Bindings.debuggerWorkspaceBinding.popSourceMapping(script);
256 } 228 }
257 this._project.removeFile(formattedUISourceCode.url()); 229 this._project.removeFile(formattedUISourceCode.url());
258 } 230 }
259 231
260 /** 232 /**
261 * @param {!SDK.DebuggerModel} debuggerModel 233 * @param {!SDK.DebuggerModel} debuggerModel
262 */ 234 */
263 _cleanForModel(debuggerModel) { 235 _cleanForModel(debuggerModel) {
264 var uiSourceCodes = this._formatData.keysArray(); 236 for (var script of Object.values(debuggerModel.scripts)) {
265 for (var i = 0; i < uiSourceCodes.length; ++i) { 237 var formatData = script[Sources.ScriptFormatterEditorAction._formatDataSym bol];
pfeldman 2017/04/06 00:46:26 cast
266 Bindings.debuggerWorkspaceBinding.setSourceMapping(debuggerModel, uiSource Codes[i], null); 238 if (!formatData)
267 var formatData = this._formatData.get(uiSourceCodes[i]); 239 continue;
268 var scripts = []; 240 delete script[Sources.ScriptFormatterEditorAction._formatDataSymbol];
269 for (var j = 0; j < formatData.scripts.length; ++j) { 241 Bindings.debuggerWorkspaceBinding.setSourceMapping(debuggerModel, formatDa ta.formattedUISourceCode, null);
270 if (formatData.scripts[j].debuggerModel === debuggerModel) 242 this._formattedPaths.remove(formatData.originalPath());
271 this._uiSourceCodes.remove(formatData.scripts[j]); 243 this._project.removeFile(formatData.formattedSourceCodes.url());
272 else
273 scripts.push(formatData.scripts[j]);
274 }
275
276 if (scripts.length) {
277 formatData.scripts = scripts;
278 } else {
279 this._formattedPaths.remove(formatData.projectId + ':' + formatData.path );
280 this._formatData.remove(uiSourceCodes[i]);
281 this._project.removeFile(uiSourceCodes[i].url());
282 }
283 } 244 }
284 } 245 }
285 246
286 /** 247 /**
287 * @param {!Common.Event} event 248 * @param {!Common.Event} event
288 */ 249 */
289 _debuggerReset(event) { 250 _debuggerReset(event) {
290 var debuggerModel = /** @type {!SDK.DebuggerModel} */ (event.data); 251 var debuggerModel = /** @type {!SDK.DebuggerModel} */ (event.data);
291 this._cleanForModel(debuggerModel); 252 this._cleanForModel(debuggerModel);
292 } 253 }
293 254
294 /** 255 /**
295 * @param {!Workspace.UISourceCode} uiSourceCode 256 * @param {!Workspace.UISourceCode} uiSourceCode
296 * @return {!Array.<!SDK.Script>} 257 * @return {!Array<!SDK.Script>}
297 */ 258 */
298 _scriptsForUISourceCode(uiSourceCode) { 259 static _scriptsForUISourceCode(uiSourceCode) {
299 /**
300 * @param {!SDK.Script} script
301 * @return {boolean}
302 */
303 function isInlineScript(script) {
304 return script.isInlineScript() && !script.hasSourceURL;
305 }
306
307 if (uiSourceCode.contentType() === Common.resourceTypes.Document) { 260 if (uiSourceCode.contentType() === Common.resourceTypes.Document) {
308 var scripts = []; 261 var target = Bindings.NetworkProject.targetForUISourceCode(uiSourceCode);
309 var debuggerModels = SDK.targetManager.models(SDK.DebuggerModel); 262 var debuggerModel = target && target.model(SDK.DebuggerModel);
310 for (var i = 0; i < debuggerModels.length; ++i) 263 if (debuggerModel) {
311 scripts.pushAll(debuggerModels[i].scriptsForSourceURL(uiSourceCode.url() )); 264 var scripts = debuggerModel.scriptsForSourceURL(uiSourceCode.url())
312 return scripts.filter(isInlineScript); 265 .filter(script => script.isInlineScript() && !script.h asSourceURL);
266 return scripts;
267 }
313 } 268 }
314 if (uiSourceCode.contentType().isScript()) { 269 if (uiSourceCode.contentType().isScript()) {
315 var rawLocation = Bindings.debuggerWorkspaceBinding.uiLocationToRawLocatio n(uiSourceCode, 0, 0); 270 var rawLocation = Bindings.debuggerWorkspaceBinding.uiLocationToRawLocatio n(uiSourceCode, 0, 0);
316 if (rawLocation) 271 if (rawLocation)
317 return [rawLocation.script()]; 272 return [rawLocation.script()];
318 } 273 }
319 return []; 274 return [];
320 } 275 }
321 276
322 /** 277 /**
323 * @param {!Workspace.UISourceCode} uiSourceCode 278 * @param {!Workspace.UISourceCode} uiSourceCode
324 */ 279 */
325 _formatUISourceCodeScript(uiSourceCode) { 280 _formatUISourceCodeScript(uiSourceCode) {
326 var formattedPath = this._formattedPaths.get(uiSourceCode.project().id() + ' :' + uiSourceCode.url()); 281 var formattedPath = this._formattedPaths.get(uiSourceCode.project().id() + ' :' + uiSourceCode.url());
327 if (formattedPath) { 282 if (formattedPath) {
328 var uiSourceCodePath = formattedPath; 283 var formattedUISourceCode = Workspace.workspace.uiSourceCode(this._project Id, formattedPath);
329 var formattedUISourceCode = this._workspace.uiSourceCode(this._projectId, uiSourceCodePath); 284 var formatData =
330 var formatData = formattedUISourceCode ? this._formatData.get(formattedUIS ourceCode) : null; 285 formattedUISourceCode && formattedUISourceCode[Sources.ScriptFormatter EditorAction._formatDataSymbol];
331 if (formatData) { 286 if (formatData) {
332 this._showIfNeeded( 287 this._showIfNeeded(
333 uiSourceCode, /** @type {!Workspace.UISourceCode} */ (formattedUISou rceCode), formatData.mapping); 288 uiSourceCode, /** @type {!Workspace.UISourceCode} */ (formattedUISou rceCode), formatData.mapping);
289 return;
334 } 290 }
335 return;
336 } 291 }
337 292
338 uiSourceCode.requestContent().then(contentLoaded.bind(this)); 293 uiSourceCode.requestContent().then(contentLoaded.bind(this));
339 294
340 /** 295 /**
341 * @this {Sources.ScriptFormatterEditorAction} 296 * @this {Sources.ScriptFormatterEditorAction}
342 * @param {?string} content 297 * @param {?string} content
343 */ 298 */
344 function contentLoaded(content) { 299 function contentLoaded(content) {
345 var highlighterType = Bindings.NetworkProject.uiSourceCodeMimeType(uiSourc eCode); 300 var highlighterType = Bindings.NetworkProject.uiSourceCodeMimeType(uiSourc eCode);
346 Sources.Formatter.format(uiSourceCode.contentType(), highlighterType, cont ent || '', innerCallback.bind(this)); 301 Sources.Formatter.format(uiSourceCode.contentType(), highlighterType, cont ent || '', innerCallback.bind(this));
347 } 302 }
348 303
349 /** 304 /**
350 * @this {Sources.ScriptFormatterEditorAction} 305 * @this {Sources.ScriptFormatterEditorAction}
351 * @param {string} formattedContent 306 * @param {string} formattedContent
352 * @param {!Sources.FormatterSourceMapping} formatterMapping 307 * @param {!Sources.FormatterSourceMapping} formatterMapping
353 */ 308 */
354 function innerCallback(formattedContent, formatterMapping) { 309 function innerCallback(formattedContent, formatterMapping) {
355 var scripts = this._scriptsForUISourceCode(uiSourceCode);
356 var formattedURL = uiSourceCode.url() + ':formatted'; 310 var formattedURL = uiSourceCode.url() + ':formatted';
357 var contentProvider = 311 var contentProvider =
358 Common.StaticContentProvider.fromString(formattedURL, uiSourceCode.con tentType(), formattedContent); 312 Common.StaticContentProvider.fromString(formattedURL, uiSourceCode.con tentType(), formattedContent);
359 var formattedUISourceCode = this._project.addContentProvider(formattedURL, contentProvider); 313 var formattedUISourceCode = this._project.addContentProvider(formattedURL, contentProvider);
360 var formattedPath = formattedUISourceCode.url(); 314 var formatData =
361 var formatData = new Sources.FormatterScriptMapping.FormatData( 315 new Sources.FormatterScriptMapping.FormatData(uiSourceCode, formattedU ISourceCode, formatterMapping);
362 uiSourceCode.project().id(), uiSourceCode.url(), formatterMapping, scr ipts); 316 formattedUISourceCode[Sources.ScriptFormatterEditorAction._formatDataSymbo l] = formatData;
363 this._formatData.set(formattedUISourceCode, formatData); 317
364 var path = uiSourceCode.project().id() + ':' + uiSourceCode.url(); 318 var path = formatData.originalPath();
365 this._formattedPaths.set(path, formattedPath); 319 this._formattedPaths.set(path, formattedUISourceCode.url());
366 this._pathsToFormatOnLoad.add(path); 320 this._pathsToFormatOnLoad.add(path);
367 for (var i = 0; i < scripts.length; ++i) { 321
368 this._uiSourceCodes.set(scripts[i], formattedUISourceCode); 322 var scripts = Sources.ScriptFormatterEditorAction._scriptsForUISourceCode( uiSourceCode);
369 var scriptMapping = 323 if (!scripts)
370 /** @type {!Sources.FormatterScriptMapping} */ ( 324 return;
371 this._scriptMappingByDebuggerModel.get(scripts[i].debuggerModel) ); 325 for (var script of scripts) {
372 Bindings.debuggerWorkspaceBinding.pushSourceMapping(scripts[i], scriptMa pping); 326 script[Sources.ScriptFormatterEditorAction._formatDataSymbol] = formatDa ta;
327 Bindings.debuggerWorkspaceBinding.pushSourceMapping(script, this._script Mapping);
373 } 328 }
374 329
375 var debuggerModels = SDK.targetManager.models(SDK.DebuggerModel); 330 Bindings.debuggerWorkspaceBinding.setSourceMapping(
376 for (var i = 0; i < debuggerModels.length; ++i) { 331 scripts[0].debuggerModel, formattedUISourceCode, this._scriptMapping);
377 var scriptMapping =
378 /** @type {!Sources.FormatterScriptMapping} */ (this._scriptMappingB yDebuggerModel.get(debuggerModels[i]));
379 Bindings.debuggerWorkspaceBinding.setSourceMapping(debuggerModels[i], fo rmattedUISourceCode, scriptMapping);
380 }
381 332
382 for (var decoration of uiSourceCode.allDecorations()) { 333 for (var decoration of uiSourceCode.allDecorations()) {
383 var range = decoration.range(); 334 var range = decoration.range();
384 var startLocation = formatterMapping.originalToFormatted(range.startLine , range.startColumn); 335 var startLocation = formatterMapping.originalToFormatted(range.startLine , range.startColumn);
385 var endLocation = formatterMapping.originalToFormatted(range.endLine, ra nge.endColumn); 336 var endLocation = formatterMapping.originalToFormatted(range.endLine, ra nge.endColumn);
386 337
387 formattedUISourceCode.addDecoration( 338 formattedUISourceCode.addDecoration(
388 new TextUtils.TextRange(startLocation[0], startLocation[1], endLocat ion[0], endLocation[1]), 339 new TextUtils.TextRange(startLocation[0], startLocation[1], endLocat ion[0], endLocation[1]),
389 /** @type {string} */ (decoration.type()), decoration.data()); 340 /** @type {string} */ (decoration.type()), decoration.data());
390 } 341 }
391 342
392 this._showIfNeeded(uiSourceCode, formattedUISourceCode, formatterMapping); 343 this._showIfNeeded(uiSourceCode, formattedUISourceCode, formatterMapping);
393 } 344 }
394 } 345 }
395 }; 346 };
347
348 Sources.ScriptFormatterEditorAction._formatDataSymbol = Symbol('formatData');
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698