public override void WriteOutput(OutputContext context) { for (var index = 0; index < Elements.Count; index++) { var element = Elements[index]; if (!(element is ParentReferenceSelectorElement)) { context.Append(element); } bool isLastElement = index == Elements.Count - 1; if (element.HasTrailingWhitespace && !isLastElement) { var nextElement = Elements[index + 1]; if (element is IdentifierSelectorElement && nextElement is IdentifierSelectorElement) { context.Append(' '); } else { context.AppendOptional(' '); } } } }
public override void WriteOutput(OutputContext context) { using (var scope = context.BeginUndoableScope()) { context.Append("@media "); for (var index = 0; index < mediaQueries.Count; index++) { if (index > 0) { context.Append(", "); } var mediaQuery = mediaQueries[index]; context.Append(mediaQuery); } context.AppendLine(" {"); using (context.EnterExtenderScope(Extenders)) { if (context.Append(Block)) { scope.KeepChanges(); } } context.AppendLine("}"); } }
public override void WriteOutput(OutputContext context) { if (block.Statements.Count == 0) { return; } context.IncreaseIndentLevel(); context.Indent(); for (var index = 0; index < keyframePositions.Count; index++) { var keyframePosition = keyframePositions[index]; context.Append(keyframePosition); if (index < keyframePositions.Count - 1) { context.Append(", "); } } context.AppendOptional(' '); context.AppendLine("{"); context.Append(block); context.Indent(); context.AppendLine("}"); context.DecreaseIndentLevel(); }
public override void WriteOutput(OutputContext context) { if (Block.RuleCount == 0) { return; } if (context.IsReference) { var extenderSelectorList = new SelectorList(Selectors.Selectors.SelectMany(s => context.Extensions.GetExtensions(s, includeReferences: false))); if (extenderSelectorList.IsEmpty()) { return; } context.Append(extenderSelectorList); } else { context.Append(Selectors); } context.AppendOptional(' '); context.AppendLine("{"); context.Append(Block); context.Indent(); context.AppendLine("}"); }
public override void WriteOutput(OutputContext context) { context.Append("@namespace "); context.Append(identifier); context.Append(' '); context.Append(ns); context.Append(';'); }
public override void WriteOutput(OutputContext context) { context.Append(QuoteChar); foreach (var lessStringFragment in parts) { context.Append(lessStringFragment); } context.Append(QuoteChar); }
public override void WriteOutput(OutputContext context) { context.Append(rangeStart); if (!string.IsNullOrEmpty(rangeEnd)) { context.Append('-'); context.Append(rangeEnd); } }
public override void WriteOutput(OutputContext context) { context.Append(Property); context.Append(':'); context.AppendOptional(' '); if (Value != null) { context.Append(Value); } }
public override void WriteOutput(OutputContext context) { if (Modifier != MediaQueryModifier.None) { context.Append(Modifier.ToString().ToLowerInvariant() + " "); } context.Append("("); context.Append(rule); context.Append(")"); }
public override void WriteOutput(OutputContext context) { context.Append("@supports"); context.Append(' '); context.Append(condition); context.AppendOptional(' '); context.AppendLine("{"); context.Append(block); context.AppendLine("}"); }
public override void WriteOutput(OutputContext context) { context.Append(prefix); context.Append(identifier); if (value != null) { context.Append('('); context.Append(value); context.Append(')'); } }
public override void WriteOutput(OutputContext context) { context.Append(functionName); context.Append('('); if (arguments != null) { context.Append(arguments); } context.Append(')'); }
public override void WriteOutput(OutputContext context) { for (var i = 0; i < FeatureQueries.Count; i++) { if (i > 0) { context.Append(" and "); } var featureQuery = FeatureQueries[i]; context.Append(featureQuery); } }
public override void WriteOutput(OutputContext context) { for (var index = 0; index < conditions.Count; index++) { var supportsCondition = conditions[index]; context.Append(supportsCondition); if (index < conditions.Count - 1) { context.Append(" and "); } } }
public override void WriteOutput(OutputContext context) { context.Indent(); context.Append("@import"); context.Append(' '); context.Append(Url); if (mediaQueries.Any()) { context.Append(' '); WriteQueries(context); } context.AppendLine(";"); }
public override void WriteOutput(OutputContext context) { foreach (var identifierPart in Parts) { context.Append(identifierPart); } }
public override void WriteOutput(OutputContext context) { context.Indent(); context.Append('@'); context.Append(ruleIdentifier); context.Append(' '); context.Append(identifier); context.AppendOptional(' '); context.AppendLine("{"); foreach (var keyframe in keyframes) { context.Append(keyframe); } context.Indent(); context.AppendLine("}"); }
public override void WriteOutput(OutputContext context) { context.Indent(); context.Append("@page"); if (additionalSelector != null) { context.Append(' '); context.Append(additionalSelector); } context.AppendOptional(' '); context.AppendLine("{"); context.Append(block); context.Indent(); context.AppendLine("}"); }
public override void WriteOutput(OutputContext context) { if (Modifier != MediaQueryModifier.None) { context.Append(Modifier.ToString().ToLowerInvariant() + " "); } if (parens) { context.Append('('); context.Append(identifier); context.Append(')'); } else { context.Append(identifier); } }
public override void WriteOutput(OutputContext context) { context.Append(LeftOperand); if (keepSpaces) { context.AppendOptional(' '); } context.Append(Operator); if (keepSpaces) { context.AppendOptional(' '); } context.Append(RightOperand); }
public override void WriteOutput(OutputContext context) { context.Indent(); context.Append("@"); context.Append(identifier); if (value != null) { context.Append(' '); context.Append(value); } context.AppendOptional(' '); context.AppendLine("{"); context.Append(block); context.Indent(); context.AppendLine("}"); }
public override void WriteOutput(OutputContext context) { using (var scope = context.BeginUndoableScope()) { context.IncreaseIndentLevel(); bool hasOutput = false; for (var index = 0; index < Statements.Count; index++) { var statement = Statements[index]; if (statement is Rule r) { // Rules may exist within media queries, but are only indented and semicolon-terminated within rule blocks context.Indent(); hasOutput |= context.Append(r); bool isLast = index == Statements.Count - 1; if (isLast) { context.AppendOptional(';'); } else { context.Append(';'); } context.AppendLine(); } else { hasOutput |= context.Append(statement); } } if (hasOutput) { scope.KeepChanges(); } context.DecreaseIndentLevel(); } }
public override void WriteOutput(OutputContext context) { bool isWhitespaceSeparator = char.IsWhiteSpace(Separator); for (var index = 0; index < Values.Count; index++) { var expression = Values[index]; context.Append(expression); if (index < Values.Count - 1) { context.Append(Separator); if (!isWhitespaceSeparator) { context.AppendOptional(' '); } } } }
public void Compile(string inputFileName) { var context = new EvaluationContext(new LessTreeParser(), new FileResolver(new FileSystem(), inputFileName)); var rootNode = context.ParseCurrentStylesheet(isReference: false); var evaluated = rootNode.EvaluateSingle <Stylesheet>(context); var outputContext = new OutputContext(' ', 4); outputContext.Append(evaluated); Console.WriteLine(outputContext.GetCss()); }
protected void AssertLessUnchanged(string input) { EvaluationContext context = new EvaluationContext(new LessTreeParser(), GetFileResolver(input)); var currentStylesheet = context.ParseCurrentStylesheet(isReference: false); var evaluated = currentStylesheet.EvaluateSingle <Stylesheet>(context); var output = new OutputContext(' ', 2); output.Append(evaluated); Assert.Equal(input.Trim(), output.GetCss().Trim()); }
public override void WriteOutput(OutputContext context) { bool first = true; foreach (var node in (IEnumerable <LessNode>)measurements) { if (!first) { context.Append(' '); } node.WriteOutput(context); first = false; } }
private void WriteQueries(OutputContext context) { bool first = true; foreach (var node in (IEnumerable <LessNode>)mediaQueries) { if (!first) { context.Append(','); context.AppendOptional(' '); } node.WriteOutput(context); first = false; } }
public override void WriteOutput(OutputContext context) { var outputSelectors = Selectors .Concat(Selectors.SelectMany(s => context.Extensions.GetExtensions(s, includeReferences: true))) .Distinct() .ToList(); for (var index = 0; index < outputSelectors.Count; index++) { context.Indent(); var selector = outputSelectors[index]; context.Append(selector); if (index < outputSelectors.Count - 1) { context.AppendLine(","); } } }
public override void WriteOutput(OutputContext context) { context.Append("progid:"); context.Append(Filter); context.Append('('); for (var index = 0; index < FilterExpressions.Count; index++) { var filterExpression = FilterExpressions[index]; context.Append(filterExpression); if (index < FilterExpressions.Count - 1) { context.Append(", "); } } context.Append(')'); }
public override void WriteOutput(OutputContext context) { context.Append(Value); context.Append(" !important"); }