aboutsummaryrefslogtreecommitdiff
path: root/doc/source/_ext
diff options
context:
space:
mode:
Diffstat (limited to 'doc/source/_ext')
-rw-r--r--doc/source/_ext/signals.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/doc/source/_ext/signals.py b/doc/source/_ext/signals.py
new file mode 100644
index 0000000..0e7cbee
--- /dev/null
+++ b/doc/source/_ext/signals.py
@@ -0,0 +1,20 @@
+"""Adds a new directive signal for GObject signals"""
+
+import re
+
+from sphinx import addnodes
+
+signal_re = re.compile(r"([a-zA-Z-]+)\s->(.*)")
+
+def parse_signal(env, sig, signode):
+ match = signal_re.match(sig)
+ if not match:
+ signode += addnodes.desc_name(sig, sig)
+ return sig
+ name, args = match.groups()
+ signode += addnodes.desc_name(name, name)
+ signode += addnodes.desc_returns(args.strip(), args.strip())
+ return name
+
+def setup(app):
+ app.add_description_unit("signal", "sig", "pair: %s; signal", parse_signal)