Skip to content

Commit 0e156a6

Browse files
committed
Add support for generics in TypeScript GraphQL tagged template literals (#200)
1 parent 7f7ee5a commit 0e156a6

File tree

1 file changed

+3
-9
lines changed

1 file changed

+3
-9
lines changed

src/main/com/intellij/lang/jsgraphql/ide/injection/javascript/GraphQLLanguageInjectionUtil.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.intellij.psi.PsiElement;
2323
import com.intellij.psi.PsiFile;
2424
import com.intellij.psi.PsiRecursiveElementVisitor;
25+
import com.intellij.psi.util.PsiTreeUtil;
2526
import org.jetbrains.annotations.Nullable;
2627

2728
import java.util.Set;
@@ -86,15 +87,8 @@ public void visitElement(PsiElement element) {
8687
public static boolean isJSGraphQLLanguageInjectionTarget(PsiElement host, @Nullable Ref<String> envRef) {
8788
if (host instanceof JSStringTemplateExpression) {
8889
JSStringTemplateExpression template = (JSStringTemplateExpression) host;
89-
// check if we're a Relay.QL or graphql tagged template
90-
JSReferenceExpression tagExpression = null;
91-
if(template.getFirstChild() instanceof JSReferenceExpression) {
92-
// up to version 2016.X
93-
tagExpression = (JSReferenceExpression) template.getFirstChild();
94-
} else if(template.getPrevSibling() instanceof JSReferenceExpression) {
95-
// from version 2017.1
96-
tagExpression = (JSReferenceExpression) template.getPrevSibling();
97-
}
90+
// check if we're a graphql tagged template
91+
final JSReferenceExpression tagExpression = PsiTreeUtil.getPrevSiblingOfType(template, JSReferenceExpression.class);
9892
if (tagExpression != null) {
9993
final String tagText = tagExpression.getText();
10094
if (SUPPORTED_TAG_NAMES.contains(tagText)) {

0 commit comments

Comments
 (0)