コード例 #1
0
        /// <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();
                    }
                }
            }
        }
コード例 #2
0
        /// <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);
        }