internal static bool IsLinkMetaChar( FormattedHelpLink formattedLink, int charIndex) { int prefixEndIndex = formattedLink.Position + Segment.LINK_PREFIX.Length - 1; if (formattedLink.Position <= charIndex && charIndex <= prefixEndIndex) { return(true); } int suffixStartIndex = formattedLink.Position + formattedLink.Length - Segment.LINK_SUFFIX.Length; if (suffixStartIndex <= charIndex && charIndex <= (formattedLink.Position + formattedLink.Length - 1)) { return(true); } return(false); }
internal bool TryGetLinkAtChar( int charIndex, out HelpLink link) { link = null; FormattedHelpLink formattedLink = GetFormattedLinkAtChar( mFormattedLinks, charIndex); if (formattedLink == null) { return(false); } link = formattedLink.Source; return(!BuildFormattedHelp.IsLinkMetaChar(formattedLink, charIndex)); }
static FormattedHelpLink GetFormattedLinkAtChar( List <FormattedHelpLink> formattedLinks, int charIndex) { for (int i = 0; i < formattedLinks.Count; i++) { FormattedHelpLink link = formattedLinks[i]; if (link.Position <= charIndex && charIndex < link.Position + link.Length) { return(link); } if (charIndex <= link.Position + link.Length) { return(null); } } return(null); }