@Override
  @Internal
  public @NotNull CachedFileContent loadContent(@NotNull VirtualFile file) throws FailedToLoadContentException, TooLargeContentException {
    CachedFileContent content = new CachedFileContent(file);
    if (file.isDirectory() || !file.isValid() || file.is(VFileProperty.SPECIAL) || VfsUtilCore.isBrokenLink(file)) {
      content.setEmptyContent();
      return content;
    }

    // Reads the content bytes and caches them. Hint at the current project to avoid expensive read action in ProjectLocator.
    try {
      try (AccessToken ignored = ProjectLocator.withPreferredProject(file, myProject)) {
        content.getBytes();
      }
    }
    catch (ProcessCanceledException e) {
      throw e;
    }
    catch (FileTooBigException e) {
      throw new TooLargeContentException(file);
    }
    catch (Throwable e) {
      throw new FailedToLoadContentException(file, e);
    }
    return content;
  }
@Override
  @Internal
  public @NotNull CachedFileContent loadContent(@NotNull VirtualFile file)