mirror of
https://gitlab.gnome.org/jwestman/blueprint-compiler.git
synced 2025-05-04 15:59:08 -04:00
lsp: Add more "go to reference" implementations
This commit is contained in:
parent
94b532bc35
commit
f6d05be10b
3 changed files with 27 additions and 0 deletions
|
@ -115,6 +115,17 @@ class AdwBreakpointSetter(AstNode):
|
|||
self.value.range.text,
|
||||
)
|
||||
|
||||
def get_reference(self, idx: int) -> T.Optional[LocationLink]:
|
||||
if idx in self.group.tokens["object"].range:
|
||||
if self.object is not None:
|
||||
return LocationLink(
|
||||
self.group.tokens["object"].range,
|
||||
self.object.range,
|
||||
self.object.ranges["id"],
|
||||
)
|
||||
|
||||
return None
|
||||
|
||||
@context(ValueTypeCtx)
|
||||
def value_type(self) -> ValueTypeCtx:
|
||||
if self.gir_property is not None:
|
||||
|
|
|
@ -117,6 +117,16 @@ class Signal(AstNode):
|
|||
self.ranges["detail_start", "detail_end"].text,
|
||||
)
|
||||
|
||||
def get_reference(self, idx: int) -> T.Optional[LocationLink]:
|
||||
if idx in self.group.tokens["object"].range:
|
||||
obj = self.context[ScopeCtx].objects.get(self.object_id)
|
||||
if obj is not None:
|
||||
return LocationLink(
|
||||
self.group.tokens["object"].range, obj.range, obj.ranges["id"]
|
||||
)
|
||||
|
||||
return None
|
||||
|
||||
@validate("handler")
|
||||
def old_extern(self):
|
||||
if not self.tokens["extern"]:
|
||||
|
|
|
@ -39,6 +39,12 @@ class Widget(AstNode):
|
|||
self.group.tokens["name"].range,
|
||||
)
|
||||
|
||||
def get_reference(self, _idx: int) -> T.Optional[LocationLink]:
|
||||
if obj := self.context[ScopeCtx].objects.get(self.name):
|
||||
return LocationLink(self.range, obj.range, obj.ranges["id"])
|
||||
else:
|
||||
return None
|
||||
|
||||
@validate("name")
|
||||
def obj_widget(self):
|
||||
object = self.context[ScopeCtx].objects.get(self.tokens["name"])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue