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

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

Issue 2769843003: DevTools: split text_utils out of common module (Closed)
Patch Set: rebaseline Created 3 years, 9 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 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 Sass.SASSSupport = {}; 4 Sass.SASSSupport = {};
5 5
6 /** 6 /**
7 * @param {string} url 7 * @param {string} url
8 * @param {string} content 8 * @param {string} content
9 * @return {!Promise<!Sass.SASSSupport.AST>} 9 * @return {!Promise<!Sass.SASSSupport.AST>}
10 */ 10 */
11 Sass.SASSSupport.parseSCSS = function(url, content) { 11 Sass.SASSSupport.parseSCSS = function(url, content) {
12 var text = new Common.Text(content); 12 var text = new TextUtils.Text(content);
13 var document = new Sass.SASSSupport.ASTDocument(url, text); 13 var document = new Sass.SASSSupport.ASTDocument(url, text);
14 14
15 return Common.formatterWorkerPool.parseSCSS(content).then(onParsed); 15 return Common.formatterWorkerPool.parseSCSS(content).then(onParsed);
16 16
17 /** 17 /**
18 * @param {!Array<!Common.FormatterWorkerPool.SCSSRule>} rulePayloads 18 * @param {!Array<!Common.FormatterWorkerPool.SCSSRule>} rulePayloads
19 * @return {!Sass.SASSSupport.AST} 19 * @return {!Sass.SASSSupport.AST}
20 */ 20 */
21 function onParsed(rulePayloads) { 21 function onParsed(rulePayloads) {
22 var rules = []; 22 var rules = [];
23 for (var i = 0; i < rulePayloads.length; ++i) { 23 for (var i = 0; i < rulePayloads.length; ++i) {
24 var rulePayload = rulePayloads[i]; 24 var rulePayload = rulePayloads[i];
25 var selectors = rulePayload.selectors.map(createTextNode); 25 var selectors = rulePayload.selectors.map(createTextNode);
26 var properties = rulePayload.properties.map(createProperty); 26 var properties = rulePayload.properties.map(createProperty);
27 var range = Common.TextRange.fromObject(rulePayload.styleRange); 27 var range = TextUtils.TextRange.fromObject(rulePayload.styleRange);
28 var rule = new Sass.SASSSupport.Rule(document, selectors, range, propertie s); 28 var rule = new Sass.SASSSupport.Rule(document, selectors, range, propertie s);
29 rules.push(rule); 29 rules.push(rule);
30 } 30 }
31 return new Sass.SASSSupport.AST(document, rules); 31 return new Sass.SASSSupport.AST(document, rules);
32 } 32 }
33 33
34 /** 34 /**
35 * @param {!Object} payload 35 * @param {!Object} payload
36 */ 36 */
37 function createTextNode(payload) { 37 function createTextNode(payload) {
38 var range = Common.TextRange.fromObject(payload); 38 var range = TextUtils.TextRange.fromObject(payload);
39 return new Sass.SASSSupport.TextNode(document, text.extract(range), range); 39 return new Sass.SASSSupport.TextNode(document, text.extract(range), range);
40 } 40 }
41 41
42 /** 42 /**
43 * @param {!Object} payload 43 * @param {!Object} payload
44 */ 44 */
45 function createProperty(payload) { 45 function createProperty(payload) {
46 var name = createTextNode(payload.name); 46 var name = createTextNode(payload.name);
47 var value = createTextNode(payload.value); 47 var value = createTextNode(payload.value);
48 return new Sass.SASSSupport.Property( 48 return new Sass.SASSSupport.Property(
49 document, name, value, Common.TextRange.fromObject(payload.range), paylo ad.disabled); 49 document, name, value, TextUtils.TextRange.fromObject(payload.range), pa yload.disabled);
50 } 50 }
51 }; 51 };
52 52
53 /** 53 /**
54 * @unrestricted 54 * @unrestricted
55 */ 55 */
56 Sass.SASSSupport.ASTDocument = class { 56 Sass.SASSSupport.ASTDocument = class {
57 /** 57 /**
58 * @param {string} url 58 * @param {string} url
59 * @param {!Common.Text} text 59 * @param {!TextUtils.Text} text
60 */ 60 */
61 constructor(url, text) { 61 constructor(url, text) {
62 this.url = url; 62 this.url = url;
63 this.text = text; 63 this.text = text;
64 this.edits = []; 64 this.edits = [];
65 } 65 }
66 66
67 /** 67 /**
68 * @return {!Sass.SASSSupport.ASTDocument} 68 * @return {!Sass.SASSSupport.ASTDocument}
69 */ 69 */
70 clone() { 70 clone() {
71 return new Sass.SASSSupport.ASTDocument(this.url, this.text); 71 return new Sass.SASSSupport.ASTDocument(this.url, this.text);
72 } 72 }
73 73
74 /** 74 /**
75 * @return {boolean} 75 * @return {boolean}
76 */ 76 */
77 hasChanged() { 77 hasChanged() {
78 return !!this.edits.length; 78 return !!this.edits.length;
79 } 79 }
80 80
81 /** 81 /**
82 * @return {!Common.Text} 82 * @return {!TextUtils.Text}
83 */ 83 */
84 newText() { 84 newText() {
85 this.edits.stableSort(sequentialOrder); 85 this.edits.stableSort(sequentialOrder);
86 var text = this.text; 86 var text = this.text;
87 for (var i = this.edits.length - 1; i >= 0; --i) { 87 for (var i = this.edits.length - 1; i >= 0; --i) {
88 var range = this.edits[i].oldRange; 88 var range = this.edits[i].oldRange;
89 var newText = this.edits[i].newText; 89 var newText = this.edits[i].newText;
90 text = new Common.Text(text.replaceRange(range, newText)); 90 text = new TextUtils.Text(text.replaceRange(range, newText));
91 } 91 }
92 return text; 92 return text;
93 93
94 /** 94 /**
95 * @param {!Common.SourceEdit} edit1 95 * @param {!TextUtils.SourceEdit} edit1
96 * @param {!Common.SourceEdit} edit2 96 * @param {!TextUtils.SourceEdit} edit2
97 * @return {number} 97 * @return {number}
98 */ 98 */
99 function sequentialOrder(edit1, edit2) { 99 function sequentialOrder(edit1, edit2) {
100 var range1 = edit1.oldRange.collapseToStart(); 100 var range1 = edit1.oldRange.collapseToStart();
101 var range2 = edit2.oldRange.collapseToStart(); 101 var range2 = edit2.oldRange.collapseToStart();
102 if (range1.equal(range2)) 102 if (range1.equal(range2))
103 return 0; 103 return 0;
104 return range1.follows(range2) ? 1 : -1; 104 return range1.follows(range2) ? 1 : -1;
105 } 105 }
106 } 106 }
(...skipping 11 matching lines...) Expand all
118 } 118 }
119 }; 119 };
120 120
121 /** 121 /**
122 * @unrestricted 122 * @unrestricted
123 */ 123 */
124 Sass.SASSSupport.TextNode = class extends Sass.SASSSupport.Node { 124 Sass.SASSSupport.TextNode = class extends Sass.SASSSupport.Node {
125 /** 125 /**
126 * @param {!Sass.SASSSupport.ASTDocument} document 126 * @param {!Sass.SASSSupport.ASTDocument} document
127 * @param {string} text 127 * @param {string} text
128 * @param {!Common.TextRange} range 128 * @param {!TextUtils.TextRange} range
129 */ 129 */
130 constructor(document, text, range) { 130 constructor(document, text, range) {
131 super(document); 131 super(document);
132 this.text = text; 132 this.text = text;
133 this.range = range; 133 this.range = range;
134 } 134 }
135 135
136 /** 136 /**
137 * @param {string} newText 137 * @param {string} newText
138 */ 138 */
139 setText(newText) { 139 setText(newText) {
140 if (this.text === newText) 140 if (this.text === newText)
141 return; 141 return;
142 this.text = newText; 142 this.text = newText;
143 this.document.edits.push(new Common.SourceEdit(this.document.url, this.range , newText)); 143 this.document.edits.push(new TextUtils.SourceEdit(this.document.url, this.ra nge, newText));
144 } 144 }
145 145
146 /** 146 /**
147 * @param {!Sass.SASSSupport.ASTDocument} document 147 * @param {!Sass.SASSSupport.ASTDocument} document
148 * @return {!Sass.SASSSupport.TextNode} 148 * @return {!Sass.SASSSupport.TextNode}
149 */ 149 */
150 clone(document) { 150 clone(document) {
151 return new Sass.SASSSupport.TextNode(document, this.text, this.range.clone() ); 151 return new Sass.SASSSupport.TextNode(document, this.text, this.range.clone() );
152 } 152 }
153 153
(...skipping 12 matching lines...) Expand all
166 }; 166 };
167 167
168 /** 168 /**
169 * @unrestricted 169 * @unrestricted
170 */ 170 */
171 Sass.SASSSupport.Property = class extends Sass.SASSSupport.Node { 171 Sass.SASSSupport.Property = class extends Sass.SASSSupport.Node {
172 /** 172 /**
173 * @param {!Sass.SASSSupport.ASTDocument} document 173 * @param {!Sass.SASSSupport.ASTDocument} document
174 * @param {!Sass.SASSSupport.TextNode} name 174 * @param {!Sass.SASSSupport.TextNode} name
175 * @param {!Sass.SASSSupport.TextNode} value 175 * @param {!Sass.SASSSupport.TextNode} value
176 * @param {!Common.TextRange} range 176 * @param {!TextUtils.TextRange} range
177 * @param {boolean} disabled 177 * @param {boolean} disabled
178 */ 178 */
179 constructor(document, name, value, range, disabled) { 179 constructor(document, name, value, range, disabled) {
180 super(document); 180 super(document);
181 this.name = name; 181 this.name = name;
182 this.value = value; 182 this.value = value;
183 this.range = range; 183 this.range = range;
184 this.name.parent = this; 184 this.name.parent = this;
185 this.value.parent = this; 185 this.value.parent = this;
186 this.disabled = disabled; 186 this.disabled = disabled;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 } 218 }
219 219
220 /** 220 /**
221 * @param {boolean} disabled 221 * @param {boolean} disabled
222 */ 222 */
223 setDisabled(disabled) { 223 setDisabled(disabled) {
224 if (this.disabled === disabled) 224 if (this.disabled === disabled)
225 return; 225 return;
226 this.disabled = disabled; 226 this.disabled = disabled;
227 if (disabled) { 227 if (disabled) {
228 var oldRange1 = Common.TextRange.createFromLocation(this.range.startLine, this.range.startColumn); 228 var oldRange1 = TextUtils.TextRange.createFromLocation(this.range.startLin e, this.range.startColumn);
229 var edit1 = new Common.SourceEdit(this.document.url, oldRange1, '/* '); 229 var edit1 = new TextUtils.SourceEdit(this.document.url, oldRange1, '/* ');
230 var oldRange2 = Common.TextRange.createFromLocation(this.range.endLine, th is.range.endColumn); 230 var oldRange2 = TextUtils.TextRange.createFromLocation(this.range.endLine, this.range.endColumn);
231 var edit2 = new Common.SourceEdit(this.document.url, oldRange2, ' */'); 231 var edit2 = new TextUtils.SourceEdit(this.document.url, oldRange2, ' */');
232 this.document.edits.push(edit1, edit2); 232 this.document.edits.push(edit1, edit2);
233 return; 233 return;
234 } 234 }
235 var oldRange1 = new Common.TextRange( 235 var oldRange1 = new TextUtils.TextRange(
236 this.range.startLine, this.range.startColumn, this.range.startLine, this .name.range.startColumn); 236 this.range.startLine, this.range.startColumn, this.range.startLine, this .name.range.startColumn);
237 var edit1 = new Common.SourceEdit(this.document.url, oldRange1, ''); 237 var edit1 = new TextUtils.SourceEdit(this.document.url, oldRange1, '');
238 238
239 var propertyText = this.document.text.extract(this.range); 239 var propertyText = this.document.text.extract(this.range);
240 var endsWithSemicolon = propertyText.slice(0, -2).trim().endsWith(';'); 240 var endsWithSemicolon = propertyText.slice(0, -2).trim().endsWith(';');
241 var oldRange2 = new Common.TextRange( 241 var oldRange2 = new TextUtils.TextRange(
242 this.range.endLine, this.value.range.endColumn + (endsWithSemicolon ? 1 : 0), this.range.endLine, 242 this.range.endLine, this.value.range.endColumn + (endsWithSemicolon ? 1 : 0), this.range.endLine,
243 this.range.endColumn); 243 this.range.endColumn);
244 var edit2 = new Common.SourceEdit(this.document.url, oldRange2, ''); 244 var edit2 = new TextUtils.SourceEdit(this.document.url, oldRange2, '');
245 this.document.edits.push(edit1, edit2); 245 this.document.edits.push(edit1, edit2);
246 } 246 }
247 247
248 remove() { 248 remove() {
249 console.assert(this.parent); 249 console.assert(this.parent);
250 var rule = this.parent; 250 var rule = this.parent;
251 var index = rule.properties.indexOf(this); 251 var index = rule.properties.indexOf(this);
252 rule.properties.splice(index, 1); 252 rule.properties.splice(index, 1);
253 this.parent = null; 253 this.parent = null;
254 254
255 var lineRange = new Common.TextRange(this.range.startLine, 0, this.range.end Line + 1, 0); 255 var lineRange = new TextUtils.TextRange(this.range.startLine, 0, this.range. endLine + 1, 0);
256 var oldRange; 256 var oldRange;
257 if (this.document.text.extract(lineRange).trim() === this.document.text.extr act(this.range).trim()) 257 if (this.document.text.extract(lineRange).trim() === this.document.text.extr act(this.range).trim())
258 oldRange = lineRange; 258 oldRange = lineRange;
259 else 259 else
260 oldRange = this.range; 260 oldRange = this.range;
261 this.document.edits.push(new Common.SourceEdit(this.document.url, oldRange, '')); 261 this.document.edits.push(new TextUtils.SourceEdit(this.document.url, oldRang e, ''));
262 } 262 }
263 }; 263 };
264 264
265 /** 265 /**
266 * @unrestricted 266 * @unrestricted
267 */ 267 */
268 Sass.SASSSupport.Rule = class extends Sass.SASSSupport.Node { 268 Sass.SASSSupport.Rule = class extends Sass.SASSSupport.Node {
269 /** 269 /**
270 * @param {!Sass.SASSSupport.ASTDocument} document 270 * @param {!Sass.SASSSupport.ASTDocument} document
271 * @param {!Array<!Sass.SASSSupport.TextNode>} selectors 271 * @param {!Array<!Sass.SASSSupport.TextNode>} selectors
272 * @param {!Common.TextRange} styleRange 272 * @param {!TextUtils.TextRange} styleRange
273 * @param {!Array<!Sass.SASSSupport.Property>} properties 273 * @param {!Array<!Sass.SASSSupport.Property>} properties
274 */ 274 */
275 constructor(document, selectors, styleRange, properties) { 275 constructor(document, selectors, styleRange, properties) {
276 super(document); 276 super(document);
277 this.selectors = selectors; 277 this.selectors = selectors;
278 this.properties = properties; 278 this.properties = properties;
279 this.styleRange = styleRange; 279 this.styleRange = styleRange;
280 280
281 var blockStartRange = styleRange.collapseToStart(); 281 var blockStartRange = styleRange.collapseToStart();
282 blockStartRange.startColumn -= 1; 282 blockStartRange.startColumn -= 1;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 for (var i = 0; result && i < this.properties.length; ++i) 335 for (var i = 0; result && i < this.properties.length; ++i)
336 result = result && this.properties[i].match(other.properties[i], outNodeMa pping); 336 result = result && this.properties[i].match(other.properties[i], outNodeMa pping);
337 return result; 337 return result;
338 } 338 }
339 339
340 _addTrailingSemicolon() { 340 _addTrailingSemicolon() {
341 if (this._hasTrailingSemicolon || !this.properties) 341 if (this._hasTrailingSemicolon || !this.properties)
342 return; 342 return;
343 this._hasTrailingSemicolon = true; 343 this._hasTrailingSemicolon = true;
344 this.document.edits.push( 344 this.document.edits.push(
345 new Common.SourceEdit(this.document.url, this.properties.peekLast().rang e.collapseToEnd(), ';')); 345 new TextUtils.SourceEdit(this.document.url, this.properties.peekLast().r ange.collapseToEnd(), ';'));
346 } 346 }
347 347
348 /** 348 /**
349 * @param {?Sass.SASSSupport.Property} anchorProperty 349 * @param {?Sass.SASSSupport.Property} anchorProperty
350 * @param {!Array<string>} nameTexts 350 * @param {!Array<string>} nameTexts
351 * @param {!Array<string>} valueTexts 351 * @param {!Array<string>} valueTexts
352 * @param {!Array<boolean>} disabledStates 352 * @param {!Array<boolean>} disabledStates
353 * @return {!Array<!Sass.SASSSupport.Property>} 353 * @return {!Array<!Sass.SASSSupport.Property>}
354 */ 354 */
355 insertProperties(anchorProperty, nameTexts, valueTexts, disabledStates) { 355 insertProperties(anchorProperty, nameTexts, valueTexts, disabledStates) {
356 console.assert( 356 console.assert(
357 nameTexts.length === valueTexts.length && valueTexts.length === disabled States.length, 357 nameTexts.length === valueTexts.length && valueTexts.length === disabled States.length,
358 'Input array should be of the same size.'); 358 'Input array should be of the same size.');
359 359
360 this._addTrailingSemicolon(); 360 this._addTrailingSemicolon();
361 var newProperties = []; 361 var newProperties = [];
362 var index = anchorProperty ? this.properties.indexOf(anchorProperty) : -1; 362 var index = anchorProperty ? this.properties.indexOf(anchorProperty) : -1;
363 for (var i = 0; i < nameTexts.length; ++i) { 363 for (var i = 0; i < nameTexts.length; ++i) {
364 var nameText = nameTexts[i]; 364 var nameText = nameTexts[i];
365 var valueText = valueTexts[i]; 365 var valueText = valueTexts[i];
366 var disabled = disabledStates[i]; 366 var disabled = disabledStates[i];
367 this.document.edits.push(this._insertPropertyEdit(anchorProperty, nameText , valueText, disabled)); 367 this.document.edits.push(this._insertPropertyEdit(anchorProperty, nameText , valueText, disabled));
368 368
369 var name = new Sass.SASSSupport.TextNode(this.document, nameText, Common.T extRange.createFromLocation(0, 0)); 369 var name = new Sass.SASSSupport.TextNode(this.document, nameText, TextUtil s.TextRange.createFromLocation(0, 0));
370 var value = new Sass.SASSSupport.TextNode(this.document, valueText, Common .TextRange.createFromLocation(0, 0)); 370 var value = new Sass.SASSSupport.TextNode(this.document, valueText, TextUt ils.TextRange.createFromLocation(0, 0));
371 var newProperty = new Sass.SASSSupport.Property( 371 var newProperty = new Sass.SASSSupport.Property(
372 this.document, name, value, Common.TextRange.createFromLocation(0, 0), disabled); 372 this.document, name, value, TextUtils.TextRange.createFromLocation(0, 0), disabled);
373 373
374 this.properties.splice(index + i + 1, 0, newProperty); 374 this.properties.splice(index + i + 1, 0, newProperty);
375 newProperty.parent = this; 375 newProperty.parent = this;
376 newProperties.push(newProperty); 376 newProperties.push(newProperty);
377 } 377 }
378 return newProperties; 378 return newProperties;
379 } 379 }
380 380
381 /** 381 /**
382 * @param {?Sass.SASSSupport.Property} anchorProperty 382 * @param {?Sass.SASSSupport.Property} anchorProperty
383 * @param {string} nameText 383 * @param {string} nameText
384 * @param {string} valueText 384 * @param {string} valueText
385 * @param {boolean} disabled 385 * @param {boolean} disabled
386 * @return {!Common.SourceEdit} 386 * @return {!TextUtils.SourceEdit}
387 */ 387 */
388 _insertPropertyEdit(anchorProperty, nameText, valueText, disabled) { 388 _insertPropertyEdit(anchorProperty, nameText, valueText, disabled) {
389 var anchorRange = anchorProperty ? anchorProperty.range : this.blockStart.ra nge; 389 var anchorRange = anchorProperty ? anchorProperty.range : this.blockStart.ra nge;
390 var indent = this._computePropertyIndent(); 390 var indent = this._computePropertyIndent();
391 var leftComment = disabled ? '/* ' : ''; 391 var leftComment = disabled ? '/* ' : '';
392 var rightComment = disabled ? ' */' : ''; 392 var rightComment = disabled ? ' */' : '';
393 var newText = String.sprintf('\n%s%s%s: %s;%s', indent, leftComment, nameTex t, valueText, rightComment); 393 var newText = String.sprintf('\n%s%s%s: %s;%s', indent, leftComment, nameTex t, valueText, rightComment);
394 return new Common.SourceEdit(this.document.url, anchorRange.collapseToEnd(), newText); 394 return new TextUtils.SourceEdit(this.document.url, anchorRange.collapseToEnd (), newText);
395 } 395 }
396 396
397 /** 397 /**
398 * @return {string} 398 * @return {string}
399 */ 399 */
400 _computePropertyIndent() { 400 _computePropertyIndent() {
401 var indentProperty = this.properties.find(property => !property.range.isEmpt y()); 401 var indentProperty = this.properties.find(property => !property.range.isEmpt y());
402 var result = ''; 402 var result = '';
403 if (indentProperty) { 403 if (indentProperty) {
404 result = this.document.text.extract(new Common.TextRange( 404 result = this.document.text.extract(new TextUtils.TextRange(
405 indentProperty.range.startLine, 0, indentProperty.range.startLine, ind entProperty.range.startColumn)); 405 indentProperty.range.startLine, 0, indentProperty.range.startLine, ind entProperty.range.startColumn));
406 } else { 406 } else {
407 var lineNumber = this.blockStart.range.startLine; 407 var lineNumber = this.blockStart.range.startLine;
408 var columnNumber = this.blockStart.range.startColumn; 408 var columnNumber = this.blockStart.range.startColumn;
409 var baseLine = this.document.text.extract(new Common.TextRange(lineNumber, 0, lineNumber, columnNumber)); 409 var baseLine = this.document.text.extract(new TextUtils.TextRange(lineNumb er, 0, lineNumber, columnNumber));
410 result = Common.TextUtils.lineIndent(baseLine) + Common.moduleSetting('tex tEditorIndent').get(); 410 result = TextUtils.TextUtils.lineIndent(baseLine) + Common.moduleSetting(' textEditorIndent').get();
411 } 411 }
412 return result.isWhitespace() ? result : ''; 412 return result.isWhitespace() ? result : '';
413 } 413 }
414 }; 414 };
415 415
416 /** 416 /**
417 * @unrestricted 417 * @unrestricted
418 */ 418 */
419 Sass.SASSSupport.AST = class extends Sass.SASSSupport.Node { 419 Sass.SASSSupport.AST = class extends Sass.SASSSupport.Node {
420 /** 420 /**
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 return; 505 return;
506 this._sortedTextNodes.push(node); 506 this._sortedTextNodes.push(node);
507 } 507 }
508 508
509 /** 509 /**
510 * @param {!Sass.SASSSupport.TextNode} text1 510 * @param {!Sass.SASSSupport.TextNode} text1
511 * @param {!Sass.SASSSupport.TextNode} text2 511 * @param {!Sass.SASSSupport.TextNode} text2
512 * @return {number} 512 * @return {number}
513 */ 513 */
514 function nodeComparator(text1, text2) { 514 function nodeComparator(text1, text2) {
515 return Common.TextRange.comparator(text1.range, text2.range); 515 return TextUtils.TextRange.comparator(text1.range, text2.range);
516 } 516 }
517 } 517 }
518 }; 518 };
519 519
520 /** @enum {string} */ 520 /** @enum {string} */
521 Sass.SASSSupport.PropertyChangeType = { 521 Sass.SASSSupport.PropertyChangeType = {
522 PropertyAdded: 'PropertyAdded', 522 PropertyAdded: 'PropertyAdded',
523 PropertyRemoved: 'PropertyRemoved', 523 PropertyRemoved: 'PropertyRemoved',
524 PropertyToggled: 'PropertyToggled', 524 PropertyToggled: 'PropertyToggled',
525 ValueChanged: 'ValueChanged', 525 ValueChanged: 'ValueChanged',
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 mapping.set(oldProperty.name, newProperty.name); 654 mapping.set(oldProperty.name, newProperty.name);
655 mapping.set(oldProperty.value, newProperty.value); 655 mapping.set(oldProperty.value, newProperty.value);
656 if (oldProperty.name.text.trim() !== newProperty.name.text.trim()) 656 if (oldProperty.name.text.trim() !== newProperty.name.text.trim())
657 addChange(T.NameChanged, oldRule, newRule, oldPropertyIndex, newPropertyIn dex); 657 addChange(T.NameChanged, oldRule, newRule, oldPropertyIndex, newPropertyIn dex);
658 if (oldProperty.value.text.trim() !== newProperty.value.text.trim()) 658 if (oldProperty.value.text.trim() !== newProperty.value.text.trim())
659 addChange(T.ValueChanged, oldRule, newRule, oldPropertyIndex, newPropertyI ndex); 659 addChange(T.ValueChanged, oldRule, newRule, oldPropertyIndex, newPropertyI ndex);
660 if (oldProperty.disabled !== newProperty.disabled) 660 if (oldProperty.disabled !== newProperty.disabled)
661 addChange(T.PropertyToggled, oldRule, newRule, oldPropertyIndex, newProper tyIndex); 661 addChange(T.PropertyToggled, oldRule, newRule, oldPropertyIndex, newProper tyIndex);
662 } 662 }
663 }; 663 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698