public void SetReplacement(ITextReplacement r) { replacement = r; foreach (var source in sources) { source.TrySetCanceled(); } sources.Clear(); invaliated.Raise(this, EventArgs.Empty); }
private static void Execute(Regex regex, ITextReplacement replacement, string value, TaskCompletionSource <string> tcs, bool matchExtension) { try { if (matchExtension) { value = replacement.Apply(value, regex); } else { var ext = Path.GetExtension(value); value = replacement.Apply(Path.ChangeExtension(value, null), regex); value += ext; } tcs.TrySetResult(value); } catch (Exception) { tcs.TrySetResult(null); } }
private static void Execute(Regex regex, ITextReplacement replacement, string value, TaskCompletionSource <string> tcs, bool matchExtension) { try { if (matchExtension) { value = replacement.Apply(value, regex); } else { //remove extension, run, re-add extension var ext = Path.GetExtension(value); value = replacement.Apply(Path.ChangeExtension(value, null), regex); value += ext; //manually append to not mess up file names container dots } tcs.TrySetResult(value); } catch (Exception) { tcs.TrySetResult(null); } }
/// <summary> /// Initializes a new instance of the <see cref="ReplaceText"/> class. /// </summary> /// <param name="replacementObject">A object implementation of <see cref="ITextReplacement"/>.</param> public ReplaceText(ITextReplacement replacementObject) { ReplacementObject = replacementObject; }
/// <summary> /// Sets the new replacement and invalidates results /// </summary> public void SetReplacement(ITextReplacement r) { replacement = r; Invalidate(); }