@@ -12,9 +12,100 @@ def __init__(self, pattern: str, replacement: str, name: Union[str, None] = None
12
12
self .name = name
13
13
14
14
15
+ # https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#cross-referencing-python-objects
16
+ SPHINX_CROSS_REF_PYTHON = (
17
+ 'mod' ,
18
+ 'func' ,
19
+ 'data' ,
20
+ 'const' ,
21
+ 'class' ,
22
+ 'meth' ,
23
+ 'attr' ,
24
+ 'exc' ,
25
+ 'obj'
26
+ )
27
+
28
+ # https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#cross-referencing-c-constructs
29
+ SPHINX_CROSS_REF_C = (
30
+ 'member' ,
31
+ 'data' ,
32
+ 'func' ,
33
+ 'macro' ,
34
+ 'struct' ,
35
+ 'union' ,
36
+ 'enum' ,
37
+ 'enumerator' ,
38
+ 'type'
39
+ )
40
+
41
+ # https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#cross-referencing
42
+ SPHINX_CROSS_REF_CPP = (
43
+ 'any' ,
44
+ 'class' ,
45
+ 'struct' ,
46
+ 'func' ,
47
+ 'member' ,
48
+ 'var' ,
49
+ 'type' ,
50
+ 'concept' ,
51
+ 'enum' ,
52
+ 'enumerator'
53
+ )
54
+
55
+ # https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#the-javascript-domain
56
+ SPHINX_CROSS_REF_JS = (
57
+ 'mod' ,
58
+ 'func' ,
59
+ 'meth' ,
60
+ 'class' ,
61
+ 'data' ,
62
+ 'attr'
63
+ )
64
+
65
+ # https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#the-restructuredtext-domain
66
+ SPHINX_CROSS_REF_RST = (
67
+ 'dir' ,
68
+ 'role'
69
+ )
70
+
71
+ # https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html
72
+ SPHINX_CROSS_REF_OTHER = (
73
+ 'any' ,
74
+ # https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#cross-referencing-other-items-of-interest
75
+ 'envvar' ,
76
+ 'token' ,
77
+ 'keyword' ,
78
+ 'option' ,
79
+ 'term' ,
80
+ )
81
+
15
82
SPHINX_RULES : List [Directive ] = [
16
83
Directive (
17
- pattern = r':(func|meth|class|obj|term):`\.?(?P<name>[^`]+?)`' ,
84
+ pattern = r':c:({}):`\.?(?P<name>[^`]+?)`' .format ('|' .join (SPHINX_CROSS_REF_C )),
85
+ replacement = r'`\g<name>`'
86
+ ),
87
+ Directive (
88
+ pattern = r':c:({}):`\.?(?P<name>[^`]+?)`' .format ('|' .join (SPHINX_CROSS_REF_C )),
89
+ replacement = r'`\g<name>`'
90
+ ),
91
+ Directive (
92
+ pattern = r':cpp:({}):`\.?(?P<name>[^`]+?)`' .format ('|' .join (SPHINX_CROSS_REF_CPP )),
93
+ replacement = r'`\g<name>`'
94
+ ),
95
+ Directive (
96
+ pattern = r':js:({}):`\.?(?P<name>[^`]+?)`' .format ('|' .join (SPHINX_CROSS_REF_JS )),
97
+ replacement = r'`\g<name>`'
98
+ ),
99
+ Directive (
100
+ pattern = r'(:py)?:({}):`\.?(?P<name>[^`]+?)`' .format ('|' .join (SPHINX_CROSS_REF_PYTHON )),
101
+ replacement = r'`\g<name>`'
102
+ ),
103
+ Directive (
104
+ pattern = r'(:rst)?:({}):`\.?(?P<name>[^`]+?)`' .format ('|' .join (SPHINX_CROSS_REF_RST )),
105
+ replacement = r'`\g<name>`'
106
+ ),
107
+ Directive (
108
+ pattern = r':({}):`\.?(?P<name>[^`]+?)`' .format ('|' .join (SPHINX_CROSS_REF_OTHER )),
18
109
replacement = r'`\g<name>`'
19
110
),
20
111
Directive (
0 commit comments