private boolean appendSupportsLogicalOperator(SupportsLogicalOperator node) { if (node.getOperator() == null) { cssOnly.append(ERROR); } cssOnly.append(node.getOperator().getSymbol()); return true; }
private boolean appendSupports(Supports node) { cssOnly.append(node.getDialect()).ensureSeparator(); append(node.getCondition()); cssOnly.ensureSeparator(); append(node.getBody()); return true; }
public boolean appendNamedExpression(NamedExpression expression) { cssOnly.append(expression.getName()); cssOnly.append('='); append(expression.getExpression()); return true; }
private void appendBodySortDeclarations(Body node) { // this is sort of hack, bypass the usual append method appendComments(node.getOpeningComments(), true); if (!isCompressing()) cssOnly.ensureSeparator(); append(node.getOpeningCurlyBrace()); if (!isCompressing()) cssOnly.ensureNewLine().increaseIndentationLevel(); Iterator<ASTCssNode> declarations = node.getDeclarations().iterator(); List<ASTCssNode> notDeclarations = node.getNotDeclarations(); while (declarations.hasNext()) { ASTCssNode declaration = declarations.next(); append(declaration); if (!isCompressing() && (declarations.hasNext() || notDeclarations.isEmpty())) cssOnly.ensureNewLine(); } appendAll(notDeclarations); appendComments(node.getOrphanComments(), false); if (!isCompressing()) cssOnly.decreaseIndentationLevel(); append(node.getClosingCurlyBrace()); // this is sort of hack, bypass the usual append method appendComments(node.getTrailingComments(), false); }
private boolean appendImport(Import node) { cssOnly.append("@import").ensureSeparator(); append(node.getUrlExpression()); appendCommaSeparated(node.getMediums()); cssOnly.append(';'); return true; }
private boolean appendFunctionExpression(FunctionExpression node) { cssOnly.append(node.getName()); cssOnly.append('('); append(node.getParameter()); cssOnly.append(')'); return true; }
public boolean appendSelectorAttribute(SelectorAttribute node) { cssOnly.append('['); cssOnly.append(node.getName()); append(node.getOperator()); append(node.getValue()); cssOnly.append(']'); return true; }
public boolean appendPseudoClass(PseudoClass node) { cssAndSM.append(node.getFullName(), node.getUnderlyingStructure()); if (node.hasParameters()) { cssOnly.append('('); append(node.getParameter()); cssOnly.append(')'); } return true; }
public boolean appendDeclaration(Declaration declaration) { cssOnly.appendIgnoreNull(declaration.getNameAsString()); cssOnly.append(':'); if (!isCompressing()) cssOnly.ensureSeparator(); if (declaration.getExpression() != null) append(declaration.getExpression()); if (shouldHaveSemicolon(declaration)) cssOnly.appendIgnoreNull(";"); return true; }
public boolean appendMediaExpression(FixedMediaExpression expression) { cssOnly.ensureSeparator().append('('); append(expression.getFeature()); if (expression.getExpression() != null) { cssOnly.append(':'); if (!isCompressing()) cssOnly.ensureSeparator(); append(expression.getExpression()); } cssOnly.append(')'); return true; }
public boolean appendSelectorCombinator(SelectorCombinator combinator) { SelectorCombinator.CombinatorType realCombinator = combinator.getCombinatorType(); switch (realCombinator) { case DESCENDANT: cssOnly.ensureSeparator(); break; default: cssOnly.ensureSeparator().append(combinator.getSymbol()); } return true; }
protected void appendComments(List<Comment> comments, boolean ensureSeparator) { if (comments == null || comments.isEmpty() || isCompressing()) return; cssOnly.ensureSeparator(); for (Comment comment : comments) { String text = comment.getComment(); if (text != null) cssOnly.append(text); if (comment.hasNewLine()) cssOnly.ensureNewLine(); } if (ensureSeparator) cssOnly.ensureSeparator(); }
private boolean appendNumberExpression(NumberExpression node) { if (node.hasOriginalString()) { cssOnly.append(node.getOriginalString()); } else { if (node.hasExpliciteSign()) { if (0 < node.getValueAsDouble()) cssOnly.append('+'); else cssOnly.append('-'); } cssOnly.append(PrintUtils.formatNumber(node.getValueAsDouble()) + node.getSuffix()); } return true; }
private boolean appendSupportsConditionLogical(SupportsLogicalCondition node) { Iterator<SupportsLogicalOperator> operators = node.getLogicalOperators().iterator(); Iterator<SupportsCondition> conditions = node.getConditions().iterator(); append(conditions.next()); while (operators.hasNext()) { cssOnly.ensureSeparator(); append(operators.next()); cssOnly.ensureSeparator(); append(conditions.next()); } return true; }
public boolean appendMediaQuery(MediaQuery mediaQuery) { cssOnly.ensureSeparator(); append(mediaQuery.getMedium()); boolean needSeparator = (mediaQuery.getMedium() != null); for (MediaExpression mediaExpression : mediaQuery.getExpressions()) { if (needSeparator) { cssOnly.ensureSeparator().append("and"); } append(mediaExpression); needSeparator = true; } return true; }
public boolean appendCommaSeparated(List<? extends ASTCssNode> values) { boolean result = false; Iterator<? extends ASTCssNode> names = values.iterator(); if (names.hasNext()) { result |= append(names.next()); } while (names.hasNext()) { cssOnly.append(','); if (!isCompressing()) cssOnly.ensureSeparator(); append(names.next()); result = true; } return result; }
public void appendSelectors(List<Selector> selectors) { selectors = filterSilent(selectors); // follow less.js formatting in special case - only one empty selector if (selectors.size() == 1 && isEmptySelector(selectors.get(0))) { cssOnly.append(' '); } Iterator<Selector> iterator = selectors.iterator(); while (iterator.hasNext()) { Selector selector = iterator.next(); append(selector); if (iterator.hasNext()) cssOnly.append(',').newLine(); } }
private boolean appendPage(Page node) { cssOnly.append("@page").ensureSeparator(); if (node.hasName()) { append(node.getName()); if (!node.hasDockedPseudopage()) cssOnly.ensureSeparator(); } if (node.hasPseudopage()) { append(node.getPseudopage()); cssOnly.ensureSeparator(); } appendBodySortDeclarations(node.getBody()); return true; }
private boolean appendMedia(Media node) { cssOnly.append("@media"); appendCommaSeparated(node.getMediums()); appendBodySortDeclarations(node.getBody()); return true; }
private boolean appendKeyframes(Keyframes node) { cssOnly.append(node.getDialect()).ensureSeparator(); appendCommaSeparated(node.getNames()); append(node.getBody()); return true; }
private boolean appendDocument(Document node) { cssOnly.append(node.getDialect()).ensureSeparator(); appendCommaSeparated(node.getUrlMatchFunctions()); append(node.getBody()); return true; }
public boolean appendCharsetDeclaration(CharsetDeclaration node) { cssAndSM.append("@charset", node.getUnderlyingStructure()).ensureSeparator(); append(node.getCharset()); cssOnly.append(';'); return true; }
private void appendSimpleSelectorHead(SimpleSelector selector) { cssOnly.ensureSeparator(); if (!selector.isStar() || !selector.isEmptyForm()) { InterpolableName elementName = selector.getElementName(); cssAndSM.appendIgnoreNull(elementName.getName(), elementName.getUnderlyingStructure()); } }
private boolean appendNth(Nth node) { switch (node.getForm()) { case EVEN: cssOnly.append("even"); return true; case ODD: cssOnly.append("odd"); return true; case STANDARD: if (node.getRepeater() != null) append(node.getRepeater()); if (node.getMod() != null) append(node.getMod()); } return true; }
public boolean appendBinaryExpressionOperator(BinaryExpressionOperator operator) { BinaryExpressionOperator.Operator realOperator = operator.getOperator(); switch (realOperator) { // TODO this is a huge hack which goes around // "we do not parse fonts and less.js does" lack of feature // left here intentionally, so we can have correct unit test and can come // back to it later case MINUS: cssOnly.ensureSeparator().append('-'); break; default: cssOnly.append(realOperator.getSymbol()); } return true; }
private boolean appendBodyOptimizeDuplicates(Body body) { if (body.isEmpty()) return false; if (!isCompressing()) cssOnly.ensureSeparator(); append(body.getOpeningCurlyBrace()); if (!isCompressing()) cssOnly.ensureNewLine().increaseIndentationLevel(); Iterable<CssPrinter> declarationsBuilders = collectUniqueBodyMembersStrings(body); for (CssPrinter miniBuilder : declarationsBuilders) { append(miniBuilder); } appendComments(body.getOrphanComments(), false); cssOnly.decreaseIndentationLevel(); append(body.getClosingCurlyBrace()); return true; }
private boolean appendUnknownAtRule(UnknownAtRule node) { cssOnly.append(node.getName()).ensureSeparator(); appendCommaSeparated(node.getNames()); append(node.getBody()); append(node.getSemicolon()); return true; }
public boolean appendListExpressionOperator(ListExpressionOperator operator) { ListExpressionOperator.Operator realOperator = operator.getOperator(); switch (realOperator) { case COMMA: cssOnly.append(realOperator.getSymbol()); if (!isCompressing()) cssOnly.ensureSeparator(); break; case EMPTY_OPERATOR: cssOnly.ensureSeparator(); break; default: cssOnly.append(realOperator.getSymbol()); } return true; }
private boolean appendSelectorOperator(SelectorOperator operator) { SelectorOperator.Operator realOperator = operator.getOperator(); switch (realOperator) { case NONE: break; default: cssOnly.append(realOperator.getSymbol()); } return true; }
public boolean appendMediumModifier(MediumModifier modifier) { Modifier kind = modifier.getModifier(); switch (kind) { case ONLY: cssOnly.ensureSeparator().append("only"); break; case NOT: cssOnly.ensureSeparator().append("not"); break; case NONE: break; default: throw new IllegalStateException("Unknown modifier type."); } return true; }