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

Unified Diff: packages/csslib/lib/src/css_printer.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « packages/csslib/lib/src/analyzer.dart ('k') | packages/csslib/lib/src/messages.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packages/csslib/lib/src/css_printer.dart
diff --git a/packages/csslib/lib/src/css_printer.dart b/packages/csslib/lib/src/css_printer.dart
index a62ca47755562f04dae48ea7d665568efafe5de1..ac26acb2bf851780b6313e2706b1122ab648e879 100644
--- a/packages/csslib/lib/src/css_printer.dart
+++ b/packages/csslib/lib/src/css_printer.dart
@@ -54,8 +54,11 @@ class CssPrinter extends Visitor {
void visitMediaExpression(MediaExpression node) {
emit(node.andOperator ? ' AND ' : ' ');
- emit('(${node.mediaFeature}:');
- visitExpressions(node.exprs);
+ emit('(${node.mediaFeature}');
+ if (node.exprs.expressions.isNotEmpty) {
+ emit(':');
+ visitExpressions(node.exprs);
+ }
emit(')');
}
@@ -68,31 +71,88 @@ class CssPrinter extends Visitor {
}
}
- void emitMediaQueries(queries) {
+ void emitMediaQueries(List<MediaQuery> queries) {
var queriesLen = queries.length;
for (var i = 0; i < queriesLen; i++) {
var query = queries[i];
- if (query.hasMediaType && i > 0) emit(',');
+ if (i > 0) emit(',');
visitMediaQuery(query);
}
}
+ void visitDocumentDirective(DocumentDirective node) {
+ emit('$_newLine@-moz-document ');
+ node.functions.first.visit(this);
+ for (var function in node.functions.skip(1)) {
+ emit(',$_sp');
+ function.visit(this);
+ }
+ emit('$_sp{');
+ for (var ruleSet in node.groupRuleBody) {
+ ruleSet.visit(this);
+ }
+ emit('$_newLine}');
+ }
+
+ void visitSupportsDirective(SupportsDirective node) {
+ emit('$_newLine@supports ');
+ node.condition.visit(this);
+ emit('$_sp{');
+ for (var rule in node.groupRuleBody) {
+ rule.visit(this);
+ }
+ emit('$_newLine}');
+ }
+
+ void visitSupportsConditionInParens(SupportsConditionInParens node) {
+ emit('(');
+ node.condition.visit(this);
+ emit(')');
+ }
+
+ void visitSupportsNegation(SupportsNegation node) {
+ emit('not$_sp');
+ node.condition.visit(this);
+ }
+
+ void visitSupportsConjunction(SupportsConjunction node) {
+ node.conditions.first.visit(this);
+ for (var condition in node.conditions.skip(1)) {
+ emit('${_sp}and$_sp');
+ condition.visit(this);
+ }
+ }
+
+ void visitSupportsDisjunction(SupportsDisjunction node) {
+ node.conditions.first.visit(this);
+ for (var condition in node.conditions.skip(1)) {
+ emit('${_sp}or$_sp');
+ condition.visit(this);
+ }
+ }
+
+ void visitViewportDirective(ViewportDirective node) {
+ emit('@${node.name}$_sp{$_newLine');
+ node.declarations.visit(this);
+ emit('}');
+ }
+
void visitMediaDirective(MediaDirective node) {
- emit(' @media');
+ emit('$_newLine@media');
emitMediaQueries(node.mediaQueries);
- emit(' {');
+ emit('$_sp{');
for (var ruleset in node.rulesets) {
ruleset.visit(this);
}
- emit('$_newLine\}');
+ emit('$_newLine}');
}
void visitHostDirective(HostDirective node) {
- emit('\n@host {');
+ emit('$_newLine@host$_sp{');
for (var ruleset in node.rulesets) {
ruleset.visit(this);
}
- emit('$_newLine\}');
+ emit('$_newLine}');
}
/**
@@ -107,16 +167,14 @@ class CssPrinter extends Visitor {
emit(node._ident);
emit(node.hasPseudoPage ? ':${node._pseudoPage}' : '');
}
- emit(' ');
var declsMargin = node._declsMargin;
var declsMarginLength = declsMargin.length;
+ emit(' {$_newLine');
for (var i = 0; i < declsMarginLength; i++) {
- if (i > 0) emit(_newLine);
- emit('{$_newLine');
declsMargin[i].visit(this);
- emit('}');
}
+ emit('}');
}
/** @charset "charset encoding" */
@@ -253,12 +311,11 @@ class CssPrinter extends Visitor {
}
void visitDeclaration(Declaration node) {
- String importantAsString() => node.important ? '$_sp!important' : '';
-
- emit("${node.property}: ");
+ emit('${node.property}:$_sp');
node._expression.visit(this);
-
- emit("${importantAsString()}");
+ if (node.important) {
+ emit('$_sp!important');
+ }
}
void visitVarDefinition(VarDefinition node) {
@@ -326,7 +383,7 @@ class CssPrinter extends Visitor {
void visitPseudoClassFunctionSelector(PseudoClassFunctionSelector node) {
emit(":${node.name}(");
- node.expression.visit(this);
+ node.argument.visit(this);
emit(')');
}
« no previous file with comments | « packages/csslib/lib/src/analyzer.dart ('k') | packages/csslib/lib/src/messages.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698