public static Result Run(Window parent) { var dialog = new RevRegExDialog { Owner = parent }; return dialog.ShowDialog() ? dialog.result : null; }
void Command_Text_ReverseRegEx(RevRegExDialog.Result result) { if (Selections.Count != 1) throw new Exception("Must have one selection."); var data = RevRegEx.RevRegExVisitor.Parse(result.RegEx); var output = data.GetPossibilities().Select(str => str + Data.DefaultEnding).ToList(); ReplaceSelections(string.Join("", output)); var start = Selections.Single().Start; var sels = new List<Range>(); foreach (var str in output) { sels.Add(Range.FromIndex(start, str.Length - Data.DefaultEnding.Length)); start += str.Length; } Selections.Replace(sels); }