public override SyntaxNode VisitGlobalVarSection(GlobalVarSectionSyntax node)
 {
     if ((this.NodeInSpan(node)) && (!node.ContainsDiagnostics))
     {
         node = node.WithVariables(this.SortVariables(node.Variables));
     }
     return(base.VisitGlobalVarSection(node));
 }
示例#2
0
        public void TestAnalyzeGlobalVariables()
        {
            CancellationTokenSource source = new CancellationTokenSource();
            CancellationToken       token  = source.Token;
            GlobalVarSectionSyntax  globalVarSectionSyntax = null;

            IEnumerable <SyntaxNode> objectNodes = (SyntaxTree.ParseObjectText(GenerateFakeObjectWithVarForCodeLines("test: Integer;", "test += 1;")).GetRoot(token) as ObjectCompilationUnitSyntax).Objects.FirstOrDefault().DescendantNodes();

            foreach (SyntaxNode syntax in objectNodes)
            {
                if (syntax.Kind == SyntaxKind.GlobalVarSection)
                {
                    globalVarSectionSyntax = syntax as GlobalVarSectionSyntax;
                }
            }
            SyntaxNodeAnalysisContext context = new SyntaxNodeAnalysisContext();

            GlobalVariablesPlacement.AnalyzeGlobalVariables(context);
            if (globalVarSectionSyntax != null)
            {
                GlobalVariablesPlacement.AnalyzeGlobalVariablesPlacement(context, globalVarSectionSyntax);
            }
        }
示例#3
0
 public static void AnalyzeGlobalVariablesPlacement(SyntaxNodeAnalysisContext context, GlobalVarSectionSyntax syntax)
 {
     if (syntax != null)
     {
         int        globalVarSectionPosition = 0;
         int        triggersSectionPosition  = 0;
         int        MethodSectionPosition    = 0;
         SyntaxNode parent       = syntax.Parent;
         SyntaxKind kind         = parent.Kind;
         dynamic    parentSyntax = parent;
         if (parentSyntax != null)
         {
             foreach (MemberSyntax member in parentSyntax.Members)
             {
                 if (member.Kind == SyntaxKind.GlobalVarSection)
                 {
                     globalVarSectionPosition = member.Position;
                 }
                 if (member.Kind == SyntaxKind.TriggerDeclaration && triggersSectionPosition == 0)
                 {
                     triggersSectionPosition = member.Position;
                 }
                 if (member.Kind == SyntaxKind.MethodDeclaration && MethodSectionPosition == 0)
                 {
                     MethodSectionPosition = member.Position;
                 }
             }
         }
         if ((globalVarSectionPosition > triggersSectionPosition) || globalVarSectionPosition > MethodSectionPosition)
         {
             if (context.Node != null)
             {
                 ReportGlobalVariablesShouldbeBeforeTriggersProcedures(context, context.Node.GetLocation(), syntax.Kind);
             }
         }
     }
 }
示例#4
0
        public static void AnalyzeGlobalVariables(SyntaxNodeAnalysisContext context)
        {
            GlobalVarSectionSyntax syntax = context.Node as GlobalVarSectionSyntax;

            AnalyzeGlobalVariablesPlacement(context, syntax);
        }