Capture doxygen comments for namespaces
This commit is contained in:
parent
dc76328bd5
commit
ff645920b8
@ -404,7 +404,7 @@ class CxxParser:
|
||||
|
||||
# TODO: namespace_alias_definition
|
||||
|
||||
ns = NamespaceDecl(names, inline)
|
||||
ns = NamespaceDecl(names, inline, doxygen)
|
||||
state = self._push_state(NamespaceBlockState, ns)
|
||||
state.location = location
|
||||
self.visitor.on_namespace_start(state)
|
||||
|
@ -92,6 +92,7 @@ class NamespaceScope:
|
||||
|
||||
name: str = ""
|
||||
inline: bool = False
|
||||
doxygen: typing.Optional[str] = None
|
||||
|
||||
classes: typing.List["ClassScope"] = field(default_factory=list)
|
||||
enums: typing.List[EnumDecl] = field(default_factory=list)
|
||||
@ -249,8 +250,9 @@ class SimpleCxxVisitor:
|
||||
|
||||
assert ns is not None
|
||||
|
||||
# only set inline on inner namespace
|
||||
# only set inline/doxygen on inner namespace
|
||||
ns.inline = state.namespace.inline
|
||||
ns.doxygen = state.namespace.doxygen
|
||||
|
||||
self.block = ns
|
||||
self.namespace = ns
|
||||
|
@ -56,6 +56,9 @@ class NamespaceDecl:
|
||||
names: typing.List[str]
|
||||
inline: bool = False
|
||||
|
||||
#: Documentation if present
|
||||
doxygen: typing.Optional[str] = None
|
||||
|
||||
|
||||
@dataclass
|
||||
class DecltypeSpecifier:
|
||||
|
@ -290,3 +290,42 @@ def test_doxygen_var_after() -> None:
|
||||
]
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def test_doxygen_namespace() -> None:
|
||||
content = """
|
||||
/**
|
||||
* x is a mysterious namespace
|
||||
*/
|
||||
namespace x {}
|
||||
|
||||
/**
|
||||
* c is also a mysterious namespace
|
||||
*/
|
||||
namespace a::b::c {}
|
||||
"""
|
||||
data = parse_string(content, cleandoc=True)
|
||||
|
||||
assert data == ParsedData(
|
||||
namespace=NamespaceScope(
|
||||
namespaces={
|
||||
"x": NamespaceScope(
|
||||
name="x", doxygen="/**\n* x is a mysterious namespace\n*/"
|
||||
),
|
||||
"a": NamespaceScope(
|
||||
name="a",
|
||||
namespaces={
|
||||
"b": NamespaceScope(
|
||||
name="b",
|
||||
namespaces={
|
||||
"c": NamespaceScope(
|
||||
name="c",
|
||||
doxygen="/**\n* c is also a mysterious namespace\n*/",
|
||||
)
|
||||
},
|
||||
)
|
||||
},
|
||||
),
|
||||
}
|
||||
)
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user