override fun collectNotificationData()

in plugin-bazel/src/main/kotlin/org/jetbrains/bazel/ui/notifications/BuildAndResyncOnUnresolvedImportNotificationsProvider.kt [33:53]


  override fun collectNotificationData(project: Project, file: VirtualFile): Function<in FileEditor, out JComponent?>? {
    if (!project.isBazelProject) return null
    if (file in disableNotificationForFile) return null
    if (project.isSyncInProgress()) return null
    if (BazelFeatureFlags.isBuildProjectOnSyncEnabled) return null
    if (!project.service<IncompleteDependenciesService>().getState().isComplete) return null

    val dumbService = DumbService.getInstance(project)
    if (dumbService.isDumb) {
      dumbService.runWhenSmart {
        EditorNotifications.getInstance(project).updateAllNotifications()
      }
      return null
    }

    if (!hasUnresolvedImport(project, file)) return null

    return Function { editor ->
      BuildAndResyncOnUnresolvedImportEditorPanel(project, editor)
    }
  }