public ResolveResult ResolveAtLocation(TextLocation location, CancellationToken cancellationToken = default(CancellationToken)) { int offset = textDocument.GetOffset(location); var line = textDocument.GetLineByNumber(location.Line); if (offset == line.EndOffset) { return(ErrorResolveResult.UnknownError); } if (char.IsWhiteSpace(textDocument.GetCharAt(offset))) { return(ErrorResolveResult.UnknownError); } AXmlObject innermost = parseInfo.Document.GetChildAtOffset(offset); if (innermost is AXmlText) { return(ResolveText((AXmlText)innermost, cancellationToken)); } if (innermost is AXmlTag) { return(ResolveTag((AXmlTag)innermost, cancellationToken)); } if (innermost is AXmlElement) { return(ResolveElement((AXmlElement)innermost, cancellationToken)); } if (innermost is AXmlAttribute) { return(ResolveAttribute((AXmlAttribute)innermost, offset, cancellationToken)); } return(ErrorResolveResult.UnknownError); }