Beispiel #1
0
        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(' ');
                    }
                }
            }
        }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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("}");
        }
Beispiel #4
0
        public override void WriteOutput(OutputContext context)
        {
            context.Append(LeftOperand);

            if (keepSpaces)
            {
                context.AppendOptional(' ');
            }

            context.Append(Operator);

            if (keepSpaces)
            {
                context.AppendOptional(' ');
            }

            context.Append(RightOperand);
        }
Beispiel #5
0
 public override void WriteOutput(OutputContext context)
 {
     context.Append(Property);
     context.Append(':');
     context.AppendOptional(' ');
     if (Value != null)
     {
         context.Append(Value);
     }
 }
Beispiel #6
0
        public override void WriteOutput(OutputContext context)
        {
            context.Append("@supports");
            context.Append(' ');
            context.Append(condition);
            context.AppendOptional(' ');

            context.AppendLine("{");
            context.Append(block);
            context.AppendLine("}");
        }
Beispiel #7
0
 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("}");
 }
Beispiel #8
0
        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("}");
        }
Beispiel #9
0
        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;
            }
        }
Beispiel #10
0
        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("}");
        }
Beispiel #11
0
        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();
            }
        }
Beispiel #12
0
        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(' ');
                    }
                }
            }
        }