signal: Add object signature on hover

This commit is contained in:
James Westman 2025-05-03 19:31:00 -05:00
parent 8c19561636
commit 6bef9a39dd
No known key found for this signature in database
GPG key ID: CE2DBA0ADB654EA6

View file

@ -21,7 +21,7 @@ import typing as T
from .common import * from .common import *
from .contexts import ScopeCtx from .contexts import ScopeCtx
from .gtkbuilder_template import Template from .gobject_object import Object
class SignalFlag(AstNode): class SignalFlag(AstNode):
@ -110,6 +110,10 @@ class Signal(AstNode):
def object_id(self) -> T.Optional[str]: def object_id(self) -> T.Optional[str]:
return self.tokens["object"] return self.tokens["object"]
@property
def object(self) -> T.Optional[Object]:
return self.context[ScopeCtx].objects.get(self.object_id)
@property @property
def flags(self) -> T.List[SignalFlag]: def flags(self) -> T.List[SignalFlag]:
return self.children[SignalFlag] return self.children[SignalFlag]
@ -162,6 +166,13 @@ class Signal(AstNode):
return None 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") @validate("handler")
def old_extern(self): def old_extern(self):
if not self.tokens["extern"]: if not self.tokens["extern"]: