private static @NotNull HighlightingSessionImpl createHighlightingSession(@NotNull PsiFile psiFile,
                                                                            @NotNull DaemonProgressIndicator progressIndicator,
                                                                            @Nullable EditorColorsScheme editorColorsScheme,
                                                                            @NotNull ProperTextRange visibleRange,
                                                                            @NotNull CanISilentlyChange.Result canChangeFileSilently,
                                                                            @NotNull Number daemonCancelEventCount) {
    // no assertIsDispatchThread() is necessary
    Map<PsiFile, HighlightingSession> map = progressIndicator.getUserData(HIGHLIGHTING_SESSION);
    if (map == null) {
      map = progressIndicator.putUserDataIfAbsent(HIGHLIGHTING_SESSION, new ConcurrentHashMap<>());
    }
    HighlightingSessionImpl session = new HighlightingSessionImpl(psiFile, progressIndicator, editorColorsScheme, visibleRange, canChangeFileSilently, daemonCancelEventCount);
    map.put(psiFile, session);
    return session;
  }
private static @NotNull HighlightingSessionImpl createHighlightingSession(@NotNull PsiFile psiFile,
                                                                            @NotNull DaemonProgressIndicator progressIndicator,
                                                                            @Nullable EditorColorsScheme editorColorsScheme,
                                                                            @NotNull ProperTextRange visibleRange,
                                                                            @NotNull CanISilentlyChange.Result canChangeFileSilently,
                                                                            @NotNull Number daemonCancelEventCount)