OLD | NEW |
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 WebInspector.SASSSupport = {} | 5 WebInspector.SASSSupport = {} |
6 | 6 |
7 /** | 7 /** |
8 * @param {!WebInspector.CSSParser} parser | 8 * @param {!WebInspector.CSSParser} parser |
9 * @param {string} url | 9 * @param {string} url |
10 * @param {string} text | 10 * @param {string} text |
(...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 this.type = type; | 587 this.type = type; |
588 this.oldRule = oldRule; | 588 this.oldRule = oldRule; |
589 this.newRule = newRule; | 589 this.newRule = newRule; |
590 this.oldPropertyIndex = oldPropertyIndex; | 590 this.oldPropertyIndex = oldPropertyIndex; |
591 this.newPropertyIndex = newPropertyIndex; | 591 this.newPropertyIndex = newPropertyIndex; |
592 } | 592 } |
593 | 593 |
594 /** | 594 /** |
595 * @constructor | 595 * @constructor |
596 * @param {string} url | 596 * @param {string} url |
| 597 * @param {!WebInspector.SASSSupport.AST} oldAST |
| 598 * @param {!WebInspector.SASSSupport.AST} newAST |
597 * @param {!Map<!WebInspector.SASSSupport.TextNode, !WebInspector.SASSSupport.Te
xtNode>} mapping | 599 * @param {!Map<!WebInspector.SASSSupport.TextNode, !WebInspector.SASSSupport.Te
xtNode>} mapping |
598 * @param {!Array<!WebInspector.SASSSupport.PropertyChange>} changes | 600 * @param {!Array<!WebInspector.SASSSupport.PropertyChange>} changes |
599 */ | 601 */ |
600 WebInspector.SASSSupport.ASTDiff = function(url, mapping, changes) | 602 WebInspector.SASSSupport.ASTDiff = function(url, oldAST, newAST, mapping, change
s) |
601 { | 603 { |
602 this.url = url; | 604 this.url = url; |
603 this.mapping = mapping; | 605 this.mapping = mapping; |
604 this.changes = changes; | 606 this.changes = changes; |
| 607 this.oldAST = oldAST; |
| 608 this.newAST = newAST; |
605 } | 609 } |
606 | 610 |
607 /** | 611 /** |
608 * @param {!WebInspector.SASSSupport.AST} oldAST | 612 * @param {!WebInspector.SASSSupport.AST} oldAST |
609 * @param {!WebInspector.SASSSupport.AST} newAST | 613 * @param {!WebInspector.SASSSupport.AST} newAST |
610 * @return {!WebInspector.SASSSupport.ASTDiff} | 614 * @return {!WebInspector.SASSSupport.ASTDiff} |
611 */ | 615 */ |
612 WebInspector.SASSSupport.diffModels = function(oldAST, newAST) | 616 WebInspector.SASSSupport.diffModels = function(oldAST, newAST) |
613 { | 617 { |
614 console.assert(oldAST.rules.length === newAST.rules.length, "Not implemented
for rule diff."); | 618 console.assert(oldAST.rules.length === newAST.rules.length, "Not implemented
for rule diff."); |
615 console.assert(oldAST.document.url === newAST.document.url, "Diff makes sens
e for models with the same url."); | 619 console.assert(oldAST.document.url === newAST.document.url, "Diff makes sens
e for models with the same url."); |
616 var T = WebInspector.SASSSupport.PropertyChangeType; | 620 var T = WebInspector.SASSSupport.PropertyChangeType; |
617 var changes = []; | 621 var changes = []; |
618 /** @type {!Map<!WebInspector.SASSSupport.TextNode, !WebInspector.SASSSuppor
t.TextNode>} */ | 622 /** @type {!Map<!WebInspector.SASSSupport.TextNode, !WebInspector.SASSSuppor
t.TextNode>} */ |
619 var mapping = new Map(); | 623 var mapping = new Map(); |
620 for (var i = 0; i < oldAST.rules.length; ++i) { | 624 for (var i = 0; i < oldAST.rules.length; ++i) { |
621 var oldRule = oldAST.rules[i]; | 625 var oldRule = oldAST.rules[i]; |
622 var newRule = newAST.rules[i]; | 626 var newRule = newAST.rules[i]; |
623 computeRuleDiff(mapping, oldRule, newRule); | 627 computeRuleDiff(mapping, oldRule, newRule); |
624 } | 628 } |
625 return new WebInspector.SASSSupport.ASTDiff(oldAST.document.url, mapping, ch
anges); | 629 return new WebInspector.SASSSupport.ASTDiff(oldAST.document.url, oldAST, new
AST, mapping, changes); |
626 | 630 |
627 /** | 631 /** |
628 * @param {!WebInspector.SASSSupport.PropertyChangeType} type | 632 * @param {!WebInspector.SASSSupport.PropertyChangeType} type |
629 * @param {!WebInspector.SASSSupport.Rule} oldRule | 633 * @param {!WebInspector.SASSSupport.Rule} oldRule |
630 * @param {!WebInspector.SASSSupport.Rule} newRule | 634 * @param {!WebInspector.SASSSupport.Rule} newRule |
631 * @param {number} oldPropertyIndex | 635 * @param {number} oldPropertyIndex |
632 * @param {number} newPropertyIndex | 636 * @param {number} newPropertyIndex |
633 */ | 637 */ |
634 function addChange(type, oldRule, newRule, oldPropertyIndex, newPropertyInde
x) | 638 function addChange(type, oldRule, newRule, oldPropertyIndex, newPropertyInde
x) |
635 { | 639 { |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
682 mapping.set(oldProperty.name, newProperty.name); | 686 mapping.set(oldProperty.name, newProperty.name); |
683 mapping.set(oldProperty.value, newProperty.value); | 687 mapping.set(oldProperty.value, newProperty.value); |
684 if (oldProperty.name.text.trim() !== newProperty.name.text.trim()) | 688 if (oldProperty.name.text.trim() !== newProperty.name.text.trim()) |
685 addChange(T.NameChanged, oldRule, newRule, oldPropertyIndex, newProp
ertyIndex); | 689 addChange(T.NameChanged, oldRule, newRule, oldPropertyIndex, newProp
ertyIndex); |
686 if (oldProperty.value.text.trim() !== newProperty.value.text.trim()) | 690 if (oldProperty.value.text.trim() !== newProperty.value.text.trim()) |
687 addChange(T.ValueChanged, oldRule, newRule, oldPropertyIndex, newPro
pertyIndex); | 691 addChange(T.ValueChanged, oldRule, newRule, oldPropertyIndex, newPro
pertyIndex); |
688 if (oldProperty.disabled !== newProperty.disabled) | 692 if (oldProperty.disabled !== newProperty.disabled) |
689 addChange(T.PropertyToggled, oldRule, newRule, oldPropertyIndex, new
PropertyIndex); | 693 addChange(T.PropertyToggled, oldRule, newRule, oldPropertyIndex, new
PropertyIndex); |
690 } | 694 } |
691 } | 695 } |
OLD | NEW |