@Nullable
  @Override
  public SourcePosition getSourcePosition(final Location location) {
    return getCachedSourcePosition(location, fileType -> {
      return completedFuture(ReadAction.nonBlocking(() -> {
        return iterate(positionManager -> positionManager.getSourcePosition(location), null, fileType, false);
      }).executeSynchronously());
    }).getNow(null);
  }
@Nullable
  @Override
  public SourcePosition getSourcePosition(final Location location)