xref: /llvm-project/clang/test/Index/comment-misc-tags.m (revision af6acd7442646fde56de919964bd52d7bb7922b2)
1// RUN: rm -rf %t
2// RUN: mkdir %t
3// RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng %s > %t/out
4// RUN: FileCheck %s < %t/out
5
6/*!
7     @interface IOCommandGate
8     @brief    This is a brief
9     @abstract Single-threaded work-loop client request mechanism.
10     @discussion An IOCommandGate instance is an extremely light weight mechanism that
11         executes an action on the driver's work-loop...
12     @textblock
13       Many discussions about text
14       Many1 discussions about text
15       Many2 discussions about text
16     @/textblock
17     @link //un_ref/c/func/function_name link text goes here @/link
18     @see  //un_ref/doc/uid/XX0000011 I/O Kit Fundamentals
19     @seealso //k_ref/doc/uid/XX30000905-CH204 Programming
20 */
21@interface IOCommandGate
22@end
23
24// CHECK:       (CXComment_BlockCommand CommandName=[abstract]
25// CHECK-NEXT:    (CXComment_Paragraph
26// CHECK-NEXT:       (CXComment_Text Text=[ Single-threaded work-loop client request mechanism.] HasTrailingNewline)
27// CHECK:       (CXComment_BlockCommand CommandName=[discussion]
28// CHECK-NEXT:     (CXComment_Paragraph
29// CHECK-NEXT:       (CXComment_Text Text=[ An IOCommandGate instance is an extremely light weight mechanism that] HasTrailingNewline)
30// CHECK-NEXT:       (CXComment_Text Text=[         executes an action on the driver's work-loop...] HasTrailingNewline)
31// CHECK:       (CXComment_VerbatimBlockCommand CommandName=[textblock]
32// CHECK-NEXT:     (CXComment_VerbatimBlockLine Text=[       Many discussions about text])
33// CHECK-NEXT:       (CXComment_VerbatimBlockLine Text=[       Many1 discussions about text])
34// CHECK-NEXT:       (CXComment_VerbatimBlockLine Text=[       Many2 discussions about text]))
35// CHECK-NEXT:       (CXComment_Paragraph IsWhitespace
36
37// CHECK:       (CXComment_VerbatimBlockCommand CommandName=[link]
38// CHECK-NEXT:     (CXComment_VerbatimBlockLine Text=[ //un_ref/c/func/function_name link text goes here ]))
39// CHECK-NEXT:     (CXComment_Paragraph IsWhitespace
40// CHECK-NEXT:     (CXComment_Text Text=[     ] IsWhitespace))
41// CHECK:       (CXComment_BlockCommand CommandName=[see]
42// CHECK-NEXT:     (CXComment_Paragraph
43// CHECK-NEXT:     (CXComment_Text Text=[  //un_ref/doc/uid/XX0000011 I/O Kit Fundamentals] HasTrailingNewline)
44// CHECK-NEXT:     (CXComment_Text Text=[     ] IsWhitespace)))
45// CHECK:       (CXComment_BlockCommand CommandName=[seealso]
46// CHECK-NEXT:     (CXComment_Paragraph
47// CHECK-NEXT:     (CXComment_Text Text=[ //k_ref/doc/uid/XX30000905-CH204 Programming])
48
49/*!
50\arg \c AlignLeft left alignment.
51\li \c AlignRight right alignment.
52
53  No other types of alignment are supported.
54*/
55struct S {
56  int AlignLeft;
57  int AlignRight;
58};
59
60// CHECK:       (CXComment_BlockCommand CommandName=[arg]
61// CHECK-NEXT:    (CXComment_Paragraph
62// CHECK-NEXT:    (CXComment_Text Text=[ ] IsWhitespace)
63// CHECK-NEXT:    (CXComment_InlineCommand CommandName=[c] RenderMonospaced Arg[0]=AlignLeft)
64// CHECK-NEXT:    (CXComment_Text Text=[ left alignment.] HasTrailingNewline)))
65// CHECK:       (CXComment_BlockCommand CommandName=[li]
66// CHECK-NEXT:    (CXComment_Paragraph
67// CHECK-NEXT:    (CXComment_Text Text=[ ] IsWhitespace)
68// CHECK-NEXT:    (CXComment_InlineCommand CommandName=[c] RenderMonospaced Arg[0]=AlignRight)
69// CHECK-NEXT:    (CXComment_Text Text=[ right alignment.])))
70// CHECK:       (CXComment_Paragraph
71// CHECK-NEXT:    (CXComment_Text Text=[  No other types of alignment are supported.]))
72
73/*! \struct Test
74 * Normal text.
75 *
76 * \par User defined paragraph:
77 * Contents of the paragraph.
78 *
79 * \par
80 * New paragraph under the same heading.
81 *
82 * \note
83 * This note consists of two paragraphs.
84 * This is the first paragraph.
85 *
86 * \par
87 * And this is the second paragraph.
88 *
89 * More normal text.
90 */
91
92struct Test {int filler;};
93
94// CHECK:       (CXComment_BlockCommand CommandName=[par] Arg[0]=User defined paragraph:
95// CHECK-NEXT:     (CXComment_Paragraph
96// CHECK-NEXT:        (CXComment_Text Text=[ Contents of the paragraph.])))
97// CHECK:       (CXComment_BlockCommand CommandName=[par]
98// CHECK-NEXT:     (CXComment_Paragraph
99// CHECK-NEXT:        (CXComment_Text Text=[New paragraph under the same heading.])))
100// CHECK:       (CXComment_BlockCommand CommandName=[note]
101// CHECK-NEXT:     (CXComment_Paragraph
102// CHECK-NEXT:        (CXComment_Text Text=[ This note consists of two paragraphs.] HasTrailingNewline)
103// CHECK-NEXT:        (CXComment_Text Text=[ This is the first paragraph.])))
104// CHECK:       (CXComment_BlockCommand CommandName=[par]
105// CHECK-NEXT:     (CXComment_Paragraph
106// CHECK-NEXT:     (CXComment_Text Text=[And this is the second paragraph.])))
107