@Override
    public @NotNull Object @NotNull [] getVariants() {
      VirtualFile directory = getDirectory();
      if (directory == null) return ArrayUtilRt.EMPTY_OBJECT_ARRAY;
      PsiManager manager = getManager();
      List<Object> list = new ArrayList<>();
      for (VirtualFile child : directory.getChildren()) {
        if (child.isDirectory()) {
          list.add(child.getName() + mySeparator);
        }
        else if (myExtension != null) {
          if (myExtension.equalsIgnoreCase(child.getExtension())) {
            list.add(child.getNameWithoutExtension());
          }
        }
        else {
          PsiFile psiFile = manager.findFile(child);
          ContainerUtil.addIfNotNull(list, psiFile);
        }
      }
      return list.toArray();
    }
@Override
    public @NotNull Object @NotNull [] getVariants()