From 6bef9a39dd5cdccce3f7526b6a6edee76e54e577 Mon Sep 17 00:00:00 2001 From: James Westman Date: Sat, 3 May 2025 19:31:00 -0500 Subject: [PATCH] signal: Add object signature on hover --- blueprintcompiler/language/gobject_signal.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/blueprintcompiler/language/gobject_signal.py b/blueprintcompiler/language/gobject_signal.py index 34269d2..aad1aed 100644 --- a/blueprintcompiler/language/gobject_signal.py +++ b/blueprintcompiler/language/gobject_signal.py @@ -21,7 +21,7 @@ import typing as T from .common import * from .contexts import ScopeCtx -from .gtkbuilder_template import Template +from .gobject_object import Object class SignalFlag(AstNode): @@ -110,6 +110,10 @@ class Signal(AstNode): def object_id(self) -> T.Optional[str]: return self.tokens["object"] + @property + def object(self) -> T.Optional[Object]: + return self.context[ScopeCtx].objects.get(self.object_id) + @property def flags(self) -> T.List[SignalFlag]: return self.children[SignalFlag] @@ -162,6 +166,13 @@ class Signal(AstNode): return None + @docs("object") + def object_docs(self): + if self.object is not None: + return f"```\n{self.object.signature}\n```" + else: + return None + @validate("handler") def old_extern(self): if not self.tokens["extern"]: