void (@NotNull Application instance, @NotNull Supplier<? extends FileTypeRegistry> fileTypeRegistryGetter, @NotNull Disposable parent) { Application old = ourApplication; setApplication(instance); Supplier<? extends FileTypeRegistry> oldFileTypeRegistry = FileTypeRegistry.setInstanceSupplier(fileTypeRegistryGetter); Disposer.register(parent, () -> { if (old != null) { // to prevent NPEs in threads still running setApplication(old); FileTypeRegistry.setInstanceSupplier(oldFileTypeRegistry); } }); }