public static <T, E extends Throwable> T withContext(Project project, @NotNull ThrowableComputable<T, E> computable) throws E {
    try {
      ourTemplateManager.set(project == null ? FileTemplateManager.getDefaultInstance() : FileTemplateManager.getInstance(project));
      return computable.compute();
    }
    finally {
      ourTemplateManager.set(null);
    }
  }
public static <T, E extends Throwable> T withContext(Project project, @NotNull ThrowableComputable<T, E> computable)