private void ValidateParentAllowsContent(SyntaxNode child) { if (HasAllowedChildren()) { var isDisallowedContent = true; if (_featureFlags.AllowHtmlCommentsInTagHelpers) { isDisallowedContent = !IsComment(child) && !child.IsTransitionSpanKind() && !child.IsCodeSpanKind(); } if (isDisallowedContent) { var content = child.GetContent(); if (!string.IsNullOrWhiteSpace(content)) { var trimmedStart = content.TrimStart(); var whitespace = content.Substring(0, content.Length - trimmedStart.Length); var errorStart = SourceLocationTracker.Advance(child.GetSourceLocation(_source), whitespace); var length = trimmedStart.TrimEnd().Length; var allowedChildren = CurrentTagHelperTracker.AllowedChildren; var allowedChildrenString = string.Join(", ", allowedChildren); _errorSink.OnError( RazorDiagnosticFactory.CreateTagHelper_CannotHaveNonTagContent( new SourceSpan(errorStart, length), CurrentTagHelperTracker.TagName, allowedChildrenString)); } } } }
private void ValidateParentAllowsContent(Span child, ErrorSink errorSink) { if (HasAllowedChildren()) { var content = child.Content; if (!string.IsNullOrWhiteSpace(content)) { var trimmedStart = content.TrimStart(); var whitespace = content.Substring(0, content.Length - trimmedStart.Length); var errorStart = SourceLocationTracker.Advance(child.Start, whitespace); var length = trimmedStart.TrimEnd().Length; var allowedChildren = _currentTagHelperTracker.AllowedChildren; var allowedChildrenString = string.Join(", ", allowedChildren); errorSink.OnError( RazorDiagnosticFactory.CreateTagHelper_CannotHaveNonTagContent( new SourceSpan(errorStart, length), _currentTagHelperTracker.TagName, allowedChildrenString)); } } }