boolean contains(@NotNull VirtualFile file, @NotNull AreaInstance area) {
      // may be called from unexpected thread
      return ContainerUtil.exists(roots, root -> root.canRepresentOrContain(file, area)) ||
             ContainerUtil.exists(groups.values(), group -> group.contains(file, area));
    }
boolean contains(@NotNull VirtualFile file, @NotNull AreaInstance area)