private @NotNull Map<String, LibraryTable> getCustomLibrariesMap() {
    if (extensionLoaded) {
      return customLibraryTables;
    }

    synchronized (extensionLoadingLock) {
      if (!extensionLoaded) {
        CustomLibraryTableDescription.CUSTOM_TABLES_EP.getPoint().addExtensionPointListener(new ExtensionPointListener<>() {
          @Override
          public void extensionAdded(@NotNull CustomLibraryTableDescription extension, @NotNull PluginDescriptor pluginDescriptor) {
            LibraryTable table = new CustomLibraryTableImpl(extension.getTableLevel(), extension.getPresentation());
            customLibraryTables.put(extension.getTableLevel(), table);
          }

          @Override
          public void extensionRemoved(@NotNull CustomLibraryTableDescription extension, @NotNull PluginDescriptor pluginDescriptor) {
            LibraryTable table = customLibraryTables.remove(extension.getTableLevel());
            if (table instanceof Disposable disposable) {
              Disposer.dispose(disposable);
            }
          }
        }, true, null);
        extensionLoaded = true;
      }
    }
    return customLibraryTables;
  }
private @NotNull Map<String, LibraryTable> getCustomLibrariesMap()