Example #1
0
        static MSBuildElementSyntax AddBuiltin(string name, string description, MSBuildSyntaxKind kind, MSBuildValueKind valueKind = MSBuildValueKind.Nothing, bool isAbstract = false)
        {
            var el = new MSBuildElementSyntax(name, description, kind, valueKind, isAbstract);

            builtin.Add(el.Name, el);
            return(el);
        }
Example #2
0
 MSBuildElementSyntax(
     string name, DisplayText description, MSBuildSyntaxKind syntaxKind,
     MSBuildValueKind valueKind = MSBuildValueKind.Nothing,
     bool isAbstract            = false, bool isDeprecated = false, string deprecationMessage = null)
     : base(name, description, valueKind, null, null, isDeprecated, deprecationMessage)
 {
     SyntaxKind = syntaxKind;
     IsAbstract = isAbstract;
 }
 public MSBuildLanguageAttribute(
     MSBuildLanguageElement element,
     string name, DisplayText description, MSBuildSyntaxKind syntaxKind, MSBuildValueKind valueKind,
     bool required = false, MSBuildSyntaxKind?abstractKind = null)
     : base(name, description, valueKind)
 {
     SyntaxKind   = syntaxKind;
     Element      = element;
     Required     = required;
     AbstractKind = abstractKind;
 }
Example #4
0
 public MSBuildAttributeSyntax(
     MSBuildElementSyntax element,
     string name, DisplayText description, MSBuildSyntaxKind syntaxKind, MSBuildValueKind valueKind,
     bool required     = false, MSBuildSyntaxKind?abstractKind = null,
     bool isDeprecated = false, string deprecationMessage      = null)
     : base(name, description, valueKind, isDeprecated, deprecationMessage)
 {
     SyntaxKind   = syntaxKind;
     Element      = element;
     Required     = required;
     AbstractKind = abstractKind;
 }
Example #5
0
        public IEnumerable <MSBuildAttribute> GetAttributes(MSBuildSyntaxKind kind)
        {
            var att = firstAttribute;

            while (att != null)
            {
                if (att.SyntaxKind == kind)
                {
                    yield return(att);
                }
                att = att.nextSibling;
            }
        }
Example #6
0
        public IEnumerable <MSBuildElement> GetElements(MSBuildSyntaxKind kind)
        {
            var el = firstChild;

            while (el != null)
            {
                if (el.SyntaxKind == kind)
                {
                    yield return(el);
                }
                el = el.nextSibling;
            }
        }
Example #7
0
        public MSBuildAttribute GetAttribute(MSBuildSyntaxKind kind)
        {
            var att = firstAttribute;

            while (att != null)
            {
                if (att.SyntaxKind == kind)
                {
                    return(att);
                }
                att = att.nextSibling;
            }
            return(null);
        }
Example #8
0
        public MSBuildElement GetElement(MSBuildSyntaxKind kind)
        {
            var el = firstChild;

            while (el != null)
            {
                if (el.SyntaxKind == kind)
                {
                    return(el);
                }
                el = el.nextSibling;
            }
            return(null);
        }
 public void RegisterAttributeAction(Action <AttributeDiagnosticContext> action, MSBuildSyntaxKind attributeKind)
 => RegisterAttributeAction(action, ImmutableArray.Create(attributeKind));
 public void RegisterElementAction(Action <ElementDiagnosticContext> action, MSBuildSyntaxKind elementKind)
 => RegisterElementAction(action, ImmutableArray.Create(elementKind));
Example #11
0
 static MSBuildElement CreateElement(MSBuildSyntaxKind syntaxKind, MSBuildElement parent, XElement xelement, ExpressionNode value)
 => syntaxKind switch
 {
Example #12
0
        static IEnumerable <ISymbol> GetAbstractChildren(this IEnumerable <IMSBuildSchema> schemas, MSBuildSyntaxKind kind, string elementName)
        {
            switch (kind)
            {
            case MSBuildSyntaxKind.Item:
                return(schemas.GetItems());

            case MSBuildSyntaxKind.Task:
                return(schemas.GetTasks());

            case MSBuildSyntaxKind.Property:
                return(schemas.GetProperties(false));

            case MSBuildSyntaxKind.Metadata:
                return(schemas.GetMetadata(elementName, false));
            }
            return(null);
        }
 public static MSBuildSyntaxKind GetElementKind(this MSBuildSyntaxKind attributeKind) => (MSBuildSyntaxKind)((int)attributeKind & 0x0000FFFF);
 public static bool IsAttributeSyntax(this MSBuildSyntaxKind kind) => (((int)kind & 0xFFFF0000) != 0 && ((int)kind & 0x0000FFFF) != 0) || kind == MSBuildSyntaxKind.Unknown;
 public static bool IsElementSyntax(this MSBuildSyntaxKind kind) => ((int)kind & 0xFFFF0000) == 0;
Example #16
0
 MSBuildLanguageElement(string name, DisplayText description, MSBuildSyntaxKind syntaxKind, MSBuildValueKind valueKind = MSBuildValueKind.Nothing, bool isAbstract = false)
     : base(name, description, valueKind)
 {
     SyntaxKind = syntaxKind;
     IsAbstract = isAbstract;
 }