示例#1
0
        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("}");
            }
        }
示例#2
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();
            }
        }