private async Task <bool> GotoPositionAsync(Document currentDocument, SnapshotPoint position) { try { var newDocument = position.Snapshot.GetOpenDocumentInCurrentContextWithChanges(); if (newDocument == null) { // document was closed => preview window await NavigateBackAsync(); return(true); } if (currentDocument.Id != newDocument.Id) { VisualStudioWorkspace.OpenDocument(newDocument.Id, true); //await System.Threading.Tasks.Task.Delay(1000); } //VisualStudioWorkspace.OpenDocument(newDocument.Id, true); var wpfTextViewNew = await GetWpfTextViewAsync(); wpfTextViewNew.Caret.MoveTo(new SnapshotPoint(position.Snapshot, position.Position)); wpfTextViewNew.Caret.EnsureVisible(); EnsureCaretVisible(wpfTextViewNew, true); //wpfTextViewNew.Caret.IsHidden = false; //wpfTextViewNew.Caret.MoveToPreferredCoordinates(); //wpfTextViewNew.Caret.MoveToNextCaretPosition(); //await System.Threading.Tasks.Task.Delay(200); //var dte = await GetDTE2Async(); //var command = "Edit.GoTo"; //var line = _interfaceNavigation.startPosition.GetContainingLine().LineNumber + 1; //dte.ExecuteCommand(command, line.ToString()); return(true); } catch (System.Exception ex) { Debug.WriteLine(ex.Message); return(true); } }