Beispiel #1
0
        public static ContentWriter CreateReplace(
            ContentDisplayStyle contentDisplayStyle,
            string input,
            ReplaceOptions replaceOptions,
            ContentWriterOptions options,
            TextWriter?textWriter      = null,
            MatchOutputInfo?outputInfo = null)
        {
            switch (contentDisplayStyle)
            {
            case ContentDisplayStyle.Value:
            case ContentDisplayStyle.ValueDetail:
                return(new ValueReplacementWriter(input, replaceOptions, options, textWriter, outputInfo));

            case ContentDisplayStyle.Line:
                return(new LineReplacementWriter(input, replaceOptions, options, textWriter));

            case ContentDisplayStyle.AllLines:
                return(new AllLinesReplacementWriter(input, replaceOptions, options, textWriter));

            case ContentDisplayStyle.UnmatchedLines:
                throw new NotSupportedException($"Value '{contentDisplayStyle}' is not supported.");

            default:
                throw new InvalidOperationException($"Unknown enum value '{contentDisplayStyle}'.");
            }
        }
Beispiel #2
0
        public static AskReplacementWriter Create(
            ContentDisplayStyle contentDisplayStyle,
            string input,
            ReplaceOptions replaceOptions,
            Lazy <TextWriter>?lazyWriter,
            ContentWriterOptions options,
            MatchOutputInfo?outputInfo)
        {
            switch (contentDisplayStyle)
            {
            case ContentDisplayStyle.Value:
            case ContentDisplayStyle.ValueDetail:
                return(new AskValueReplacementWriter(input, replaceOptions, lazyWriter, options, outputInfo));

            case ContentDisplayStyle.Line:
                return(new AskLineReplacementWriter(input, replaceOptions, lazyWriter, options));

            case ContentDisplayStyle.UnmatchedLines:
            case ContentDisplayStyle.AllLines:
                throw new InvalidOperationException();

            default:
                throw new InvalidOperationException($"Unknown enum value '{contentDisplayStyle}'.");
            }
        }
Beispiel #3
0
        public static bool TryParseReplaceOptions(
            IEnumerable <string> values,
            string optionName,
            string?replacement,
            MatchEvaluator?matchEvaluator,
            [NotNullWhen(true)] out ReplaceOptions?replaceOptions)
        {
            replaceOptions = null;
            var replaceFlags = ReplaceFlags.None;

            if (values != null &&
                !TryParseAsEnumFlags(
                    values,
                    optionName,
                    out replaceFlags,
                    provider: OptionValueProviders.ReplaceFlagsProvider))
            {
                return(false);
            }

            var functions = ReplaceFunctions.None;

            if ((replaceFlags & ReplaceFlags.TrimStart) != 0)
            {
                functions |= ReplaceFunctions.TrimStart;
            }

            if ((replaceFlags & ReplaceFlags.TrimEnd) != 0)
            {
                functions |= ReplaceFunctions.TrimEnd;
            }

            if ((replaceFlags & ReplaceFlags.ToLower) != 0)
            {
                functions |= ReplaceFunctions.ToLower;
            }

            if ((replaceFlags & ReplaceFlags.ToUpper) != 0)
            {
                functions |= ReplaceFunctions.ToUpper;
            }

            if (matchEvaluator != null)
            {
                replaceOptions = new ReplaceOptions(
                    matchEvaluator: matchEvaluator,
                    functions: functions,
                    cultureInvariant: (replaceFlags & ReplaceFlags.CultureInvariant) != 0);
            }
            else
            {
                replaceOptions = new ReplaceOptions(
                    replacement: replacement,
                    functions: functions,
                    cultureInvariant: (replaceFlags & ReplaceFlags.CultureInvariant) != 0);
            }

            return(true);
        }
Beispiel #4
0
        protected override void WriteEndMatch(Capture capture)
        {
            var match = (Match)capture;

            string result = ReplaceOptions.Replace(match);

            WriteReplacement(match, result);
        }
Beispiel #5
0
 public AskLineReplacementWriter(
     string input,
     ReplaceOptions replaceOptions,
     Lazy <TextWriter> lazyWriter,
     ContentWriterOptions options) : base(input, replaceOptions, lazyWriter, options)
 {
     MatchingLineCount = 0;
 }
Beispiel #6
0
 public LineReplacementWriter(
     string input,
     ReplaceOptions replaceOptions,
     ContentWriterOptions options = null,
     TextWriter textWriter        = null) : base(input, options)
 {
     ReplaceOptions = replaceOptions;
     _textWriter    = textWriter;
 }
Beispiel #7
0
 public TextWriterContentWriter(
     string input,
     ReplaceOptions replaceOptions,
     TextWriter textWriter,
     ContentWriterOptions options) : base(input, options)
 {
     ReplaceOptions = replaceOptions;
     _textWriter    = textWriter;
 }
Beispiel #8
0
 protected AskReplacementWriter(
     string input,
     ReplaceOptions replaceOptions,
     Lazy <TextWriter> lazyWriter,
     ContentWriterOptions options) : base(input, options)
 {
     ReplaceOptions = replaceOptions;
     _lazyWriter    = lazyWriter;
 }
Beispiel #9
0
 public AskValueReplacementWriter(
     string input,
     ReplaceOptions replaceOptions,
     Lazy <TextWriter> lazyWriter,
     ContentWriterOptions options,
     MatchOutputInfo outputInfo) : base(input, replaceOptions, lazyWriter, options)
 {
     OutputInfo = outputInfo;
 }
Beispiel #10
0
 public AskLineReplacementWriter(
     string input,
     ReplaceOptions replaceOptions,
     Lazy <TextWriter>?lazyWriter,
     ContentWriterOptions options,
     bool isInteractive) : base(input, replaceOptions, lazyWriter, options, isInteractive)
 {
     MatchingLineCount = 0;
 }
Beispiel #11
0
 public ValueReplacementWriter(
     string input,
     ReplaceOptions replaceOptions,
     ContentWriterOptions options,
     TextWriter?textWriter      = null,
     MatchOutputInfo?outputInfo = null) : base(input, options, outputInfo: outputInfo)
 {
     ReplaceOptions = replaceOptions;
     _textWriter    = textWriter;
 }
Beispiel #12
0
 public AskValueReplacementWriter(
     string input,
     ReplaceOptions replaceOptions,
     Lazy <TextWriter>?lazyWriter,
     ContentWriterOptions options,
     MatchOutputInfo?outputInfo,
     bool isInteractive) : base(input, replaceOptions, lazyWriter, options, isInteractive)
 {
     OutputInfo = outputInfo;
 }
Beispiel #13
0
        protected AskReplacementWriter(
            string input,
            ReplaceOptions replaceOptions,
            Lazy <TextWriter>?lazyWriter,
            ContentWriterOptions options,
            bool isInteractive) : base(input, options)
        {
            ReplaceOptions = replaceOptions;
            IsInteractive  = isInteractive;

            _lazyWriter = lazyWriter;
        }