Exemplo n.º 1
0
            private static void AddNewDirectiveTriviaSpan(TreeTextSpan.Builder spanBuilder, Stack <TreeTextSpan.Builder> spanStack, DirectiveTriviaSyntax directiveTrivia)
            {
                var parent           = spanStack.Peek();
                var newDirectiveSpan = parent.AddChild(directiveTrivia.FullSpan.Start);

                spanStack.Push(newDirectiveSpan);
            }
Exemplo n.º 2
0
            private static void ProcessNodeMembers(TreeTextSpan.Builder builder, SyntaxList <MemberDeclarationSyntax> members)
            {
                foreach (var namespaceDeclaration in members.OfType <NamespaceDeclarationSyntax>())
                {
                    var childBuilder = builder.AddChild(namespaceDeclaration.FullSpan.Start);
                    childBuilder.SetEnd(namespaceDeclaration.FullSpan.End);

                    ProcessNodeMembers(childBuilder, namespaceDeclaration.Members);
                }
            }
Exemplo n.º 3
0
            private static void ProcessNodeMembers(TreeTextSpan.Builder builder, SyntaxList <MemberDeclarationSyntax> members)
            {
                foreach (var namespaceDeclaration in members.Where(member => BaseNamespaceDeclarationSyntaxWrapper.IsInstance(member)))
                {
                    var childBuilder = builder.AddChild(namespaceDeclaration.FullSpan.Start);
                    childBuilder.SetEnd(namespaceDeclaration.FullSpan.End);

                    ProcessNodeMembers(childBuilder, ((BaseNamespaceDeclarationSyntaxWrapper)namespaceDeclaration).Members);
                }
            }
Exemplo n.º 4
0
            private static TreeTextSpan FinalizeBuilder(TreeTextSpan.Builder builder, Stack <TreeTextSpan.Builder> stack, int end)
            {
                // close all spans (including the root) that have not been closed yet
                while (stack.Count > 0)
                {
                    var span = stack.Pop();
                    span.SetEnd(end);
                }

                // Fill the gaps to make sure that directives on either side of an conditional directive group are not combined
                builder.FillGaps();

                return(builder.ToSpan());
            }
Exemplo n.º 5
0
            private static void CloseDirectiveTriviaSpan(TreeTextSpan.Builder spanBuilder, Stack <TreeTextSpan.Builder> spanStack, DirectiveTriviaSyntax directiveTrivia)
            {
                var previousSpan = spanStack.Pop();

                previousSpan.SetEnd(directiveTrivia.FullSpan.End);
            }