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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sass/ASTSourceMap.js

Issue 2493373002: DevTools: rename WebInspector into modules. (Closed)
Patch Set: for bots 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 * @implements {WebInspector.SourceMap} 5 * @implements {SDK.SourceMap}
6 * @unrestricted 6 * @unrestricted
7 */ 7 */
8 WebInspector.ASTSourceMap = class { 8 Sass.ASTSourceMap = class {
9 /** 9 /**
10 * @param {string} compiledURL 10 * @param {string} compiledURL
11 * @param {string} sourceMapURL 11 * @param {string} sourceMapURL
12 * @param {!Map<string, !WebInspector.SASSSupport.AST>} models 12 * @param {!Map<string, !Sass.SASSSupport.AST>} models
13 * @param {?function(!WebInspector.ASTSourceMap, !Array<!WebInspector.TextRang e>, !Array<string>):!Promise<?WebInspector.SourceMap.EditResult>} editCallback 13 * @param {?function(!Sass.ASTSourceMap, !Array<!Common.TextRange>, !Array<str ing>):!Promise<?SDK.SourceMap.EditResult>} editCallback
14 */ 14 */
15 constructor(compiledURL, sourceMapURL, models, editCallback) { 15 constructor(compiledURL, sourceMapURL, models, editCallback) {
16 this._editCallback = editCallback; 16 this._editCallback = editCallback;
17 this._compiledURL = compiledURL; 17 this._compiledURL = compiledURL;
18 this._sourceMapURL = sourceMapURL; 18 this._sourceMapURL = sourceMapURL;
19 /** @type {!Map<string, !WebInspector.SASSSupport.AST>} */ 19 /** @type {!Map<string, !Sass.SASSSupport.AST>} */
20 this._models = models; 20 this._models = models;
21 /** @type {!Map<!WebInspector.SASSSupport.TextNode, !WebInspector.SASSSuppor t.TextNode>} */ 21 /** @type {!Map<!Sass.SASSSupport.TextNode, !Sass.SASSSupport.TextNode>} */
22 this._compiledToSource = new Map(); 22 this._compiledToSource = new Map();
23 /** @type {!Multimap<!WebInspector.SASSSupport.TextNode, !WebInspector.SASSS upport.TextNode>} */ 23 /** @type {!Multimap<!Sass.SASSSupport.TextNode, !Sass.SASSSupport.TextNode> } */
24 this._sourceToCompiled = new Multimap(); 24 this._sourceToCompiled = new Multimap();
25 } 25 }
26 26
27 /** 27 /**
28 * @override 28 * @override
29 * @return {string} 29 * @return {string}
30 */ 30 */
31 compiledURL() { 31 compiledURL() {
32 return this._compiledURL; 32 return this._compiledURL;
33 } 33 }
(...skipping 10 matching lines...) Expand all
44 * @override 44 * @override
45 * @return {!Array<string>} 45 * @return {!Array<string>}
46 */ 46 */
47 sourceURLs() { 47 sourceURLs() {
48 return this._models.keysArray().filter(url => url !== this._compiledURL); 48 return this._models.keysArray().filter(url => url !== this._compiledURL);
49 } 49 }
50 50
51 /** 51 /**
52 * @override 52 * @override
53 * @param {string} sourceURL 53 * @param {string} sourceURL
54 * @param {!WebInspector.ResourceType} contentType 54 * @param {!Common.ResourceType} contentType
55 * @return {!WebInspector.ContentProvider} 55 * @return {!Common.ContentProvider}
56 */ 56 */
57 sourceContentProvider(sourceURL, contentType) { 57 sourceContentProvider(sourceURL, contentType) {
58 var model = this.modelForURL(sourceURL); 58 var model = this.modelForURL(sourceURL);
59 var sourceContent = model ? model.document.text.value() : ''; 59 var sourceContent = model ? model.document.text.value() : '';
60 return WebInspector.StaticContentProvider.fromString(sourceURL, contentType, sourceContent); 60 return Common.StaticContentProvider.fromString(sourceURL, contentType, sourc eContent);
61 } 61 }
62 62
63 /** 63 /**
64 * @override 64 * @override
65 * @param {string} sourceURL 65 * @param {string} sourceURL
66 * @return {?string} 66 * @return {?string}
67 */ 67 */
68 embeddedContentByURL(sourceURL) { 68 embeddedContentByURL(sourceURL) {
69 var model = this.modelForURL(sourceURL); 69 var model = this.modelForURL(sourceURL);
70 return model ? model.document.text.value() : ''; 70 return model ? model.document.text.value() : '';
71 } 71 }
72 72
73 /** 73 /**
74 * @override 74 * @override
75 * @param {number} lineNumber 75 * @param {number} lineNumber
76 * @param {number=} columnNumber 76 * @param {number=} columnNumber
77 * @return {?WebInspector.SourceMapEntry} 77 * @return {?SDK.SourceMapEntry}
78 */ 78 */
79 findEntry(lineNumber, columnNumber) { 79 findEntry(lineNumber, columnNumber) {
80 columnNumber = columnNumber || 0; 80 columnNumber = columnNumber || 0;
81 var compiledNode = this.compiledModel().findNodeForPosition(lineNumber, colu mnNumber); 81 var compiledNode = this.compiledModel().findNodeForPosition(lineNumber, colu mnNumber);
82 if (!compiledNode) 82 if (!compiledNode)
83 return null; 83 return null;
84 var sourceNode = this.toSourceNode(compiledNode); 84 var sourceNode = this.toSourceNode(compiledNode);
85 if (!sourceNode) 85 if (!sourceNode)
86 return null; 86 return null;
87 return new WebInspector.SourceMapEntry( 87 return new SDK.SourceMapEntry(
88 lineNumber, columnNumber, sourceNode.document.url, sourceNode.range.star tLine, sourceNode.range.startColumn); 88 lineNumber, columnNumber, sourceNode.document.url, sourceNode.range.star tLine, sourceNode.range.startColumn);
89 } 89 }
90 90
91 /** 91 /**
92 * @override 92 * @override
93 * @return {boolean} 93 * @return {boolean}
94 */ 94 */
95 editable() { 95 editable() {
96 return !!this._editCallback; 96 return !!this._editCallback;
97 } 97 }
98 98
99 /** 99 /**
100 * @override 100 * @override
101 * @param {!Array<!WebInspector.TextRange>} ranges 101 * @param {!Array<!Common.TextRange>} ranges
102 * @param {!Array<string>} texts 102 * @param {!Array<string>} texts
103 * @return {!Promise<?WebInspector.SourceMap.EditResult>} 103 * @return {!Promise<?SDK.SourceMap.EditResult>}
104 */ 104 */
105 editCompiled(ranges, texts) { 105 editCompiled(ranges, texts) {
106 return this._editCallback.call(null, this, ranges, texts); 106 return this._editCallback.call(null, this, ranges, texts);
107 } 107 }
108 108
109 /** 109 /**
110 * @return {!WebInspector.SASSSupport.AST} 110 * @return {!Sass.SASSSupport.AST}
111 */ 111 */
112 compiledModel() { 112 compiledModel() {
113 return /** @type {!WebInspector.SASSSupport.AST} */ (this._models.get(this._ compiledURL)); 113 return /** @type {!Sass.SASSSupport.AST} */ (this._models.get(this._compiled URL));
114 } 114 }
115 115
116 /** 116 /**
117 * @return {!Map<string, !WebInspector.SASSSupport.AST>} 117 * @return {!Map<string, !Sass.SASSSupport.AST>}
118 */ 118 */
119 sourceModels() { 119 sourceModels() {
120 var sourceModels = /** @type {!Map<string, !WebInspector.SASSSupport.AST>} * / (new Map(this._models)); 120 var sourceModels = /** @type {!Map<string, !Sass.SASSSupport.AST>} */ (new M ap(this._models));
121 sourceModels.delete(this._compiledURL); 121 sourceModels.delete(this._compiledURL);
122 return sourceModels; 122 return sourceModels;
123 } 123 }
124 124
125 /** 125 /**
126 * @return {!Map<string, !WebInspector.SASSSupport.AST>} 126 * @return {!Map<string, !Sass.SASSSupport.AST>}
127 */ 127 */
128 models() { 128 models() {
129 return /** @type {!Map<string, !WebInspector.SASSSupport.AST>} */ (new Map(t his._models)); 129 return /** @type {!Map<string, !Sass.SASSSupport.AST>} */ (new Map(this._mod els));
130 } 130 }
131 131
132 /** 132 /**
133 * @param {string} url 133 * @param {string} url
134 * @return {?WebInspector.SASSSupport.AST} 134 * @return {?Sass.SASSSupport.AST}
135 */ 135 */
136 modelForURL(url) { 136 modelForURL(url) {
137 return this._models.get(url) || null; 137 return this._models.get(url) || null;
138 } 138 }
139 139
140 /** 140 /**
141 * @param {!WebInspector.SASSSupport.TextNode} compiled 141 * @param {!Sass.SASSSupport.TextNode} compiled
142 * @param {!WebInspector.SASSSupport.TextNode} source 142 * @param {!Sass.SASSSupport.TextNode} source
143 */ 143 */
144 addMapping(compiled, source) { 144 addMapping(compiled, source) {
145 this._compiledToSource.set(compiled, source); 145 this._compiledToSource.set(compiled, source);
146 this._sourceToCompiled.set(source, compiled); 146 this._sourceToCompiled.set(source, compiled);
147 } 147 }
148 148
149 /** 149 /**
150 * @param {!WebInspector.SASSSupport.TextNode} compiled 150 * @param {!Sass.SASSSupport.TextNode} compiled
151 * @param {!WebInspector.SASSSupport.TextNode} source 151 * @param {!Sass.SASSSupport.TextNode} source
152 */ 152 */
153 removeMapping(compiled, source) { 153 removeMapping(compiled, source) {
154 this._compiledToSource.delete(compiled); 154 this._compiledToSource.delete(compiled);
155 this._sourceToCompiled.remove(source, compiled); 155 this._sourceToCompiled.remove(source, compiled);
156 } 156 }
157 157
158 /** 158 /**
159 * @param {!WebInspector.SASSSupport.TextNode} compiled 159 * @param {!Sass.SASSSupport.TextNode} compiled
160 * @return {?WebInspector.SASSSupport.TextNode} 160 * @return {?Sass.SASSSupport.TextNode}
161 */ 161 */
162 toSourceNode(compiled) { 162 toSourceNode(compiled) {
163 return this._compiledToSource.get(compiled) || null; 163 return this._compiledToSource.get(compiled) || null;
164 } 164 }
165 165
166 /** 166 /**
167 * @param {!WebInspector.SASSSupport.TextNode} source 167 * @param {!Sass.SASSSupport.TextNode} source
168 * @return {!Array<!WebInspector.SASSSupport.TextNode>} 168 * @return {!Array<!Sass.SASSSupport.TextNode>}
169 */ 169 */
170 toCompiledNodes(source) { 170 toCompiledNodes(source) {
171 var compiledNodes = this._sourceToCompiled.get(source); 171 var compiledNodes = this._sourceToCompiled.get(source);
172 return compiledNodes ? compiledNodes.valuesArray() : []; 172 return compiledNodes ? compiledNodes.valuesArray() : [];
173 } 173 }
174 174
175 /** 175 /**
176 * @param {!Array<!WebInspector.SASSSupport.AST>} updated 176 * @param {!Array<!Sass.SASSSupport.AST>} updated
177 * @param {!Map<!WebInspector.SASSSupport.Node, !WebInspector.SASSSupport.Node >=} outNodeMapping 177 * @param {!Map<!Sass.SASSSupport.Node, !Sass.SASSSupport.Node>=} outNodeMappi ng
178 * @return {?WebInspector.ASTSourceMap} 178 * @return {?Sass.ASTSourceMap}
179 */ 179 */
180 rebase(updated, outNodeMapping) { 180 rebase(updated, outNodeMapping) {
181 outNodeMapping = outNodeMapping || new Map(); 181 outNodeMapping = outNodeMapping || new Map();
182 outNodeMapping.clear(); 182 outNodeMapping.clear();
183 183
184 var models = /** @type {!Map<string, !WebInspector.SASSSupport.AST>} */ (new Map(this._models)); 184 var models = /** @type {!Map<string, !Sass.SASSSupport.AST>} */ (new Map(thi s._models));
185 for (var newAST of updated) { 185 for (var newAST of updated) {
186 var oldAST = models.get(newAST.document.url); 186 var oldAST = models.get(newAST.document.url);
187 if (!oldAST.match(newAST, outNodeMapping)) 187 if (!oldAST.match(newAST, outNodeMapping))
188 return null; 188 return null;
189 models.set(newAST.document.url, newAST); 189 models.set(newAST.document.url, newAST);
190 } 190 }
191 191
192 var newMap = new WebInspector.ASTSourceMap(this._compiledURL, this._sourceMa pURL, models, this._editCallback); 192 var newMap = new Sass.ASTSourceMap(this._compiledURL, this._sourceMapURL, mo dels, this._editCallback);
193 var compiledNodes = this._compiledToSource.keysArray(); 193 var compiledNodes = this._compiledToSource.keysArray();
194 for (var i = 0; i < compiledNodes.length; ++i) { 194 for (var i = 0; i < compiledNodes.length; ++i) {
195 var compiledNode = compiledNodes[i]; 195 var compiledNode = compiledNodes[i];
196 var sourceNode = /** @type {!WebInspector.SASSSupport.TextNode} */ (this._ compiledToSource.get(compiledNode)); 196 var sourceNode = /** @type {!Sass.SASSSupport.TextNode} */ (this._compiled ToSource.get(compiledNode));
197 var mappedCompiledNode = 197 var mappedCompiledNode =
198 /** @type {!WebInspector.SASSSupport.TextNode} */ (outNodeMapping.get( compiledNode) || compiledNode); 198 /** @type {!Sass.SASSSupport.TextNode} */ (outNodeMapping.get(compiled Node) || compiledNode);
199 var mappedSourceNode = 199 var mappedSourceNode =
200 /** @type {!WebInspector.SASSSupport.TextNode} */ (outNodeMapping.get( sourceNode) || sourceNode); 200 /** @type {!Sass.SASSSupport.TextNode} */ (outNodeMapping.get(sourceNo de) || sourceNode);
201 newMap.addMapping(mappedCompiledNode, mappedSourceNode); 201 newMap.addMapping(mappedCompiledNode, mappedSourceNode);
202 } 202 }
203 return newMap; 203 return newMap;
204 } 204 }
205 }; 205 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698