public static MethodDeclarationSyntax GenerateRegisterCommandsMethod(XDocument vsctDocument) { return(SyntaxFactory.MethodDeclaration(SyntaxFactory.PredefinedType(SyntaxFactory.Token((SyntaxKind)8318)), SyntaxFactory.Identifier("RegisterCommands")).WithModifiers(SyntaxFactory.TokenList(new SyntaxToken[2] { SyntaxFactory.Token((SyntaxKind)8343), SyntaxFactory.Token((SyntaxKind)8347) })).WithParameterList(SyntaxFactory.ParameterList(SyntaxFactory.SeparatedList <ParameterSyntax>(new SyntaxNodeOrToken[3] { SyntaxFactory.Parameter(SyntaxFactory.Identifier("service")).WithType(SyntaxFactory.IdentifierName("OleMenuCommandService")), SyntaxFactory.Token((SyntaxKind)8216), SyntaxFactory.Parameter(SyntaxFactory.Identifier("facade")).WithType(SyntaxFactory.IdentifierName("CommandFacade")) }))).WithBody(VsctHelper.GenerateRegisterCommandStatementsBlock(vsctDocument))); }
public static BlockSyntax GenerateRegisterCommandStatementsBlock(XDocument vsctDocument) { BlockSyntax blockSyntax = SyntaxFactory.Block(); XElement xelement = vsctDocument.Root.Element(XNames.Commands).Element(XNames.Buttons); if (xelement != null && xelement.HasElements) { foreach (XElement element in xelement.Elements(XNames.Button)) { string id = element.AttributeValueNull("id"); blockSyntax = blockSyntax.AddStatements(new StatementSyntax[1] { VsctHelper.GenerateRegisterCommandStatement(id) }); } } return(blockSyntax); }
public static ClassDeclarationSyntax GenerateCommandIdsClass(XDocument vsctDocument) { SyntaxList <MemberDeclarationSyntax> syntaxList = SyntaxFactory.List <MemberDeclarationSyntax>(); XElement xelement = vsctDocument.Root.Element(XNames.Commands).Element(XNames.Buttons); if (xelement != null && xelement.HasElements) { foreach (XElement element in xelement.Elements(XNames.Button)) { string str = element.AttributeValueNull("id"); NameMaker.MakeCommandIDName(str); string nameForButtonName = VsctHelper.GetGuidSymbolNameForButtonName(vsctDocument, str); syntaxList = @syntaxList.Add(FieldGenerator.GenerateCommandIDField(str, nameForButtonName)); } } return(SyntaxFactory.ClassDeclaration("CommandIds") .WithModifiers(Modifiers.InternalStaticPartial) .WithMembers(syntaxList) .NormalizeWhitespace()); }