@CalledInAny
  public static @NotNull <L> L syncPublisher(@NotNull Topic<L> topic) throws ProcessCanceledException {
    return ReadAction.compute(() -> {
      if (ApplicationManager.getApplication().isDisposed()) throw new ProcessCanceledException();
      return ApplicationManager.getApplication().getMessageBus().syncPublisher(topic);
    });
  }
@CalledInAny
  public static @NotNull <L> L syncPublisher(@NotNull Topic<L> topic)