/// <summary>Execute the command.</summary> public override void Execute() { IFindReplaceProvider editorFindProvider = HostWindow.ActiveChildForm as IFindReplaceProvider; if (editorFindProvider != null) { FindTextRequest req = null; int key = editorFindProvider.GetHashCode(); // is there a request in the table for this window? if (SearchToolsCommon.FindReplaceTextRequests.ContainsKey(key)) { req = SearchToolsCommon.FindReplaceTextRequests[key]; } if (req != null) { // wrap around to start if at last pos if (req.Position != 0) { req.Position = editorFindProvider.CursorOffset; } if (editorFindProvider.ReplaceString(req.ReplaceValue, req.Position - req.SearchValue.Length, req.SearchValue.Length)) { CommandManager.GetCommandInstance <FindNextStringCommand>().Execute(); } } } }
/// <summary> /// Finds the current line position and duplicates that line. /// </summary> public override void Execute() { IFindReplaceProvider findReplaceProvider = HostWindow.ActiveChildForm as IFindReplaceProvider; if (findReplaceProvider == null || !findReplaceProvider.CanReplaceText) { return; } // todo! int offset = findReplaceProvider.CursorOffset; int originalLineStartOffset = 0; int lineLength = 0; string line = "?"; // find current text "line", back to start or \n and find next \n or eof line = line + Environment.NewLine + line; findReplaceProvider.ReplaceString(line, 0, 0); }