DocumentTabReferenceResult CreateLocalRefResult(DocumentTabContent sourceContent, TextReference textRef) { Debug.Assert(IsSupportedReference(textRef)); if (sourceContent == null) return null; if (!sourceContent.CanClone) return null; var content = sourceContent.Clone(); return new DocumentTabReferenceResult(content, null, a => { if (a.Success && !a.HasMovedCaret) { GoToReference(content, textRef, false); a.HasMovedCaret = true; } }); }
void IDocumentViewerHelper.FollowReference(TextReference textRef, bool newTab) { Debug.Assert(!isDisposed); if (isDisposed) return; Debug.Assert(DocumentTab != null); if (DocumentTab == null) return; DocumentTab.FollowReference(textRef, newTab); }
static ResourceRef TryCreate(TextReference @ref) { if (@ref == null) return null; return ResourceRef.TryCreate(@ref.Reference); }