public static SyntaxTokenList WithStructMemberInheritanceModifier( this SyntaxTokenList tokens, StructMemberInheritanceModifier modifier) { ClassMemberInheritanceModifier classModifier = modifier == StructMemberInheritanceModifier.Static ? ClassMemberInheritanceModifier.Static : ClassMemberInheritanceModifier.None; return(tokens.WithClassMemberInheritanceModifier(classModifier)); }
public static SyntaxTokenList WithClassMemberInheritanceModifier( this SyntaxTokenList tokens, ClassMemberInheritanceModifier modifier, bool isAsync = false) { tokens = tokens.Remove(inheritanceModifierTokens); IList <SyntaxKind> kinds = new List <SyntaxKind>(); switch (modifier) { case ClassMemberInheritanceModifier.New: kinds.Add(SyntaxKind.NewKeyword); break; case ClassMemberInheritanceModifier.NewStatic: kinds.Add(SyntaxKind.NewKeyword); kinds.Add(SyntaxKind.StaticKeyword); break; case ClassMemberInheritanceModifier.NewVirtual: kinds.Add(SyntaxKind.NewKeyword); kinds.Add(SyntaxKind.VirtualKeyword); break; case ClassMemberInheritanceModifier.Override: kinds.Add(SyntaxKind.OverrideKeyword); break; case ClassMemberInheritanceModifier.SealedOverride: kinds.Add(SyntaxKind.SealedKeyword); kinds.Add(SyntaxKind.OverrideKeyword); break; case ClassMemberInheritanceModifier.Static: kinds.Add(SyntaxKind.StaticKeyword); break; case ClassMemberInheritanceModifier.Virtual: kinds.Add(SyntaxKind.VirtualKeyword); break; } if (kinds.Count != 0) { tokens = isAsync ? tokens.InsertRange(tokens.Count - 1, kinds) : tokens.AddRange(kinds); } return(tokens); }
internal static void AddClassMemberInheritanceModifierSteps( this List <ISourceCodeBuilderStep> steps, ClassMemberInheritanceModifier inheritanceModifer) { switch (inheritanceModifer) { case ClassMemberInheritanceModifier.None: return; case ClassMemberInheritanceModifier.New: case ClassMemberInheritanceModifier.Override: case ClassMemberInheritanceModifier.Static: case ClassMemberInheritanceModifier.Virtual: steps.Add(new WriteClassMemberInheritanceModifier(inheritanceModifer)); break; case ClassMemberInheritanceModifier.NewStatic: steps.Add(new WriteClassMemberInheritanceModifier(ClassMemberInheritanceModifier.New)); steps.Add(new WriteWhitespace()); steps.Add(new WriteClassMemberInheritanceModifier(ClassMemberInheritanceModifier.Static)); break; case ClassMemberInheritanceModifier.NewVirtual: steps.Add(new WriteClassMemberInheritanceModifier(ClassMemberInheritanceModifier.New)); steps.Add(new WriteWhitespace()); steps.Add(new WriteClassMemberInheritanceModifier(ClassMemberInheritanceModifier.Virtual)); break; case ClassMemberInheritanceModifier.SealedOverride: steps.Add(new WriteSealed()); steps.Add(new WriteWhitespace()); steps.Add(new WriteClassMemberInheritanceModifier(ClassMemberInheritanceModifier.Override)); break; } steps.Add(new WriteWhitespace()); }
public WriteClassMemberInheritanceModifier(ClassMemberInheritanceModifier inheritanceModifier) { InheritanceModifier = inheritanceModifier; }