コード例 #1
0
 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)));
 }
コード例 #2
0
        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);
        }
コード例 #3
0
        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());
        }