예제 #1
0
        //Preview
        internal EnvDTE.TextSelection OpenDocShowPreview(ResultItem resultLine, FindSettings settings, bool focus = true)
        {
            EnvDTE.TextSelection selection = null;
            if (Dte != null)
            {
                EnvDTE.Window docWindow = Dte.ItemOperations.OpenFile(resultLine.linePath, Constants.vsViewKindTextView);
                selection = GetSelection(Dte.ActiveDocument);
                if (selection != null)
                {
                    selection.SelectAll();
                    int lastLine = selection.CurrentLine;
                    FillPreviewFromDocument(dictTBPreview[settings].Document.Blocks, selection, resultLine);

                    SelectOffsetLength(selection, resultLine);

                    /* if (settings.chkRegExp == true)
                     *   Debug.Assert(false, "Brak obsługi RegExp");
                     * else
                     * {
                     *   selection.MoveToLineAndOffset(resultLine.lineNumber.Value, resultLine.resultOffset + 1, false);
                     *   selection.MoveToLineAndOffset(resultLine.lineNumber.Value, resultLine.resultOffset + 1 + resultLine.ResultLength, true);
                     * }*/
                    //Add action to set focus no doc window after finishing all action in queue (currenty there should be only double click event)
                    if (focus)
                    {
                        Action showAction = () => docWindow.Activate();
                        this.Dispatcher.BeginInvoke(showAction);
                    }
                }
            }
            else
            {
                Debug.Assert(false, "Brak DTE");
            }
            return(selection);
        }