@@ -16,33 +16,47 @@ def _normalize(self, name: str) -> str:
16
16
def listToNames (self , list ):
17
17
return [part .name_params for part in list ]
18
18
19
- def doxyClass (self , project , className : str ):
20
- classes = recursive_find (self .doxygen [project ].root .children , Kind .CLASS )
21
- if classes :
22
- for findClass in classes :
23
- if findClass .name_long == className :
24
- return findClass
25
- return self .listToNames (classes )
19
+ def _doxyParent (self , project , parent : str , kind : Kind ):
20
+ if not kind .is_parent ():
21
+ return None
22
+ parents = recursive_find (self .doxygen [project ].root .children , kind )
23
+ if parents :
24
+ for findParent in parents :
25
+ if findParent .name_log == parent :
26
+ return findParent
27
+ return self .listToNames (parents )
26
28
return None
27
29
28
- def doxyClassMethod (self , project , className : str , methodName : str ):
29
- findClass = self .doxyClass (project , className )
30
- if findClass :
31
- if isinstance (findClass , list ):
32
- for member in findClass :
33
- if self ._normalize (methodName ) in self ._normalize (member ):
30
+ def _doxyMemberInParent (self , project , parent : str , parentKind : Kind , memberName : str , memberKind : Kind ):
31
+ findParent = self ._doxyParent (project , parent , parentKind )
32
+ if findParent :
33
+ if isinstance (findParent , list ):
34
+ for member in findParent :
35
+ if self ._normalize (memberName ) in self ._normalize (member ):
34
36
return member
35
- return findClass
37
+ return findParent
36
38
else :
37
- members = recursive_find (findClass .children , Kind . FUNCTION )
39
+ members = recursive_find (findParent .children , memberKind )
38
40
if members :
39
41
for member in members :
40
- if self ._normalize (methodName ) in self ._normalize (member .name_params ):
42
+ if self ._normalize (memberName ) in self ._normalize (member .name_params ):
41
43
return member
42
44
return self .listToNames (members )
43
45
return None
44
46
return None
45
47
48
+ def doxyClass (self , project , className : str ):
49
+ return self ._doxyParent (project , className , Kind .CLASS )
50
+
51
+ def doxyNamespace (self , project , namespace : str ):
52
+ return self ._doxyParent (project , namespace , Kind .NAMESPACE )
53
+
54
+ def doxyClassMethod (self , project , className : str , methodName : str ):
55
+ return self ._doxyMemberInParent (project , className , Kind .CLASS , methodName , Kind .FUNCTION )
56
+
57
+ def doxyNamespaceFunction (self , project , namespace : str , functionName : str ):
58
+ return self ._doxyMemberInParent (project , namespace , Kind .NAMESPACE , functionName , Kind .FUNCTION )
59
+
46
60
def doxyFunction (self , project , functionName : str ):
47
61
functions = recursive_find_with_parent (self .doxygen [project ].files .children , [Kind .FUNCTION ], [Kind .FILE ])
48
62
if functions :
0 commit comments