Пример #1
0
        public void TriviaTest_Comments()
        {
            LNode node;

            node = Foo.PlusAttr(F.Trivia(S.TriviaMLComment, " before ")).PlusTrailingTrivia(F.Trivia(S.TriviaMLComment, " after "));
            Exact("/* before */Foo; /* after */", node);
            node = one.PlusAttr(F.Trivia(S.TriviaSLComment, " before ")).PlusTrailingTrivia(F.Trivia(S.TriviaSLComment, " after "));
            Exact("// before \n1;\t// after ", node);
            node = F.Call(F.Id(S.Eq).PlusAttr(F.Trivia(S.TriviaMLComment, "[")).PlusTrailingTrivia(F.Trivia(S.TriviaSLComment, "]")),
                          Foo, x.PlusAttrs(F.TriviaNewline, F.Trivia(S.TriviaMLComment, "{")).PlusTrailingTrivia(F.Trivia(S.TriviaMLComment, "}"))
                          ).PlusAttr(F.Trivia(S.TriviaMLComment, " before ")).PlusTrailingTrivia(F.Trivia(S.TriviaMLComment, " after "));
            Exact("/* before */Foo /*[*/== //]\n  /*{*/x /*}*/; /* after */", node);

            node = F.Call(Foo).PlusAttrs(a.PlusTrailingTrivia(F.Trivia(S.TriviaSLComment, "Comment after a")),
                                         b, F.Trivia(S.TriviaMLComment, "Comment before c"), c);
            Exact("@[a\t//Comment after a\n" +
                  "  , b] /*Comment before c*/@[c] Foo();", node);
            // TODO: The following example parses as shown but is printed out differently.
            // Either we should change AbstractTriviaInjector to emit the comment at the
            // "top level" of the attribute list (not attached to `a`) or we should change
            // the node printer to print the comma before it prints trailing trivia.
            node = F.Call(Foo).PlusAttrs(a, F.Trivia(S.TriviaSLComment, "Comment after a"),
                                         b, F.Trivia(S.TriviaMLComment, "Comment before c"), c);
            Exact("@[a] //Comment after a\n" +
                  "@[b] /*Comment before c*/@[c] Foo();", node);
        }
Пример #2
0
        private LNode AttachTriviaTo(LNode node, IListSource <Trivia> trivia, TriviaLocation loc, LNode parent, int indexInParent)
        {
            var newAttrs = GetTriviaToAttach(node, trivia, loc, parent, indexInParent);

            if (loc == TriviaLocation.Leading)
            {
                return(node.PlusAttrsBefore(newAttrs));
            }
            else
            {
                return(node.PlusTrailingTrivia(newAttrs));
            }
        }
Пример #3
0
        public void TriviaTest_Comments()
        {
            LNode node;

            node = Foo.PlusAttr(F.Trivia(S.TriviaMLComment, " before ")).PlusTrailingTrivia(F.Trivia(S.TriviaMLComment, " after "));
            Exact("/* before */Foo /* after */", node);
            node = one.PlusAttr(F.Trivia(S.TriviaSLComment, " before ")).PlusTrailingTrivia(F.Trivia(S.TriviaSLComment, " after "));
            Exact("// before \n1\t// after ", node);

            Exact("Foo(a,\t// Commentary\n  b)",
                  F.Call(Foo, a.PlusTrailingTrivia(F.Trivia(S.TriviaSLComment, " Commentary")), OnNewLine(b)));

            node = F.Call(F.Id(S.Eq).PlusAttr(F.Trivia(S.TriviaMLComment, "[")).PlusTrailingTrivia(F.Trivia(S.TriviaSLComment, "]")),
                          Foo, x.PlusAttrs(F.TriviaNewline, F.Trivia(S.TriviaMLComment, "x"))
                          ).PlusAttr(F.Trivia(S.TriviaMLComment, " before ")).PlusTrailingTrivia(F.Trivia(S.TriviaMLComment, " after "));
            Exact("/* before */Foo /*[*/==\t//]\n/*x*/x /* after */", node);

            node = F.Call(Foo).PlusAttrs(a, F.Trivia(S.TriviaSLComment, "Comment after a"),
                                         b, F.Trivia(S.TriviaMLComment, "Comment before c"), c);
            Exact("@a //Comment after a\n" +
                  "@b /*Comment before c*/@c Foo()", node);
        }
Пример #4
0
 protected LNode NewlineAfter(LNode node)
 {
     return(node.PlusTrailingTrivia(F.TriviaNewline));
 }
Пример #5
0
		protected LNode NewlineAfter(LNode node)
		{
			return node.PlusTrailingTrivia(F.TriviaNewline);
		}
Пример #6
0
 protected LNode NewlineAfter(LNode node) => node.PlusTrailingTrivia(F.TriviaNewline);