public static XmlElementSyntax MultiLineElement(XmlNameSyntax name, string newLineText, SyntaxList<XmlNodeSyntax> content)
 {
     return SyntaxFactory.XmlElement(
         SyntaxFactory.XmlElementStartTag(name),
         content.Insert(0, NewLine(newLineText)).Add(NewLine(newLineText)),
         SyntaxFactory.XmlElementEndTag(name));
 }
 public static XmlElementSyntax Element(XmlNameSyntax name, SyntaxList<XmlNodeSyntax> content)
 {
     return SyntaxFactory.XmlElement(
         SyntaxFactory.XmlElementStartTag(name),
         content,
         SyntaxFactory.XmlElementEndTag(name));
 }
 public XmlAttributeSyntax(XmlNameSyntax name, PunctuationSyntax equals, XmlNodeSyntax value)
     : base(SyntaxKind.XmlAttribute)
 {
     this.NameNode = name;
     this.Equals = equals;
     this.ValueNode = value;
     SlotCount = 3;
 }
 public static XmlTextAttributeSyntax TextAttribute(XmlNameSyntax name, SyntaxKind quoteKind, SyntaxTokenList textTokens)
 {
     return SyntaxFactory.XmlTextAttribute(
         name,
         SyntaxFactory.Token(quoteKind),
         textTokens,
         SyntaxFactory.Token(quoteKind))
         .WithLeadingTrivia(SyntaxFactory.Whitespace(" "));
 }
        private static void HandleElement(SyntaxNodeAnalysisContext context, XmlNodeSyntax element, XmlNameSyntax name, Location alternativeDiagnosticLocation)
        {
            if (string.Equals(name.ToString(), XmlCommentHelper.ParamXmlTag))
            {
                var nameAttribute = XmlCommentHelper.GetFirstAttributeOrDefault<XmlNameAttributeSyntax>(element);

                if (string.IsNullOrWhiteSpace(nameAttribute?.Identifier?.Identifier.ValueText))
                {
                    context.ReportDiagnostic(Diagnostic.Create(Descriptor, nameAttribute?.GetLocation() ?? alternativeDiagnosticLocation));
                }
            }
        }
Пример #6
0
 public override void VisitXmlName(XmlNameSyntax node)
 {
     throw new NotImplementedException();
 }
Пример #7
0
 public override void VisitXmlName(XmlNameSyntax node)
 {
     Debug.Fail(node.ToString());
     base.VisitXmlName(node);
 }
        private static void HandleElement(SyntaxNodeAnalysisContext context, XmlNodeSyntax element, XmlNameSyntax name, Location alternativeDiagnosticLocation)
        {
            if (string.Equals(name.ToString(), XmlCommentHelper.ParamXmlTag))
            {
                var nameAttribute = XmlCommentHelper.GetFirstAttributeOrDefault <XmlNameAttributeSyntax>(element);

                if (string.IsNullOrWhiteSpace(nameAttribute?.Identifier?.Identifier.ValueText))
                {
                    context.ReportDiagnostic(Diagnostic.Create(Descriptor, nameAttribute?.GetLocation() ?? alternativeDiagnosticLocation));
                }
            }
        }
Пример #9
0
 public override SyntaxNode VisitXmlName(XmlNameSyntax node)
 {
     node = (XmlNameSyntax)base.VisitXmlName(node);
     Classes.Add(node);
     return(node);
 }
Пример #10
0
 private static XmlElementSyntax EndTag(XmlNameSyntax name) => XmlElement(s_missingStartTag, XmlElementEndTag(name));
Пример #11
0
 public override void VisitXmlName(XmlNameSyntax node)
 {
 }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitXmlName(XmlNameSyntax node)
 {
     this.OnNodeVisited(node, this.type.IsInstanceOfType(node));
     base.VisitXmlName(node);
 }
Пример #13
0
        private static void HandleElement(SyntaxNodeAnalysisContext context, XmlNodeSyntax element, XmlNameSyntax name, Location alternativeDiagnosticLocation)
        {
            if (string.Equals(name.ToString(), XmlCommentHelper.ParamTag))
            {
                var nameAttribute = XmlCommentHelper.GetFirstAttributeOrDefault <XmlNameAttributeSyntax>(element);

                // Make sure we ignore violations that should be reported by SA1613 instead.
                if (!string.IsNullOrWhiteSpace(nameAttribute?.Identifier?.Identifier.ValueText) && ParentElementHasParameter(element, nameAttribute.Identifier.Identifier.ValueText) == false)
                {
                    context.ReportDiagnostic(Diagnostic.Create(Descriptor, nameAttribute?.Identifier?.GetLocation() ?? alternativeDiagnosticLocation));
                }
            }
        }
Пример #14
0
        public override void VisitXmlName(XmlNameSyntax node)
        {
            node.Prefix?.Accept(this);

            base.VisitXmlName(node);
        }
Пример #15
0
 private XmlNameSyntax ConvertToReturns(XmlNameSyntax name)
 => name.ReplaceToken(name.LocalName, SyntaxFactory.Identifier("returns"));
Пример #16
0
 public override void VisitXmlName(XmlNameSyntax node)
 {
     base.VisitXmlName(node);
 }
 public TameXmlNameSyntax(XmlNameSyntax node)
 {
     Node = node;
     AddChildren();
 }
Пример #18
0
        public override Evaluation VisitXmlName(XmlNameSyntax node)
        {
            node.Prefix?.Accept <Evaluation>(this);

            return(base.VisitXmlName(node));
        }
        private void ClassifyXmlName(XmlNameSyntax node)
        {
            string classificationType;
            if (node.Parent is XmlAttributeSyntax)
            {
                classificationType = ClassificationTypeNames.XmlDocCommentAttributeName;
            }
            else if (node.Parent is XmlProcessingInstructionSyntax)
            {
                classificationType = ClassificationTypeNames.XmlDocCommentProcessingInstruction;
            }
            else
            {
                classificationType = ClassificationTypeNames.XmlDocCommentName;
            }

            var prefix = node.Prefix;
            if (prefix != null)
            {
                AddXmlClassification(prefix.Prefix, classificationType);
                AddXmlClassification(prefix.ColonToken, classificationType);
            }

            AddXmlClassification(node.LocalName, classificationType);
        }
 //
 // Summary:
 //     Called when the visitor visits a XmlNameSyntax node.
 public virtual void VisitXmlName(XmlNameSyntax node);
Пример #21
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="node"></param>
 public override sealed void VisitXmlName(XmlNameSyntax node)
 {
     this.OnNodeVisited(node);
     if (!this.traverseRootOnly) base.VisitXmlName(node);
 }
            public override void DefaultVisit(SyntaxNode node)
            {
                SyntaxKind nodeKind = node.Kind();
                bool       diagnose = node.SyntaxTree.ReportDocumentationCommentDiagnostics();

                if (nodeKind == SyntaxKind.XmlCrefAttribute)
                {
                    XmlCrefAttributeSyntax crefAttr = (XmlCrefAttributeSyntax)node;
                    CrefSyntax             cref     = crefAttr.Cref;

                    BinderFactory factory = _compilation.GetBinderFactory(cref.SyntaxTree);
                    Binder        binder  = factory.GetBinder(cref);

                    // Do this for the diagnostics, even if it won't be written.
                    DiagnosticBag crefDiagnostics = DiagnosticBag.GetInstance();
                    string        docCommentId    = GetDocumentationCommentId(cref, binder, crefDiagnostics);
                    if (diagnose)
                    {
                        _diagnostics.AddRange(crefDiagnostics);
                    }
                    crefDiagnostics.Free();

                    if (_writer != null)
                    {
                        Visit(crefAttr.Name);
                        VisitToken(crefAttr.EqualsToken);

                        // Not going to visit normally, because we want to skip trivia within
                        // the attribute value.
                        crefAttr.StartQuoteToken.WriteTo(_writer, leading: true, trailing: false);

                        // We're not going to visit the cref because we want to bind it
                        // and write a doc comment ID in its place.
                        _writer.Write(docCommentId);

                        // Not going to visit normally, because we want to skip trivia within
                        // the attribute value.
                        crefAttr.EndQuoteToken.WriteTo(_writer, leading: false, trailing: true);
                    }

                    // Don't descend - we've already written out everything necessary.
                    return;
                }
                else if (diagnose && nodeKind == SyntaxKind.XmlNameAttribute)
                {
                    XmlNameAttributeSyntax nameAttr = (XmlNameAttributeSyntax)node;

                    BinderFactory factory = _compilation.GetBinderFactory(nameAttr.SyntaxTree);
                    Binder        binder  = factory.GetBinder(nameAttr, nameAttr.Identifier.SpanStart);

                    // Do this for diagnostics, even if we aren't writing.
                    BindName(nameAttr, binder, _memberSymbol, ref _documentedParameters, ref _documentedTypeParameters, _diagnostics);

                    // Do descend - we still need to write out the tokens of the attribute.
                }

                // NOTE: if we're recording any include element nodes (i.e. if includeElementsNodes is non-null),
                // then we want to record all of them, because we won't be able to distinguish in the XML DOM.
                if (_includeElementNodes != null)
                {
                    XmlNameSyntax nameSyntax = null;
                    if (nodeKind == SyntaxKind.XmlEmptyElement)
                    {
                        nameSyntax = ((XmlEmptyElementSyntax)node).Name;
                    }
                    else if (nodeKind == SyntaxKind.XmlElementStartTag)
                    {
                        nameSyntax = ((XmlElementStartTagSyntax)node).Name;
                    }

                    if (nameSyntax != null && nameSyntax.Prefix == null &&
                        DocumentationCommentXmlNames.ElementEquals(nameSyntax.LocalName.ValueText, DocumentationCommentXmlNames.IncludeElementName))
                    {
                        _includeElementNodes.Add((CSharpSyntaxNode)node);
                    }
                }

                base.DefaultVisit(node);
            }
Пример #23
0
 /// <summary>
 /// Used by the documentation comment rewriters to identify top-level <c>&lt;value&gt;</c> nodes.
 /// </summary>
 private static bool IsValueName(XmlNameSyntax name)
 => name.Prefix == null &&
 name.LocalName.ValueText == "value";
Пример #24
0
 private static XmlElementSyntax StartTag(XmlNameSyntax name, SyntaxList <XmlAttributeSyntax> attrs = default) => XmlElement(XmlElementStartTag(name, attrs), s_missingEndTag);
 private XmlNameSyntax ConvertToParam(XmlNameSyntax name)
 => name.ReplaceToken(name.LocalName, SyntaxFactory.Identifier("param"));
Пример #26
0
 public override void VisitXmlName(XmlNameSyntax node)
 {
     throw new NotSupportedException();
 }