@Override
      public FileReference createFileReference(TextRange range, int index, String text) {
        if (hashIndex != -1 && range.getStartOffset() >= hashIndex) return null;
        if (hashIndex != -1 && range.getEndOffset() > hashIndex) {
          range = new TextRange(range.getStartOffset(), hashIndex);
          text = text.substring(0, text.indexOf('#'));
        }
        return new FileReference(this, range, index, text) {
          @Override
          protected Object createLookupItem(PsiElement candidate) {
            return FileInfoManager.getFileLookupItem(candidate);
          }

          @Override
          public Object @NotNull [] getVariants() {
            final Object[] fileVariants = super.getVariants();
            if (!isCompletion || getRangeInElement().getStartOffset() != 1) {
              return fileVariants;
            }
            return ArrayUtil.mergeArrays(fileVariants, collectCatalogVariants());
          }

          private Object @NotNull [] collectCatalogVariants() {
            List<LookupElement> elements = new ArrayList<>();
            final Project project = getElement().getProject();
            final List<JsonSchemaInfo> schemas = JsonSchemaService.Impl.get(project).getAllUserVisibleSchemas();
            for (JsonSchemaInfo schema : schemas) {
              LookupElementBuilder element = LookupElementBuilder.create(schema.getUrl(project))
                .withPresentableText(schema.getDescription())
                .withLookupString(schema.getDescription())
                .withIcon(AllIcons.General.Web)
                .withTypeText(schema.getDocumentation(), true);
              if (schema.getName() != null) element = element.withLookupString(schema.getName());
              if (schema.getDocumentation() != null) element = element.withLookupString(schema.getDocumentation());
              elements.add(PrioritizedLookupElement.withPriority(element, -1));
            }
            return elements.toArray();
          }
        };
      }
@Override
      public FileReference createFileReference(TextRange range, int index, String text)