File tree 10 files changed +111
-42
lines changed
addons/generator/asciidoc/partials
10 files changed +111
-42
lines changed Original file line number Diff line number Diff line change @@ -28,5 +28,14 @@ enum {{name}};
28
28
=== Description
29
29
30
30
{{symbol.doc.description}}
31
+ {{/if}}
32
+
33
+ {{#if symbol.members}}
34
+ {{#each symbol.members}}
35
+ {{#if doc.description}}
36
+ ==== {{name}}
31
37
38
+ {{doc.description}}
39
+ {{/if}}
40
+ {{/each}}
32
41
{{/if}}
Original file line number Diff line number Diff line change 24
24
namespace clang {
25
25
namespace mrdox {
26
26
27
- // FIXME: this does not store javadocs...
28
27
// Information for a single possible value of an enumeration.
29
28
struct EnumValueInfo
30
29
{
Original file line number Diff line number Diff line change @@ -285,11 +285,25 @@ writeEnum(
285
285
286
286
writeSourceInfo (I);
287
287
288
- for (auto const & v : I.Members )
289
- tags_.write (" value" , {}, {
290
- { " name" , v.Name },
291
- { " value" , v.Value },
288
+ for (auto const & V : I.Members )
289
+ {
290
+ if (! V.javadoc )
291
+ {
292
+ tags_.write (" value" , {}, {
293
+ { " name" , V.Name },
294
+ { " value" , V.Value },
295
+ });
296
+ }
297
+ else
298
+ {
299
+ tags_.open (" value" , {
300
+ { " name" , V.Name },
301
+ { " value" , V.Value }
292
302
});
303
+ writeJavadoc (V.javadoc );
304
+ tags_.close (" value" );
305
+ }
306
+ }
293
307
294
308
writeJavadoc (I.javadoc );
295
309
Original file line number Diff line number Diff line change @@ -206,41 +206,26 @@ createContext(
206
206
}));
207
207
}
208
208
209
+ template <class T >
209
210
Expected<std::string>
210
211
Builder::
211
- operator ()(NamespaceInfo const & I)
212
+ operator ()(T const & I)
212
213
{
213
214
return callTemplate (
214
215
" single-symbol.adoc.hbs" ,
215
216
createContext (I.id ));
216
217
}
217
218
218
- Expected<std::string>
219
- Builder::
220
- operator ()(RecordInfo const & I)
221
- {
222
- return callTemplate (
223
- " single-symbol.adoc.hbs" ,
224
- createContext (I.id ));
225
- }
226
-
227
- Expected<std::string>
228
- Builder::
229
- operator ()(FunctionInfo const & I)
230
- {
231
- return callTemplate (
232
- " single-symbol.adoc.hbs" ,
233
- createContext (I.id ));
234
- }
219
+ #define DEFINE (T ) template Expected<std::string> \
220
+ Builder::operator ()<T>(T const &)
235
221
236
- Expected<std::string>
237
- Builder::
238
- operator ()(EnumInfo const & I)
239
- {
240
- return callTemplate (
241
- " single-symbol.adoc.hbs" ,
242
- createContext (I.id ));
243
- }
222
+ DEFINE (NamespaceInfo);
223
+ DEFINE (RecordInfo);
224
+ DEFINE (FunctionInfo);
225
+ DEFINE (EnumInfo);
226
+ DEFINE (TypedefInfo);
227
+ DEFINE (VariableInfo);
228
+ DEFINE (FieldInfo);
244
229
245
230
} // adoc
246
231
} // mrdox
Original file line number Diff line number Diff line change @@ -49,10 +49,8 @@ class Builder
49
49
dom::ObjectPtr getSymbol (SymbolID const & id);
50
50
dom::ObjectPtr createContext (SymbolID const & id);
51
51
52
- Expected<std::string> operator ()(NamespaceInfo const &);
53
- Expected<std::string> operator ()(RecordInfo const &);
54
- Expected<std::string> operator ()(FunctionInfo const &);
55
- Expected<std::string> operator ()(EnumInfo const &);
52
+ template <class T >
53
+ Expected<std::string> operator ()(T const &);
56
54
};
57
55
58
56
} // adoc
Original file line number Diff line number Diff line change @@ -576,7 +576,12 @@ parseEnumerators(
576
576
577
577
SmallString<16 > ValueStr;
578
578
E->getInitVal ().toString (ValueStr);
579
- I.Members .emplace_back (E->getNameAsString (), ValueStr.str (), ValueExpr);
579
+
580
+ I.Members .emplace_back (
581
+ E->getNameAsString (),
582
+ ValueStr.str (),
583
+ ValueExpr);
584
+ parseRawComment (I.Members .back ().javadoc , E);
580
585
}
581
586
}
582
587
Original file line number Diff line number Diff line change @@ -932,11 +932,14 @@ class TypedefBlock
932
932
class EnumValueBlock : public BitcodeReader ::AnyBlock
933
933
{
934
934
EnumValueInfo& I_;
935
+ BitcodeReader& br_;
935
936
936
937
public:
937
938
EnumValueBlock (
938
- EnumValueInfo& I) noexcept
939
+ EnumValueInfo& I,
940
+ BitcodeReader& br) noexcept
939
941
: I_(I)
942
+ , br_(br)
940
943
{
941
944
}
942
945
@@ -956,6 +959,22 @@ class EnumValueBlock : public BitcodeReader::AnyBlock
956
959
return AnyBlock::parseRecord (R, ID, Blob);
957
960
}
958
961
}
962
+
963
+ Error
964
+ readSubBlock (
965
+ unsigned ID) override
966
+ {
967
+ switch (ID)
968
+ {
969
+ case BI_JAVADOC_BLOCK_ID:
970
+ {
971
+ JavadocBlock B (I_.javadoc , br_);
972
+ return br_.readBlock (B, ID);
973
+ }
974
+ default :
975
+ return AnyBlock::readSubBlock (ID);
976
+ }
977
+ }
959
978
};
960
979
961
980
class EnumBlock
@@ -997,7 +1016,7 @@ class EnumBlock
997
1016
case BI_ENUM_VALUE_BLOCK_ID:
998
1017
{
999
1018
I->Members .emplace_back ();
1000
- EnumValueBlock B (I->Members .back ());
1019
+ EnumValueBlock B (I->Members .back (), br_ );
1001
1020
return br_.readBlock (B, ID);
1002
1021
}
1003
1022
default :
Original file line number Diff line number Diff line change @@ -788,6 +788,7 @@ emitBlock(
788
788
emitRecord (I.Name , ENUM_VALUE_NAME);
789
789
emitRecord (I.Value , ENUM_VALUE_VALUE);
790
790
emitRecord (I.ValueExpr , ENUM_VALUE_EXPR);
791
+ emitBlock (I.javadoc );
791
792
}
792
793
793
794
void
Original file line number Diff line number Diff line change 1
1
struct T {};
2
2
3
+ /* * This is an enum
4
+
5
+ Good enum.
6
+ */
3
7
enum E
4
8
{
5
9
/* * hmm
Original file line number Diff line number Diff line change 5
5
<struct name =" T" id =" CgGNdHpW5mG/i5741WPYQDw28OQ=" >
6
6
<file path =" test.cpp" line =" 1" class =" def" />
7
7
</struct >
8
- <function name =" f" id =" sgP6K1YoLuQEErJPRWdhzK0NBdQ=" >
9
- <file path =" test.cpp" line =" 2" />
10
- <param name =" t" type =" const T & " id =" CgGNdHpW5mG/i5741WPYQDw28OQ=" />
11
- </function >
8
+ <enum name =" E" id =" xf6YhxRw8JpsHMwP6Tgyroti2gw=" >
9
+ <file path =" test.cpp" line =" 7" class =" def" />
10
+ <value name =" a" value =" 0" >
11
+ <doc >
12
+ <para >
13
+ <text > hmm</text >
14
+ </para >
15
+ </doc >
16
+ </value >
17
+ <value name =" b" value =" 2" >
18
+ <doc >
19
+ <para >
20
+ <text > hmm</text >
21
+ </para >
22
+ </doc >
23
+ </value >
24
+ <value name =" c" value =" 3" >
25
+ <doc >
26
+ <para >
27
+ <text > hmm</text >
28
+ </para >
29
+ </doc >
30
+ </value >
31
+ <value name =" d" value =" 4" >
32
+ <doc >
33
+ <para >
34
+ <text > hmm</text >
35
+ </para >
36
+ </doc >
37
+ </value >
38
+ <doc >
39
+ <brief >
40
+ <text > This is an enum</text >
41
+ </brief >
42
+ <para >
43
+ <text > Good enum.</text >
44
+ </para >
45
+ </doc >
46
+ </enum >
12
47
</namespace >
13
48
</mrdox >
You can’t perform that action at this time.
0 commit comments