public BufferedWriter(TextWriter writer, SyntaxPrinterConfiguration configuration)
            {
                if (writer == null)
                    throw new ArgumentNullException("writer");

                _writer = writer;
                _configuration = configuration;

                _rightMargin =
                    configuration.LineBreaksAndWrapping.LineWrapping.WrapLongLines
                    ? configuration.LineBreaksAndWrapping.LineWrapping.RightMargin
                    : int.MaxValue;
            }
        public SyntaxWriter(TextWriter writer, SyntaxPrinterConfiguration configuration)
        {
            if (writer == null)
                throw new ArgumentNullException("writer");
            if (configuration == null)
                throw new ArgumentNullException("configuration");

            _writer = new BufferedWriter(writer, configuration);

            Configuration = configuration;

            _modifierOrder = BuildModifierOrder();
            PushBraceFormatting(configuration.BracesLayout.Other, true);
            PushSingleLineBody(false);
            PushWrapStyle(WrapStyle.SimpleWrap);
        }