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); }
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; }
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; }
public IEnumerable <MSBuildAttribute> GetAttributes(MSBuildSyntaxKind kind) { var att = firstAttribute; while (att != null) { if (att.SyntaxKind == kind) { yield return(att); } att = att.nextSibling; } }
public IEnumerable <MSBuildElement> GetElements(MSBuildSyntaxKind kind) { var el = firstChild; while (el != null) { if (el.SyntaxKind == kind) { yield return(el); } el = el.nextSibling; } }
public MSBuildAttribute GetAttribute(MSBuildSyntaxKind kind) { var att = firstAttribute; while (att != null) { if (att.SyntaxKind == kind) { return(att); } att = att.nextSibling; } return(null); }
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));
static MSBuildElement CreateElement(MSBuildSyntaxKind syntaxKind, MSBuildElement parent, XElement xelement, ExpressionNode value) => syntaxKind switch {
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;
MSBuildLanguageElement(string name, DisplayText description, MSBuildSyntaxKind syntaxKind, MSBuildValueKind valueKind = MSBuildValueKind.Nothing, bool isAbstract = false) : base(name, description, valueKind) { SyntaxKind = syntaxKind; IsAbstract = isAbstract; }