public void visitElement()

in src/main/com/intellij/lang/jsgraphql/ide/indexing/GraphQLIdentifierIndex.java [54:88]


      public void visitElement(@NotNull PsiElement element) {
        if (element instanceof GraphQLIdentifier) {
          if (!GraphQLInjectionUtils.isTemplatePlaceholder(element)) {
            identifiers.put(element.getText(), IdentifierKind.IDENTIFIER_NAME);
          }
          return; // no need to visit deeper
        }
        else if (element instanceof JsonElement) {
          if (element instanceof JsonFile) {
            if (!isIntrospectionJsonFile((JsonFile)element)) {
              // no need to visit this JSON file as it's not an introspection file
              return;
            }
          }
          if (element instanceof JsonProperty jsonProperty) {
            // GraphQL identifiers in an introspection result are defined using "name" properties:
            // https://graphql.github.io/graphql-spec/June2018/#sec-Schema-Introspection
            if ("name".equals(jsonProperty.getName())) {
              if (jsonProperty.getValue() instanceof JsonStringLiteral) {
                identifiers.put(
                  ((JsonStringLiteral)jsonProperty.getValue()).getValue(),
                  IdentifierKind.IDENTIFIER_NAME
                );
              }
            }
          }
        }
        else if (element instanceof PsiLanguageInjectionHost host) {
          if (GraphQLInjectionUtils.visitInjectionAsRawText(host, this)) {
            return;
          }
        }

        super.visitElement(element);
      }