public void install(@Nullable final Data data,
                      @Nullable final UserDataHolder context,
                      @NotNull final Settings settings) {
    if (!myEnabled) return;
    ThreadingAssertions.assertEventDispatchThread();

    for (FoldedBlock folding : getFoldedBlocks()) {
      folding.destroyHighlighter();
    }

    runBatchOperation(() -> {
      for (FoldedBlock folding : getFoldedBlocks()) {
        folding.destroyFolding();
      }
      myFoldings.clear();
      myHoveredBlock = null;


      if (data != null) {
        FoldingInstaller installer = new FoldingInstaller(context, settings);
        installer.install(data);
      }
    });

    updateLineNumbers(true);
  }
public void install(@Nullable final Data data,
                      @Nullable final UserDataHolder context,
                      @NotNull final Settings settings)