Skip to content

Commit

Permalink
Fix goto references for TerseRelayResolver (#4587)
Browse files Browse the repository at this point in the history
Summary: Pull Request resolved: #4587

Reviewed By: alunyov

Differential Revision: D52886363

Pulled By: captbaritone

fbshipit-source-id: 24eccce3c150482525983475253849dda5751864
  • Loading branch information
tobias-tengler authored and facebook-github-bot committed Jan 19, 2024
1 parent 1b58844 commit 2f9e88a
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
11 changes: 11 additions & 0 deletions compiler/crates/relay-lsp/src/docblock_resolution_info.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,18 +37,21 @@ pub fn create_docblock_resolution_info(
}
};

// Root fragment
if let Some(root_fragment) = resolver_ir.root_fragment {
if root_fragment.location.contains(position_span) {
return Some(DocblockResolutionInfo::RootFragment(root_fragment.item));
}
}

// Field name
if resolver_ir.field.name.span.contains(position_span) {
return Some(DocblockResolutionInfo::FieldName(
resolver_ir.field.name.value,
));
}

// Return type
if let Some(output_type) = &resolver_ir.output_type {
if output_type.inner().location.contains(position_span) {
return Some(DocblockResolutionInfo::Type(
Expand All @@ -57,6 +60,7 @@ pub fn create_docblock_resolution_info(
}
}

// @deprecated key
if let Some(deprecated) = resolver_ir.deprecated {
if deprecated.key_location().contains(position_span) {
return Some(DocblockResolutionInfo::Deprecated);
Expand Down Expand Up @@ -89,6 +93,13 @@ pub fn create_docblock_resolution_info(
}
}

// Field name
if resolver_ir.field.name.span.contains(position_span) {
return Some(DocblockResolutionInfo::FieldName(
resolver_ir.field.name.value,
));
}

// @deprecated key
if let Some(deprecated) = resolver_ir.deprecated {
if deprecated.key_location().contains(position_span) {
Expand Down
5 changes: 1 addition & 4 deletions compiler/crates/relay-lsp/src/references/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,7 @@ fn get_references_response(
On::Type(type_) => type_.value.item,
On::Interface(interface) => interface.value.item,
},
DocblockIr::TerseRelayResolver(_) => {
// TODO: Implement support for terse relay resolvers.
return Err(LSPRuntimeError::ExpectedError);
}
DocblockIr::TerseRelayResolver(terse_resolver) => terse_resolver.type_.item,
DocblockIr::StrongObjectResolver(_) => {
// TODO: Implement support for strong object.
return Err(LSPRuntimeError::ExpectedError);
Expand Down

0 comments on commit 2f9e88a

Please sign in to comment.