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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.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 /* 1 /*
2 * Copyright (C) 2007 Apple Inc. All rights reserved. 2 * Copyright (C) 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2009 Joseph Pecoraro 3 * Copyright (C) 2009 Joseph Pecoraro
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 styleSheetHeader.requestContent().then(onStyleSheetContent.bind(this, styleS heetHeader.id)); 418 styleSheetHeader.requestContent().then(onStyleSheetContent.bind(this, styleS heetHeader.id));
419 419
420 /** 420 /**
421 * @param {string} styleSheetId 421 * @param {string} styleSheetId
422 * @param {?string} text 422 * @param {?string} text
423 * @this {Elements.StylesSidebarPane} 423 * @this {Elements.StylesSidebarPane}
424 */ 424 */
425 function onStyleSheetContent(styleSheetId, text) { 425 function onStyleSheetContent(styleSheetId, text) {
426 text = text || ''; 426 text = text || '';
427 var lines = text.split('\n'); 427 var lines = text.split('\n');
428 var range = Common.TextRange.createFromLocation(lines.length - 1, lines[li nes.length - 1].length); 428 var range = TextUtils.TextRange.createFromLocation(lines.length - 1, lines [lines.length - 1].length);
429 this._addBlankSection(this._sectionBlocks[0].sections[0], styleSheetId, ra nge); 429 this._addBlankSection(this._sectionBlocks[0].sections[0], styleSheetId, ra nge);
430 } 430 }
431 } 431 }
432 432
433 /** 433 /**
434 * @param {!Elements.StylePropertiesSection} insertAfterSection 434 * @param {!Elements.StylePropertiesSection} insertAfterSection
435 * @param {string} styleSheetId 435 * @param {string} styleSheetId
436 * @param {!Common.TextRange} ruleLocation 436 * @param {!TextUtils.TextRange} ruleLocation
437 */ 437 */
438 _addBlankSection(insertAfterSection, styleSheetId, ruleLocation) { 438 _addBlankSection(insertAfterSection, styleSheetId, ruleLocation) {
439 var node = this.node(); 439 var node = this.node();
440 var blankSection = new Elements.BlankStylePropertiesSection( 440 var blankSection = new Elements.BlankStylePropertiesSection(
441 this, insertAfterSection._matchedStyles, node ? Components.DOMPresentati onUtils.simpleSelector(node) : '', 441 this, insertAfterSection._matchedStyles, node ? Components.DOMPresentati onUtils.simpleSelector(node) : '',
442 styleSheetId, ruleLocation, insertAfterSection._style); 442 styleSheetId, ruleLocation, insertAfterSection._style);
443 443
444 this._sectionsContainer.insertBefore(blankSection.element, insertAfterSectio n.element.nextSibling); 444 this._sectionsContainer.insertBefore(blankSection.element, insertAfterSectio n.element.nextSibling);
445 445
446 for (var block of this._sectionBlocks) { 446 for (var block of this._sectionBlocks) {
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 return link; 686 return link;
687 } 687 }
688 688
689 return createTextNode(''); 689 return createTextNode('');
690 } 690 }
691 691
692 /** 692 /**
693 * @param {!SDK.CSSModel} cssModel 693 * @param {!SDK.CSSModel} cssModel
694 * @param {!Components.Linkifier} linkifier 694 * @param {!Components.Linkifier} linkifier
695 * @param {string} styleSheetId 695 * @param {string} styleSheetId
696 * @param {!Common.TextRange} ruleLocation 696 * @param {!TextUtils.TextRange} ruleLocation
697 * @return {!Node} 697 * @return {!Node}
698 */ 698 */
699 static _linkifyRuleLocation(cssModel, linkifier, styleSheetId, ruleLocation) { 699 static _linkifyRuleLocation(cssModel, linkifier, styleSheetId, ruleLocation) {
700 var styleSheetHeader = cssModel.styleSheetHeaderForId(styleSheetId); 700 var styleSheetHeader = cssModel.styleSheetHeaderForId(styleSheetId);
701 var lineNumber = styleSheetHeader.lineNumberInSource(ruleLocation.startLine) ; 701 var lineNumber = styleSheetHeader.lineNumberInSource(ruleLocation.startLine) ;
702 var columnNumber = styleSheetHeader.columnNumberInSource(ruleLocation.startL ine, ruleLocation.startColumn); 702 var columnNumber = styleSheetHeader.columnNumberInSource(ruleLocation.startL ine, ruleLocation.startColumn);
703 var matchingSelectorLocation = new SDK.CSSLocation(styleSheetHeader, lineNum ber, columnNumber); 703 var matchingSelectorLocation = new SDK.CSSLocation(styleSheetHeader, lineNum ber, columnNumber);
704 return linkifier.linkifyCSSLocation(matchingSelectorLocation); 704 return linkifier.linkifyCSSLocation(matchingSelectorLocation);
705 } 705 }
706 706
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
891 891
892 return curElement ? curElement._section : null; 892 return curElement ? curElement._section : null;
893 } 893 }
894 894
895 /** 895 /**
896 * @param {!Common.Event} event 896 * @param {!Common.Event} event
897 */ 897 */
898 _onNewRuleClick(event) { 898 _onNewRuleClick(event) {
899 event.data.consume(); 899 event.data.consume();
900 var rule = this._style.parentRule; 900 var rule = this._style.parentRule;
901 var range = Common.TextRange.createFromLocation(rule.style.range.endLine, ru le.style.range.endColumn + 1); 901 var range = TextUtils.TextRange.createFromLocation(rule.style.range.endLine, rule.style.range.endColumn + 1);
902 this._parentPane._addBlankSection(this, /** @type {string} */ (rule.styleShe etId), range); 902 this._parentPane._addBlankSection(this, /** @type {string} */ (rule.styleShe etId), range);
903 } 903 }
904 904
905 /** 905 /**
906 * @param {string} propertyName 906 * @param {string} propertyName
907 * @param {!Common.Event} event 907 * @param {!Common.Event} event
908 */ 908 */
909 _onInsertShadowPropertyClick(propertyName, event) { 909 _onInsertShadowPropertyClick(propertyName, event) {
910 event.data.consume(true); 910 event.data.consume(true);
911 var treeElement = this.addNewBlankProperty(); 911 var treeElement = this.addNewBlankProperty();
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after
1556 this._markSelectorMatches(); 1556 this._markSelectorMatches();
1557 } 1557 }
1558 }; 1558 };
1559 1559
1560 Elements.BlankStylePropertiesSection = class extends Elements.StylePropertiesSec tion { 1560 Elements.BlankStylePropertiesSection = class extends Elements.StylePropertiesSec tion {
1561 /** 1561 /**
1562 * @param {!Elements.StylesSidebarPane} stylesPane 1562 * @param {!Elements.StylesSidebarPane} stylesPane
1563 * @param {!SDK.CSSMatchedStyles} matchedStyles 1563 * @param {!SDK.CSSMatchedStyles} matchedStyles
1564 * @param {string} defaultSelectorText 1564 * @param {string} defaultSelectorText
1565 * @param {string} styleSheetId 1565 * @param {string} styleSheetId
1566 * @param {!Common.TextRange} ruleLocation 1566 * @param {!TextUtils.TextRange} ruleLocation
1567 * @param {!SDK.CSSStyleDeclaration} insertAfterStyle 1567 * @param {!SDK.CSSStyleDeclaration} insertAfterStyle
1568 */ 1568 */
1569 constructor(stylesPane, matchedStyles, defaultSelectorText, styleSheetId, rule Location, insertAfterStyle) { 1569 constructor(stylesPane, matchedStyles, defaultSelectorText, styleSheetId, rule Location, insertAfterStyle) {
1570 var cssModel = /** @type {!SDK.CSSModel} */ (stylesPane.cssModel()); 1570 var cssModel = /** @type {!SDK.CSSModel} */ (stylesPane.cssModel());
1571 var rule = SDK.CSSStyleRule.createDummyRule(cssModel, defaultSelectorText); 1571 var rule = SDK.CSSStyleRule.createDummyRule(cssModel, defaultSelectorText);
1572 super(stylesPane, matchedStyles, rule.style); 1572 super(stylesPane, matchedStyles, rule.style);
1573 this._normal = false; 1573 this._normal = false;
1574 this._ruleLocation = ruleLocation; 1574 this._ruleLocation = ruleLocation;
1575 this._styleSheetId = styleSheetId; 1575 this._styleSheetId = styleSheetId;
1576 this._selectorRefElement.removeChildren(); 1576 this._selectorRefElement.removeChildren();
1577 this._selectorRefElement.appendChild(Elements.StylePropertiesSection._linkif yRuleLocation( 1577 this._selectorRefElement.appendChild(Elements.StylePropertiesSection._linkif yRuleLocation(
1578 cssModel, this._parentPane._linkifier, styleSheetId, this._actualRuleLoc ation())); 1578 cssModel, this._parentPane._linkifier, styleSheetId, this._actualRuleLoc ation()));
1579 if (insertAfterStyle && insertAfterStyle.parentRule) 1579 if (insertAfterStyle && insertAfterStyle.parentRule)
1580 this._createMediaList(insertAfterStyle.parentRule.media); 1580 this._createMediaList(insertAfterStyle.parentRule.media);
1581 this.element.classList.add('blank-section'); 1581 this.element.classList.add('blank-section');
1582 } 1582 }
1583 1583
1584 /** 1584 /**
1585 * @return {!Common.TextRange} 1585 * @return {!TextUtils.TextRange}
1586 */ 1586 */
1587 _actualRuleLocation() { 1587 _actualRuleLocation() {
1588 var prefix = this._rulePrefix(); 1588 var prefix = this._rulePrefix();
1589 var lines = prefix.split('\n'); 1589 var lines = prefix.split('\n');
1590 var editRange = new Common.TextRange(0, 0, lines.length - 1, lines.peekLast( ).length); 1590 var editRange = new TextUtils.TextRange(0, 0, lines.length - 1, lines.peekLa st().length);
1591 return this._ruleLocation.rebaseAfterTextEdit(Common.TextRange.createFromLoc ation(0, 0), editRange); 1591 return this._ruleLocation.rebaseAfterTextEdit(TextUtils.TextRange.createFrom Location(0, 0), editRange);
1592 } 1592 }
1593 1593
1594 /** 1594 /**
1595 * @return {string} 1595 * @return {string}
1596 */ 1596 */
1597 _rulePrefix() { 1597 _rulePrefix() {
1598 return this._ruleLocation.startLine === 0 && this._ruleLocation.startColumn === 0 ? '' : '\n\n'; 1598 return this._ruleLocation.startLine === 0 && this._ruleLocation.startColumn === 0 ? '' : '\n\n';
1599 } 1599 }
1600 1600
1601 /** 1601 /**
(...skipping 1411 matching lines...) Expand 10 before | Expand all | Expand 10 after
3013 var regexes = [SDK.CSSMetadata.VariableRegex, SDK.CSSMetadata.URLRegex]; 3013 var regexes = [SDK.CSSMetadata.VariableRegex, SDK.CSSMetadata.URLRegex];
3014 var processors = [createTextNode, this._processURL.bind(this)]; 3014 var processors = [createTextNode, this._processURL.bind(this)];
3015 if (this._bezierHandler && SDK.cssMetadata().isBezierAwareProperty(this._pro pertyName)) { 3015 if (this._bezierHandler && SDK.cssMetadata().isBezierAwareProperty(this._pro pertyName)) {
3016 regexes.push(UI.Geometry.CubicBezier.Regex); 3016 regexes.push(UI.Geometry.CubicBezier.Regex);
3017 processors.push(this._bezierHandler); 3017 processors.push(this._bezierHandler);
3018 } 3018 }
3019 if (this._colorHandler && SDK.cssMetadata().isColorAwareProperty(this._prope rtyName)) { 3019 if (this._colorHandler && SDK.cssMetadata().isColorAwareProperty(this._prope rtyName)) {
3020 regexes.push(Common.Color.Regex); 3020 regexes.push(Common.Color.Regex);
3021 processors.push(this._colorHandler); 3021 processors.push(this._colorHandler);
3022 } 3022 }
3023 var results = Common.TextUtils.splitStringByRegexes(this._propertyValue, reg exes); 3023 var results = TextUtils.TextUtils.splitStringByRegexes(this._propertyValue, regexes);
3024 for (var i = 0; i < results.length; i++) { 3024 for (var i = 0; i < results.length; i++) {
3025 var result = results[i]; 3025 var result = results[i];
3026 var processor = result.regexIndex === -1 ? createTextNode : processors[res ult.regexIndex]; 3026 var processor = result.regexIndex === -1 ? createTextNode : processors[res ult.regexIndex];
3027 valueElement.appendChild(processor(result.value)); 3027 valueElement.appendChild(processor(result.value));
3028 } 3028 }
3029 valueElement.normalize(); 3029 valueElement.normalize();
3030 return valueElement; 3030 return valueElement;
3031 } 3031 }
3032 3032
3033 /** 3033 /**
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
3092 } 3092 }
3093 3093
3094 /** 3094 /**
3095 * @override 3095 * @override
3096 * @return {!UI.ToolbarItem} 3096 * @return {!UI.ToolbarItem}
3097 */ 3097 */
3098 item() { 3098 item() {
3099 return this._button; 3099 return this._button;
3100 } 3100 }
3101 }; 3101 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698