| OLD | NEW |
| 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 Sass.SASSProcessor = class { | 7 Sass.SASSProcessor = class { |
| 8 /** | 8 /** |
| 9 * @param {!Sass.ASTService} astService | 9 * @param {!Sass.ASTService} astService |
| 10 * @param {!Sass.ASTSourceMap} map | 10 * @param {!Sass.ASTSourceMap} map |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 * @param {!Sass.SASSSupport.Property} sassProperty | 31 * @param {!Sass.SASSSupport.Property} sassProperty |
| 32 * @return {!Array<!Sass.SASSSupport.Property>} | 32 * @return {!Array<!Sass.SASSSupport.Property>} |
| 33 */ | 33 */ |
| 34 static _toCSSProperties(map, sassProperty) { | 34 static _toCSSProperties(map, sassProperty) { |
| 35 return map.toCompiledNodes(sassProperty.name).map(name => name.parent); | 35 return map.toCompiledNodes(sassProperty.name).map(name => name.parent); |
| 36 } | 36 } |
| 37 | 37 |
| 38 /** | 38 /** |
| 39 * @param {!Sass.ASTService} astService | 39 * @param {!Sass.ASTService} astService |
| 40 * @param {!Sass.ASTSourceMap} map | 40 * @param {!Sass.ASTSourceMap} map |
| 41 * @param {!Array<!Common.TextRange>} ranges | 41 * @param {!Array<!TextUtils.TextRange>} ranges |
| 42 * @param {!Array<string>} newTexts | 42 * @param {!Array<string>} newTexts |
| 43 * @return {!Promise<?SDK.SourceMap.EditResult>} | 43 * @return {!Promise<?SDK.SourceMap.EditResult>} |
| 44 */ | 44 */ |
| 45 static processCSSEdits(astService, map, ranges, newTexts) { | 45 static processCSSEdits(astService, map, ranges, newTexts) { |
| 46 console.assert(ranges.length === newTexts.length); | 46 console.assert(ranges.length === newTexts.length); |
| 47 var cssURL = map.compiledURL(); | 47 var cssURL = map.compiledURL(); |
| 48 var cssText = map.compiledModel().document.text; | 48 var cssText = map.compiledModel().document.text; |
| 49 for (var i = 0; i < ranges.length; ++i) | 49 for (var i = 0; i < ranges.length; ++i) |
| 50 cssText = new Common.Text(cssText.replaceRange(ranges[i], newTexts[i])); | 50 cssText = new TextUtils.Text(cssText.replaceRange(ranges[i], newTexts[i]))
; |
| 51 return astService.parseCSS(cssURL, cssText.value()).then(onCSSParsed); | 51 return astService.parseCSS(cssURL, cssText.value()).then(onCSSParsed); |
| 52 | 52 |
| 53 /** | 53 /** |
| 54 * @param {!Sass.SASSSupport.AST} newCSSAST | 54 * @param {!Sass.SASSSupport.AST} newCSSAST |
| 55 * @return {!Promise<?SDK.SourceMap.EditResult>} | 55 * @return {!Promise<?SDK.SourceMap.EditResult>} |
| 56 */ | 56 */ |
| 57 function onCSSParsed(newCSSAST) { | 57 function onCSSParsed(newCSSAST) { |
| 58 if (newCSSAST.rules.length !== map.compiledModel().rules.length) | 58 if (newCSSAST.rules.length !== map.compiledModel().rules.length) |
| 59 return Promise.resolve(/** @type {?SDK.SourceMap.EditResult} */ (null)); | 59 return Promise.resolve(/** @type {?SDK.SourceMap.EditResult} */ (null)); |
| 60 // TODO(lushnikov): only diff changed styles. | 60 // TODO(lushnikov): only diff changed styles. |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 var nodeMapping = new Map(); | 147 var nodeMapping = new Map(); |
| 148 var map = this._map.rebase(changedModels, nodeMapping); | 148 var map = this._map.rebase(changedModels, nodeMapping); |
| 149 if (!map) | 149 if (!map) |
| 150 return null; | 150 return null; |
| 151 | 151 |
| 152 var cssEdits = []; | 152 var cssEdits = []; |
| 153 for (var rule of changedCSSRules) { | 153 for (var rule of changedCSSRules) { |
| 154 var oldRange = rule.styleRange; | 154 var oldRange = rule.styleRange; |
| 155 var newRule = nodeMapping.get(rule); | 155 var newRule = nodeMapping.get(rule); |
| 156 var newText = newRule.document.text.extract(newRule.styleRange); | 156 var newText = newRule.document.text.extract(newRule.styleRange); |
| 157 cssEdits.push(new Common.SourceEdit(newRule.document.url, oldRange, newTex
t)); | 157 cssEdits.push(new TextUtils.SourceEdit(newRule.document.url, oldRange, new
Text)); |
| 158 } | 158 } |
| 159 | 159 |
| 160 /** @type {!Map<string, string>} */ | 160 /** @type {!Map<string, string>} */ |
| 161 var newSASSSources = new Map(); | 161 var newSASSSources = new Map(); |
| 162 for (var model of changedModels) { | 162 for (var model of changedModels) { |
| 163 if (model.document.url === map.compiledURL()) | 163 if (model.document.url === map.compiledURL()) |
| 164 continue; | 164 continue; |
| 165 newSASSSources.set(model.document.url, model.document.text.value()); | 165 newSASSSources.set(model.document.url, model.document.text.value()); |
| 166 } | 166 } |
| 167 return new SDK.SourceMap.EditResult(map, cssEdits, newSASSSources); | 167 return new SDK.SourceMap.EditResult(map, cssEdits, newSASSSources); |
| (...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 532 rebase(newMap, nodeMapping) { | 532 rebase(newMap, nodeMapping) { |
| 533 var sassRule = /** @type {?Sass.SASSSupport.Rule} */ (nodeMapping.get(this._
sassRule)) || this._sassRule; | 533 var sassRule = /** @type {?Sass.SASSSupport.Rule} */ (nodeMapping.get(this._
sassRule)) || this._sassRule; |
| 534 var afterSASSProperty = this._afterSASSProperty ? | 534 var afterSASSProperty = this._afterSASSProperty ? |
| 535 /** @type {?Sass.SASSSupport.Property} */ (nodeMapping.get(this._afterSA
SSProperty)) || | 535 /** @type {?Sass.SASSSupport.Property} */ (nodeMapping.get(this._afterSA
SSProperty)) || |
| 536 this._afterSASSProperty : | 536 this._afterSASSProperty : |
| 537 null; | 537 null; |
| 538 return new Sass.SASSProcessor.InsertPropertiesOperation( | 538 return new Sass.SASSProcessor.InsertPropertiesOperation( |
| 539 newMap, sassRule, afterSASSProperty, this._nameTexts, this._valueTexts,
this._disabledStates); | 539 newMap, sassRule, afterSASSProperty, this._nameTexts, this._valueTexts,
this._disabledStates); |
| 540 } | 540 } |
| 541 }; | 541 }; |
| OLD | NEW |