mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[collab/github/gitlab] chore: supply names to coroutine scopes
GitOrigin-RevId: febe05474c6ed33b1b8e4f079917fea7d41b50a2
This commit is contained in:
committed by
intellij-monorepo-bot
parent
8d489a2402
commit
07f526c9cb
@@ -11,6 +11,7 @@ import com.intellij.openapi.extensions.ExtensionPointListener
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.openapi.extensions.PluginDescriptor
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.util.cancelOnDispose
|
||||
import com.intellij.util.containers.HashingStrategy
|
||||
import com.intellij.util.containers.toArray
|
||||
@@ -22,6 +23,18 @@ import kotlinx.coroutines.flow.*
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
import kotlin.coroutines.EmptyCoroutineContext
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
/**
|
||||
* @see com.intellij.platform.util.coroutines.childScope(kotlinx.coroutines.CoroutineScope, java.lang.String, kotlin.coroutines.CoroutineContext, boolean)
|
||||
*/
|
||||
fun CoroutineScope.childScope(
|
||||
owner: KClass<*>,
|
||||
context: CoroutineContext = EmptyCoroutineContext,
|
||||
supervisor: Boolean = true,
|
||||
): CoroutineScope {
|
||||
return childScope(owner.qualifiedName ?: owner.toString(), context, supervisor)
|
||||
}
|
||||
|
||||
/**
|
||||
* Prefer creating a service to supply a parent scope
|
||||
@@ -130,7 +143,7 @@ suspend fun <T1, T2, T3> combineAndCollect(
|
||||
}
|
||||
}
|
||||
|
||||
fun Flow<Boolean>.inverted() = map { !it }
|
||||
fun Flow<Boolean>.inverted(): Flow<Boolean> = map { !it }
|
||||
|
||||
@ApiStatus.Experimental
|
||||
fun <T, M> StateFlow<T>.mapState(
|
||||
@@ -256,7 +269,7 @@ private fun <T, R> Flow<T>.mapScoped2(mapper: suspend CoroutineScope.(T) -> R):
|
||||
fun <T, R> Flow<T?>.mapNullableScoped(mapper: CoroutineScope.(T) -> R): Flow<R?> = mapScoped2 { if (it == null) null else mapper(it) }
|
||||
|
||||
@ApiStatus.Experimental
|
||||
suspend fun <T> Flow<T>.collectScoped(block: suspend CoroutineScope.(T) -> Unit) = mapScoped2(block).collect()
|
||||
suspend fun <T> Flow<T>.collectScoped(block: suspend CoroutineScope.(T) -> Unit): Unit = mapScoped2(block).collect()
|
||||
|
||||
@ApiStatus.Experimental
|
||||
suspend fun <T> Flow<T>.collectWithPrevious(initial: T, collector: suspend (prev: T, current: T) -> Unit) {
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.collaboration.ui.codereview.comment
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.util.ComputedResult
|
||||
import com.intellij.collaboration.util.SingleCoroutineLauncher
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.channels.BufferOverflow
|
||||
import kotlinx.coroutines.channels.Channel
|
||||
@@ -36,7 +36,7 @@ abstract class CodeReviewSubmittableTextViewModelBase(
|
||||
parentCs: CoroutineScope,
|
||||
initialText: String
|
||||
) : CodeReviewSubmittableTextViewModel {
|
||||
protected val cs = parentCs.childScope()
|
||||
protected val cs: CoroutineScope = parentCs.childScope(this::class)
|
||||
private val taskLauncher = SingleCoroutineLauncher(cs)
|
||||
|
||||
final override val text: MutableStateFlow<String> = MutableStateFlow(initialText)
|
||||
|
||||
+2
-2
@@ -1,13 +1,13 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.collaboration.ui.codereview.details.model
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.ui.SimpleEventListener
|
||||
import com.intellij.collaboration.ui.codereview.details.model.CodeReviewChangeListViewModel.SelectionRequest
|
||||
import com.intellij.collaboration.util.ChangesSelection
|
||||
import com.intellij.collaboration.util.RefComparisonChange
|
||||
import com.intellij.openapi.actionSystem.DataKey
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.util.EventDispatcher
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@@ -88,7 +88,7 @@ abstract class CodeReviewChangeListViewModelBase(
|
||||
parentCs: CoroutineScope,
|
||||
protected val changeList: CodeReviewChangeList
|
||||
) : CodeReviewChangeListViewModel {
|
||||
protected val cs = parentCs.childScope()
|
||||
protected val cs: CoroutineScope = parentCs.childScope(this::class)
|
||||
|
||||
private val _selectionRequests = MutableSharedFlow<SelectionRequest>(replay = 1)
|
||||
override val selectionRequests: SharedFlow<SelectionRequest> = _selectionRequests.asSharedFlow()
|
||||
|
||||
+2
-1
@@ -2,6 +2,7 @@
|
||||
package com.intellij.collaboration.ui.toolwindow
|
||||
|
||||
import com.intellij.collaboration.async.cancelledWith
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.launchNow
|
||||
import com.intellij.openapi.application.EDT
|
||||
import com.intellij.openapi.util.Disposer
|
||||
@@ -49,7 +50,7 @@ private class ReviewToolwindowTabsManager<
|
||||
) {
|
||||
private val contentManager = toolwindow.contentManager
|
||||
private val projectVm = reviewToolwindowViewModel.projectVm
|
||||
private val cs = parentCs.childScope(Dispatchers.EDT)
|
||||
private val cs = parentCs.childScope(this::class, Dispatchers.EDT)
|
||||
|
||||
init {
|
||||
contentManager.addUiDataProvider { sink ->
|
||||
|
||||
+2
-2
@@ -2,9 +2,9 @@
|
||||
package org.jetbrains.plugins.github.authentication.accounts
|
||||
|
||||
import com.github.benmanes.caffeine.cache.Caffeine
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.openapi.components.Service
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Deferred
|
||||
import kotlinx.coroutines.async
|
||||
@@ -23,7 +23,7 @@ import java.time.temporal.ChronoUnit
|
||||
@ApiStatus.Internal
|
||||
@Service(Service.Level.APP)
|
||||
class GHCachingAccountInformationProvider(serviceCs: CoroutineScope) {
|
||||
private val cs = serviceCs.childScope()
|
||||
private val cs = serviceCs.childScope(this::class)
|
||||
|
||||
private val informationCache = Caffeine.newBuilder()
|
||||
.expireAfterWrite(Duration.of(30, ChronoUnit.MINUTES))
|
||||
|
||||
+3
-2
@@ -1,9 +1,9 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.github.extensions
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.util.serviceGet
|
||||
import com.intellij.openapi.components.Service
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import git4idea.remote.hosting.http.HostedGitAuthenticationFailureManager
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import org.jetbrains.plugins.github.authentication.accounts.GHAccountManager
|
||||
@@ -11,4 +11,5 @@ import org.jetbrains.plugins.github.authentication.accounts.GithubAccount
|
||||
|
||||
@Service(Service.Level.PROJECT)
|
||||
internal class GHGitAuthenticationFailureManager(parentCs: CoroutineScope)
|
||||
: HostedGitAuthenticationFailureManager<GithubAccount>(serviceGet<GHAccountManager>(), parentCs.childScope())
|
||||
: HostedGitAuthenticationFailureManager<GithubAccount>(serviceGet<GHAccountManager>(),
|
||||
parentCs.childScope(GHGitAuthenticationFailureManager::class))
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.plugins.github.pullrequest
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.openapi.components.Service
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.openapi.fileEditor.FileEditor
|
||||
@@ -10,7 +11,6 @@ import com.intellij.openapi.progress.ProcessCanceledException
|
||||
import com.intellij.openapi.project.DumbAware
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
||||
@@ -30,7 +30,7 @@ internal class GHPREditorProvider : FileEditorProvider, DumbAware {
|
||||
|
||||
@Service(Service.Level.PROJECT)
|
||||
private class GHPREditorProviderService(parentCs: CoroutineScope) {
|
||||
private val cs = parentCs.childScope(Dispatchers.Main)
|
||||
private val cs = parentCs.childScope(this::class, Dispatchers.Main)
|
||||
|
||||
fun createTimelineEditor(file: GHPRTimelineVirtualFile): FileEditor {
|
||||
val projectVm = file.findProjectVm() ?: throw ProcessCanceledException()
|
||||
|
||||
+2
-1
@@ -4,6 +4,7 @@ package org.jetbrains.plugins.github.pullrequest.data.provider
|
||||
import com.google.common.graph.GraphBuilder
|
||||
import com.google.common.graph.ImmutableGraph
|
||||
import com.google.common.graph.Traverser
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.openapi.diff.impl.patch.FilePatch
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import git4idea.changes.GitBranchComparisonResult
|
||||
@@ -80,7 +81,7 @@ internal class GHPRChangesDataProviderImpl(parentCs: CoroutineScope,
|
||||
}
|
||||
|
||||
private inner class ChangesDataLoader(parentCs: CoroutineScope, val refs: GHPRBranchesRefs) {
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val referencesRequest = cs.async(start = CoroutineStart.LAZY) {
|
||||
val mergeBaseRef = changesService.loadMergeBaseOid(refs.baseRef, refs.headRef)
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.plugins.github.pullrequest.data.provider
|
||||
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import org.jetbrains.plugins.github.api.data.pullrequest.GHPullRequestFileViewedState
|
||||
@@ -13,7 +13,7 @@ internal class GHPRViewedStateDataProviderImpl(
|
||||
private val filesService: GHPRFilesService,
|
||||
private val pullRequestId: GHPRIdentifier,
|
||||
) : GHPRViewedStateDataProvider {
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val loader = LoaderWithMutableCache(cs) {
|
||||
filesService.loadFiles(pullRequestId).associateBy({ it.path }, { it.viewerViewedState })
|
||||
|
||||
+2
-6
@@ -1,15 +1,11 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.github.pullrequest.ui
|
||||
|
||||
import com.intellij.collaboration.async.combineState
|
||||
import com.intellij.collaboration.async.launchNow
|
||||
import com.intellij.collaboration.async.mapScoped
|
||||
import com.intellij.collaboration.async.mapState
|
||||
import com.intellij.collaboration.async.*
|
||||
import com.intellij.collaboration.util.URIUtil
|
||||
import com.intellij.openapi.components.Service
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.*
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -32,7 +28,7 @@ class GHPRProjectViewModel(private val project: Project, parentCs: CoroutineScop
|
||||
private val settings: GithubPullRequestsProjectUISettings
|
||||
get() = GithubPullRequestsProjectUISettings.getInstance(project)
|
||||
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
val isAvailable: StateFlow<Boolean> = repositoriesManager.knownRepositoriesState.mapState(cs) {
|
||||
it.isNotEmpty()
|
||||
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.github.pullrequest.ui.details
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.messages.CollaborationToolsBundle
|
||||
import com.intellij.collaboration.ui.VerticalListPanel
|
||||
import com.intellij.collaboration.ui.codereview.avatar.CodeReviewAvatarUtils
|
||||
@@ -13,7 +14,6 @@ import com.intellij.collaboration.ui.util.toAnAction
|
||||
import com.intellij.icons.AllIcons
|
||||
import com.intellij.openapi.actionSystem.DefaultActionGroup
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.ui.ExperimentalUI
|
||||
import com.intellij.ui.ScrollPaneFactory
|
||||
import com.intellij.ui.components.panels.Wrapper
|
||||
@@ -45,7 +45,7 @@ object GHPRStatusChecksComponentFactory {
|
||||
project: Project,
|
||||
detailsVm: GHPRDetailsViewModel,
|
||||
): JComponent {
|
||||
val scope = parentScope.childScope(Dispatchers.Main.immediate)
|
||||
val scope = parentScope.childScope(this::class, Dispatchers.Main.immediate)
|
||||
|
||||
val reviewStatusVm = detailsVm.statusVm
|
||||
val reviewFlowVm = detailsVm.reviewFlowVm
|
||||
|
||||
+2
-6
@@ -1,15 +1,11 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.github.pullrequest.ui.details.model
|
||||
|
||||
import com.intellij.collaboration.async.launchNow
|
||||
import com.intellij.collaboration.async.mapState
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.collaboration.async.withInitial
|
||||
import com.intellij.collaboration.async.*
|
||||
import com.intellij.collaboration.ui.codereview.details.model.CodeReviewBranches
|
||||
import com.intellij.collaboration.ui.codereview.details.model.CodeReviewBranchesViewModel
|
||||
import com.intellij.openapi.diagnostic.thisLogger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import git4idea.GitStandardRemoteBranch
|
||||
import git4idea.remote.hosting.GitRemoteBranchesUtil
|
||||
import git4idea.remote.hosting.HostedGitRepositoryRemote
|
||||
@@ -31,7 +27,7 @@ class GHPRBranchesViewModel internal constructor(
|
||||
private val mapping: GHGitRepositoryMapping,
|
||||
private val detailsState: StateFlow<GHPullRequest>
|
||||
) : CodeReviewBranchesViewModel {
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val gitRepository = mapping.remote.repository
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.github.pullrequest.ui.details.model
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.launchNow
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.collaboration.ui.codereview.details.data.CodeReviewCIJob
|
||||
@@ -8,7 +9,6 @@ import com.intellij.collaboration.ui.codereview.details.model.CodeReviewStatusVi
|
||||
import com.intellij.collaboration.util.getOrNull
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import git4idea.repo.GitRepository
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.*
|
||||
@@ -40,7 +40,7 @@ class GHPRStatusViewModelImpl(
|
||||
detailsData: GHPRDetailsDataProvider,
|
||||
detailsState: StateFlow<GHPullRequest>,
|
||||
) : GHPRStatusViewModel {
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
override val viewerDidAuthor: Boolean = detailsState.value.viewerDidAuthor
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.github.pullrequest.ui.details.model.impl
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.collaboration.async.stateInNow
|
||||
import com.intellij.collaboration.async.withInitial
|
||||
@@ -11,7 +12,6 @@ import com.intellij.collaboration.util.ComputedResult
|
||||
import com.intellij.collaboration.util.RefComparisonChange
|
||||
import com.intellij.openapi.diagnostic.thisLogger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.flow.*
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
@@ -41,7 +41,7 @@ internal class GHPRChangesViewModelImpl(
|
||||
private val dataProvider: GHPRDataProvider,
|
||||
private val openPullRequestDiff: (GHPRIdentifier?, Boolean) -> Unit,
|
||||
) : GHPRChangesViewModel {
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
override val changesLoadingErrorHandler = GHApiLoadingErrorHandler(project, dataContext.securityService.account, GHLoginSource.PR_CHANGES) {
|
||||
cs.launch {
|
||||
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.github.pullrequest.ui.details.model.impl
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.collaboration.messages.CollaborationToolsBundle
|
||||
import com.intellij.collaboration.ui.codereview.action.ReviewMergeCommitMessageDialog
|
||||
@@ -18,7 +19,6 @@ import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.ui.awt.RelativePoint
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -61,7 +61,7 @@ class GHPRReviewFlowViewModelImpl internal constructor(
|
||||
private val changesData: GHPRChangesDataProvider,
|
||||
private val reviewVmHelper: GHPRReviewViewModelHelper
|
||||
) : GHPRReviewFlowViewModel {
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val taskLauncher = SingleCoroutineLauncher(cs)
|
||||
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.github.pullrequest.ui.review
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.stateInNow
|
||||
import com.intellij.collaboration.util.ComputedResult
|
||||
import com.intellij.openapi.actionSystem.DataKey
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.currentCoroutineContext
|
||||
@@ -50,7 +50,7 @@ internal class DelegatingGHPRReviewViewModel(private val helper: GHPRReviewViewM
|
||||
}
|
||||
|
||||
internal class GHPRReviewViewModelHelper(parentCs: CoroutineScope, private val dataProvider: GHPRDataProvider) {
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
private val reviewData = dataProvider.reviewData
|
||||
|
||||
val pendingReviewState: StateFlow<ComputedResult<GHPullRequestPendingReview?>> =
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.github.pullrequest.ui.review
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.ui.codereview.review.CodeReviewSubmitViewModel
|
||||
import com.intellij.collaboration.util.SingleCoroutineLauncher
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CancellationException
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
@@ -42,7 +42,7 @@ internal class GHPRSubmitReviewViewModelImpl(parentCs: CoroutineScope,
|
||||
private val pendingReview: GHPullRequestPendingReview?,
|
||||
private val onDone: suspend () -> Unit)
|
||||
: GHPRSubmitReviewViewModel {
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val taskLauncher = SingleCoroutineLauncher(cs)
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.github.pullrequest.ui.timeline
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.stateInNow
|
||||
import com.intellij.collaboration.ui.codereview.comment.CodeReviewSubmittableTextViewModelBase
|
||||
import com.intellij.collaboration.ui.codereview.comment.CodeReviewTextEditingViewModel
|
||||
@@ -9,7 +10,6 @@ import com.intellij.collaboration.util.ComputedResult
|
||||
import com.intellij.collaboration.util.getOrNull
|
||||
import com.intellij.collaboration.util.map
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.flow.*
|
||||
@@ -30,7 +30,7 @@ class GHPRDetailsTimelineViewModel internal constructor(private val project: Pro
|
||||
parentCs: CoroutineScope,
|
||||
private val dataContext: GHPRDataContext,
|
||||
private val dataProvider: GHPRDataProvider) {
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val currentUser: GHUser = dataContext.securityService.currentUser
|
||||
private val reactionsService: GHReactionsService = dataContext.reactionsService
|
||||
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.github.pullrequest.ui.toolwindow.model
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.withInitial
|
||||
import com.intellij.collaboration.util.ComputedResult
|
||||
import com.intellij.openapi.project.Project
|
||||
@@ -47,7 +48,7 @@ class GHPRInfoViewModel internal constructor(
|
||||
pullRequestUrl = details.url
|
||||
val currentVm = vm
|
||||
if (currentVm == null) {
|
||||
val newVm = GHPRDetailsViewModelImpl(project, cs.childScope(), dataContext, dataProvider, details, openPullRequestDiff)
|
||||
val newVm = GHPRDetailsViewModelImpl(project, cs.childScope(GHPRDetailsViewModelImpl::class), dataContext, dataProvider, details, openPullRequestDiff)
|
||||
vm = newVm
|
||||
ComputedResult.success(newVm)
|
||||
}
|
||||
|
||||
+2
-2
@@ -2,12 +2,12 @@
|
||||
package org.jetbrains.plugins.github.util
|
||||
|
||||
import com.github.benmanes.caffeine.cache.Caffeine
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.nestedDisposable
|
||||
import com.intellij.openapi.components.Service
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.util.LowMemoryWatcher
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.util.ImageLoader
|
||||
import kotlinx.coroutines.CancellationException
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@@ -26,7 +26,7 @@ import java.util.concurrent.CompletableFuture
|
||||
|
||||
@Service
|
||||
class CachingGHUserAvatarLoader internal constructor(serviceCs: CoroutineScope) {
|
||||
private val cs = serviceCs.childScope()
|
||||
private val cs = serviceCs.childScope(this::class)
|
||||
|
||||
private val avatarCache = Caffeine.newBuilder()
|
||||
.expireAfterAccess(Duration.of(5, ChronoUnit.MINUTES))
|
||||
|
||||
+2
-2
@@ -1,16 +1,16 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.authentication.accounts
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.auth.PersistentDefaultAccountHolder
|
||||
import com.intellij.openapi.components.*
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
|
||||
@Service(Service.Level.PROJECT)
|
||||
@State(name = "GitLabDefaultAccount", storages = [Storage(StoragePathMacros.WORKSPACE_FILE)], reportStatistic = false)
|
||||
internal class GitLabProjectDefaultAccountHolder(project: Project, parentCs: CoroutineScope)
|
||||
: PersistentDefaultAccountHolder<GitLabAccount>(project, parentCs.childScope()) {
|
||||
: PersistentDefaultAccountHolder<GitLabAccount>(project, parentCs.childScope(GitLabProjectDefaultAccountHolder::class)) {
|
||||
override fun accountManager() = service<GitLabAccountManager>()
|
||||
override fun notifyDefaultAccountMissing() {
|
||||
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.git.http
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.util.serviceGet
|
||||
import com.intellij.openapi.components.Service
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import git4idea.remote.hosting.http.HostedGitAuthenticationFailureManager
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import org.jetbrains.plugins.gitlab.authentication.accounts.GitLabAccount
|
||||
@@ -11,4 +11,4 @@ import org.jetbrains.plugins.gitlab.authentication.accounts.GitLabAccountManager
|
||||
|
||||
@Service(Service.Level.PROJECT)
|
||||
class GitLabGitAuthenticationFailureManager(parentCs: CoroutineScope)
|
||||
: HostedGitAuthenticationFailureManager<GitLabAccount>(serviceGet<GitLabAccountManager>(), parentCs.childScope())
|
||||
: HostedGitAuthenticationFailureManager<GitLabAccount>(serviceGet<GitLabAccountManager>(), parentCs.childScope(GitLabGitAuthenticationFailureManager::class))
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.action
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.combineAndCollect
|
||||
import com.intellij.collaboration.async.launchNow
|
||||
import com.intellij.collaboration.messages.CollaborationToolsBundle
|
||||
import com.intellij.collaboration.ui.util.name
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import org.jetbrains.plugins.gitlab.mergerequest.ui.details.model.GitLabMergeRequestReviewFlowViewModel
|
||||
@@ -16,7 +16,7 @@ internal class GitLabMergeRequestSubmitReviewAction(
|
||||
parentCs: CoroutineScope,
|
||||
private val vm: GitLabMergeRequestReviewFlowViewModel
|
||||
) : AbstractAction(CollaborationToolsBundle.message("review.start.submit.action")) {
|
||||
private val cs = parentCs.childScope(Dispatchers.Main)
|
||||
private val cs = parentCs.childScope(this::class, Dispatchers.Main)
|
||||
|
||||
init {
|
||||
cs.launchNow {
|
||||
|
||||
+1
-5
@@ -2,8 +2,6 @@
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.data
|
||||
|
||||
import com.intellij.collaboration.async.*
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.flow.*
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
@@ -43,8 +41,6 @@ interface GitLabMergeRequestDiscussion : GitLabDiscussion {
|
||||
override val notes: StateFlow<List<GitLabMergeRequestNote>>
|
||||
}
|
||||
|
||||
private val LOG = logger<GitLabDiscussion>()
|
||||
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
class LoadedGitLabDiscussion(
|
||||
parentCs: CoroutineScope,
|
||||
@@ -67,7 +63,7 @@ class LoadedGitLabDiscussion(
|
||||
override val id: GitLabGid = discussionData.id
|
||||
override val createdAt: Date = discussionData.createdAt
|
||||
|
||||
private val cs = parentCs.childScope(CoroutineExceptionHandler { _, e -> LOG.warn(e) })
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val operationsGuard = Mutex()
|
||||
|
||||
|
||||
+2
-6
@@ -1,14 +1,10 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.data
|
||||
|
||||
import com.intellij.collaboration.async.mapScoped
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.collaboration.async.resultOrErrorFlow
|
||||
import com.intellij.collaboration.async.withInitial
|
||||
import com.intellij.collaboration.async.*
|
||||
import com.intellij.collaboration.util.ResultUtil.runCatchingUser
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import git4idea.GitStandardRemoteBranch
|
||||
import git4idea.remote.hosting.GitRemoteBranchesUtil
|
||||
import git4idea.remote.hosting.changesSignalFlow
|
||||
@@ -102,7 +98,7 @@ internal class LoadedGitLabMergeRequest(
|
||||
private val currentUser: GitLabUserDTO,
|
||||
mergeRequest: GitLabMergeRequestDTO
|
||||
) : GitLabMergeRequest {
|
||||
private val cs = parentCs.childScope(Dispatchers.Default + CoroutineExceptionHandler { _, e -> LOG.warn(e) })
|
||||
private val cs = parentCs.childScope(this::class, Dispatchers.Default)
|
||||
|
||||
override val glProject: GitLabProjectCoordinates = projectMapping.repository
|
||||
override val gitRepository: GitRepository = projectMapping.gitRepository
|
||||
|
||||
+2
-5
@@ -3,12 +3,11 @@ package org.jetbrains.plugins.gitlab.mergerequest.data
|
||||
|
||||
import com.intellij.collaboration.api.page.ApiPageUtil
|
||||
import com.intellij.collaboration.api.page.foldToList
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.openapi.diff.impl.patch.PatchReader
|
||||
import com.intellij.openapi.diff.impl.patch.TextFilePatch
|
||||
import com.intellij.openapi.vcs.FilePath
|
||||
import com.intellij.openapi.vcs.FileStatus
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.vcsUtil.VcsFileUtil
|
||||
import git4idea.changes.GitBranchComparisonResult
|
||||
import git4idea.changes.GitCommitShaWithPatches
|
||||
@@ -46,8 +45,6 @@ fun GitBranchComparisonResult.findLatestCommitWithChangesTo(gitRepository: GitRe
|
||||
return commits.lastOrNull { commit -> commit.patches.any { it.filePath == relativePath } }?.sha
|
||||
}
|
||||
|
||||
private val LOG = logger<GitLabMergeRequestChanges>()
|
||||
|
||||
class GitLabMergeRequestChangesImpl(
|
||||
parentCs: CoroutineScope,
|
||||
private val api: GitLabApi,
|
||||
@@ -56,7 +53,7 @@ class GitLabMergeRequestChangesImpl(
|
||||
private val mergeRequestDetails: GitLabMergeRequestFullDetails
|
||||
) : GitLabMergeRequestChanges {
|
||||
|
||||
private val cs = parentCs.childScope(CoroutineExceptionHandler { _, e -> LOG.warn(e) })
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val glProject = projectMapping.repository
|
||||
|
||||
|
||||
+5
-3
@@ -5,10 +5,12 @@ import com.intellij.collaboration.api.data.GraphQLRequestPagination
|
||||
import com.intellij.collaboration.async.*
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.NonCancellable
|
||||
import kotlinx.coroutines.channels.BufferOverflow
|
||||
import kotlinx.coroutines.flow.*
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.jetbrains.plugins.gitlab.api.*
|
||||
import org.jetbrains.plugins.gitlab.api.dto.GitLabDiscussionDTO
|
||||
import org.jetbrains.plugins.gitlab.api.dto.GitLabMergeRequestDraftNoteRestDTO
|
||||
@@ -52,7 +54,7 @@ class GitLabMergeRequestDiscussionsContainerImpl(
|
||||
private val mr: GitLabMergeRequest,
|
||||
) : GitLabMergeRequestDiscussionsContainer {
|
||||
|
||||
private val cs = parentCs.childScope(Dispatchers.Default + CoroutineExceptionHandler { _, e -> LOG.warn(e) })
|
||||
private val cs = parentCs.childScope(this::class, Dispatchers.Default)
|
||||
|
||||
override val canAddNotes: Boolean = mr.details.value.userPermissions.createNote
|
||||
override val canAddDraftNotes: Boolean =
|
||||
|
||||
+7
-8
@@ -1,16 +1,15 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.data
|
||||
|
||||
import com.intellij.collaboration.async.Change
|
||||
import com.intellij.collaboration.async.Deleted
|
||||
import com.intellij.collaboration.async.mapState
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.collaboration.async.*
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.flow.*
|
||||
import kotlinx.coroutines.sync.Mutex
|
||||
import kotlinx.coroutines.sync.withLock
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.jetbrains.plugins.gitlab.api.*
|
||||
import org.jetbrains.plugins.gitlab.api.dto.GitLabAwardEmojiDTO
|
||||
import org.jetbrains.plugins.gitlab.api.dto.GitLabMergeRequestDraftNoteRestDTO
|
||||
@@ -80,7 +79,7 @@ class MutableGitLabMergeRequestNote(
|
||||
noteData: GitLabNoteDTO
|
||||
) : GitLabMergeRequestNote, MutableGitLabNote {
|
||||
|
||||
private val cs = parentCs.childScope(CoroutineExceptionHandler { _, e -> LOG.warn(e) })
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val operationsGuard = Mutex()
|
||||
|
||||
@@ -169,7 +168,7 @@ class GitLabMergeRequestDraftNoteImpl(
|
||||
override val author: GitLabUserDTO
|
||||
) : GitLabMergeRequestDraftNote, MutableGitLabNote {
|
||||
|
||||
private val cs = parentCs.childScope(CoroutineExceptionHandler { _, e -> LOG.warn(e) })
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val operationsGuard = Mutex()
|
||||
|
||||
|
||||
+2
-6
@@ -3,15 +3,11 @@ package org.jetbrains.plugins.gitlab.mergerequest.data
|
||||
|
||||
import com.github.benmanes.caffeine.cache.Caffeine
|
||||
import com.intellij.collaboration.api.HttpStatusErrorException
|
||||
import com.intellij.collaboration.async.ReloadablePotentiallyInfiniteListLoader
|
||||
import com.intellij.collaboration.async.mapScoped
|
||||
import com.intellij.collaboration.async.transformConsecutiveSuccesses
|
||||
import com.intellij.collaboration.async.withInitial
|
||||
import com.intellij.collaboration.async.*
|
||||
import com.intellij.collaboration.messages.CollaborationToolsBundle
|
||||
import com.intellij.collaboration.util.ResultUtil.runCatchingUser
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.registry.Registry
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.flow.*
|
||||
import org.jetbrains.plugins.gitlab.api.GitLabApi
|
||||
@@ -67,7 +63,7 @@ class CachingGitLabProjectMergeRequestsStore(private val project: Project,
|
||||
private val currentUser: GitLabUserDTO,
|
||||
private val tokenRefreshFlow: Flow<Unit>) : GitLabProjectMergeRequestsStore {
|
||||
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val glProject: GitLabProjectCoordinates = projectMapping.repository
|
||||
|
||||
|
||||
+1
-2
@@ -11,7 +11,6 @@ import com.intellij.collaboration.util.SingleCoroutineLauncher
|
||||
import com.intellij.openapi.diagnostic.thisLogger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.ui.awt.RelativePoint
|
||||
import com.intellij.vcs.log.Hash
|
||||
import com.intellij.vcs.log.VcsCommitMetadata
|
||||
@@ -78,7 +77,7 @@ internal class GitLabMergeRequestCreateViewModelImpl(
|
||||
override val openReviewTabAction: suspend (mrIid: String) -> Unit,
|
||||
private val onReviewCreated: () -> Unit,
|
||||
) : GitLabMergeRequestCreateViewModel {
|
||||
private val cs: CoroutineScope = parentCs.childScope()
|
||||
private val cs: CoroutineScope = parentCs.childScope(this::class)
|
||||
private val taskLauncher = SingleCoroutineLauncher(cs)
|
||||
|
||||
override val isBusy: Flow<Boolean> = taskLauncher.busy
|
||||
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.ui.details.model
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.mapState
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.collaboration.async.withInitial
|
||||
@@ -8,7 +9,6 @@ import com.intellij.collaboration.ui.codereview.details.model.CodeReviewBranches
|
||||
import com.intellij.collaboration.ui.codereview.details.model.CodeReviewBranchesViewModel
|
||||
import com.intellij.dvcs.DvcsUtil
|
||||
import com.intellij.openapi.diagnostic.thisLogger
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import git4idea.remote.hosting.GitRemoteBranchesUtil
|
||||
import git4idea.remote.hosting.changesSignalFlow
|
||||
import git4idea.repo.GitRepository
|
||||
@@ -30,7 +30,7 @@ internal class GitLabMergeRequestBranchesViewModel(
|
||||
) : CodeReviewBranchesViewModel {
|
||||
private val gitRepository: GitRepository = mapping.remote.repository
|
||||
|
||||
private val cs: CoroutineScope = parentCs.childScope()
|
||||
private val cs: CoroutineScope = parentCs.childScope(this::class)
|
||||
|
||||
override val sourceBranch: StateFlow<String> = mergeRequest.details.mapState(cs, ::getSourceBranchName)
|
||||
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.ui.details.model
|
||||
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.util.asSafely
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -31,7 +31,7 @@ class GitLabMergeRequestDetailsLoadingViewModelImpl(
|
||||
override val mergeRequestId: String,
|
||||
detailsVm: Flow<Result<GitLabMergeRequestDetailsViewModel>>
|
||||
) : GitLabMergeRequestDetailsLoadingViewModel {
|
||||
private val scope = parentScope.childScope(Dispatchers.Default)
|
||||
private val scope = parentScope.childScope(this::class, Dispatchers.Default)
|
||||
|
||||
override val mergeRequestLoadingFlow: Flow<LoadingState> = detailsVm.map { vmResult ->
|
||||
vmResult.map { LoadingState.Result(it) }.getOrElse { LoadingState.Error(it) }
|
||||
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.ui.details.model
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.launchNow
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.collaboration.ui.codereview.details.data.ReviewRequestState
|
||||
@@ -10,7 +11,6 @@ import com.intellij.collaboration.ui.codereview.issues.processIssueIdsHtml
|
||||
import com.intellij.collaboration.ui.icon.IconsProvider
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.*
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -49,7 +49,7 @@ internal class GitLabMergeRequestDetailsViewModelImpl(
|
||||
private val avatarIconsProvider: IconsProvider<GitLabUserDTO>,
|
||||
) : GitLabMergeRequestDetailsViewModel {
|
||||
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
override val number: String = "!${mergeRequest.iid}"
|
||||
override val url: String = mergeRequest.url
|
||||
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.ui.details.model
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.launchNow
|
||||
import com.intellij.collaboration.async.mapState
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
@@ -16,7 +17,6 @@ import com.intellij.openapi.application.EDT
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.ui.awt.RelativePoint
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.flow.*
|
||||
@@ -102,7 +102,7 @@ internal class GitLabMergeRequestReviewFlowViewModelImpl(
|
||||
private val mergeRequest: GitLabMergeRequest,
|
||||
private val avatarIconsProvider: IconsProvider<GitLabUserDTO>
|
||||
) : GitLabMergeRequestReviewFlowViewModel {
|
||||
private val scope = parentScope.childScope()
|
||||
private val scope = parentScope.childScope(this::class)
|
||||
private val taskLauncher = SingleCoroutineLauncher(scope)
|
||||
|
||||
override val isBusy: Flow<Boolean> = taskLauncher.busy
|
||||
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.ui.details.model
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.launchNow
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.collaboration.ui.codereview.details.data.CodeReviewCIJob
|
||||
@@ -8,7 +9,6 @@ import com.intellij.collaboration.ui.codereview.details.data.CodeReviewCIJobStat
|
||||
import com.intellij.collaboration.ui.codereview.details.model.CodeReviewStatusViewModel
|
||||
import com.intellij.openapi.diagnostic.thisLogger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.util.io.URLUtil
|
||||
import git4idea.repo.GitRepository
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@@ -32,7 +32,7 @@ class GitLabMergeRequestStatusViewModelImpl(
|
||||
private val serverPath: GitLabServerPath,
|
||||
mergeRequest: GitLabMergeRequest,
|
||||
) : GitLabMergeRequestStatusViewModel {
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val pipeline: SharedFlow<GitLabPipelineDTO?> = mergeRequest.details.map { it.headPipeline }.modelFlow(cs, thisLogger())
|
||||
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.ui.review
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.ui.codereview.review.CodeReviewSubmitViewModel
|
||||
import com.intellij.collaboration.util.SingleCoroutineLauncher
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CancellationException
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -54,7 +54,7 @@ internal class GitLabMergeRequestSubmitReviewViewModelImpl(
|
||||
currentReview: SubmittableReview,
|
||||
private val onDone: () -> Unit
|
||||
) : GitLabMergeRequestSubmitReviewViewModel {
|
||||
private val cs = parentCs.childScope(Dispatchers.Default)
|
||||
private val cs = parentCs.childScope(this::class, Dispatchers.Default)
|
||||
private val taskLauncher = SingleCoroutineLauncher(cs)
|
||||
|
||||
override val isBusy: StateFlow<Boolean> = taskLauncher.busy
|
||||
|
||||
+2
-3
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.ui.timeline
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.collaboration.ui.codereview.diff.DiffLineLocation
|
||||
import com.intellij.collaboration.util.ChangesSelection
|
||||
@@ -9,8 +10,6 @@ import com.intellij.diff.util.Side
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.diff.impl.patch.PatchHunk
|
||||
import com.intellij.openapi.diff.impl.patch.TextFilePatch
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineExceptionHandler
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.channels.BufferOverflow
|
||||
@@ -45,7 +44,7 @@ class GitLabDiscussionDiffViewModelImpl(
|
||||
override val position: GitLabNotePosition
|
||||
) : GitLabDiscussionDiffViewModel {
|
||||
|
||||
private val cs = parentCs.childScope(CoroutineExceptionHandler { _, e -> LOG.warn(e) })
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
override val mapping: Flow<GitLabMergeRequestNotePositionMapping> = mr.changes.mapLatest {
|
||||
try {
|
||||
|
||||
+1
-3
@@ -8,9 +8,7 @@ import com.intellij.collaboration.ui.codereview.timeline.thread.CodeReviewResolv
|
||||
import com.intellij.collaboration.util.SingleCoroutineLauncher
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CancellationException
|
||||
import kotlinx.coroutines.CoroutineExceptionHandler
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.flow.*
|
||||
@@ -53,7 +51,7 @@ class GitLabMergeRequestTimelineDiscussionViewModelImpl(
|
||||
private val discussion: GitLabMergeRequestDiscussion
|
||||
) : GitLabMergeRequestTimelineDiscussionViewModel {
|
||||
|
||||
private val cs = parentCs.childScope(CoroutineExceptionHandler { _, e -> LOG.warn(e) })
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
private val taskLauncher = SingleCoroutineLauncher(cs)
|
||||
|
||||
override val mainNote: Flow<GitLabNoteViewModel> = discussion.notes
|
||||
|
||||
+2
-3
@@ -1,12 +1,11 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.ui.timeline
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.mapStateInNow
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineExceptionHandler
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
@@ -101,7 +100,7 @@ sealed interface GitLabMergeRequestTimelineItemViewModel {
|
||||
mr: GitLabMergeRequest,
|
||||
note: GitLabMergeRequestNote
|
||||
) : GitLabMergeRequestTimelineItemViewModel, GitLabNoteViewModel {
|
||||
private val cs = parentCs.childScope(CoroutineExceptionHandler { _, e -> LOG.warn(e) })
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
override val id: GitLabId = note.id
|
||||
override val author: GitLabUserDTO = note.author
|
||||
|
||||
+2
-7
@@ -1,15 +1,10 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.ui.timeline
|
||||
|
||||
import com.intellij.collaboration.async.launchNow
|
||||
import com.intellij.collaboration.async.mapDataToModel
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.collaboration.async.transformConsecutiveSuccesses
|
||||
import com.intellij.collaboration.async.withInitial
|
||||
import com.intellij.collaboration.async.*
|
||||
import com.intellij.collaboration.util.ChangesSelection
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.flow.*
|
||||
import org.jetbrains.plugins.gitlab.api.dto.GitLabUserDTO
|
||||
@@ -47,7 +42,7 @@ internal class LoadAllGitLabMergeRequestTimelineViewModel(
|
||||
private val mergeRequest: GitLabMergeRequest
|
||||
) : GitLabMergeRequestTimelineViewModel {
|
||||
|
||||
private val cs = parentCs.childScope(Dispatchers.Default)
|
||||
private val cs = parentCs.childScope(this::class, Dispatchers.Default)
|
||||
|
||||
override val number: String = "!${mergeRequest.iid}"
|
||||
override val author: GitLabUserDTO = mergeRequest.author
|
||||
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.ui.toolwindow
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.ui.toolwindow.ReviewToolwindowViewModel
|
||||
import com.intellij.collaboration.ui.toolwindow.dontHideOnEmptyContent
|
||||
import com.intellij.collaboration.ui.toolwindow.manageReviewToolwindowTabs
|
||||
@@ -17,7 +18,6 @@ import com.intellij.openapi.wm.ToolWindow
|
||||
import com.intellij.openapi.wm.ToolWindowFactory
|
||||
import com.intellij.openapi.wm.ToolWindowManager
|
||||
import com.intellij.openapi.wm.impl.content.ToolWindowContentUi
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.platform.util.coroutines.flow.mapStateIn
|
||||
import com.intellij.util.cancelOnDispose
|
||||
import com.intellij.util.concurrency.annotations.RequiresEdt
|
||||
@@ -46,7 +46,7 @@ internal class GitLabToolWindowFactory : ToolWindowFactory, DumbAware {
|
||||
|
||||
@Service(Service.Level.PROJECT)
|
||||
private class GitLabMergeRequestsToolWindowController(private val project: Project, parentCs: CoroutineScope) {
|
||||
private val cs = parentCs.childScope(Dispatchers.Main)
|
||||
private val cs = parentCs.childScope(this::class, Dispatchers.Main)
|
||||
|
||||
suspend fun manageToolWindow(toolWindow: ToolWindow) {
|
||||
val vm = project.serviceAsync<GitLabProjectViewModel>()
|
||||
|
||||
+3
-3
@@ -2,12 +2,12 @@
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.ui.toolwindow.model
|
||||
|
||||
import com.intellij.collaboration.async.cancelledWith
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.ui.icon.IconsProvider
|
||||
import com.intellij.collaboration.ui.toolwindow.ReviewTabViewModel
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.NlsSafe
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import org.jetbrains.plugins.gitlab.GitLabProjectsManager
|
||||
@@ -25,7 +25,7 @@ internal sealed interface GitLabReviewTabViewModel : ReviewTabViewModel {
|
||||
reviewId: String,
|
||||
detailsVm: Flow<Result<GitLabMergeRequestDetailsViewModel>>
|
||||
) : GitLabReviewTabViewModel, Disposable {
|
||||
private val cs = parentCs.childScope().cancelledWith(this)
|
||||
private val cs = parentCs.childScope(this::class).cancelledWith(this)
|
||||
|
||||
override val displayName: @NlsSafe String = "!${reviewId}"
|
||||
|
||||
@@ -43,7 +43,7 @@ internal sealed interface GitLabReviewTabViewModel : ReviewTabViewModel {
|
||||
openReviewTabAction: suspend (mrIid: String) -> Unit,
|
||||
onReviewCreated: () -> Unit
|
||||
) : GitLabReviewTabViewModel, Disposable {
|
||||
private val cs = parentCs.childScope().cancelledWith(this)
|
||||
private val cs = parentCs.childScope(this::class).cancelledWith(this)
|
||||
|
||||
private val projectPath = projectData.projectMapping.repository.projectPath.fullPath()
|
||||
override val displayName: String = GitLabBundle.message("merge.request.create.tab.title", projectPath)
|
||||
|
||||
+2
-2
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.snippets
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.mapState
|
||||
import com.intellij.collaboration.messages.CollaborationToolsBundle
|
||||
import com.intellij.collaboration.snippets.PathHandlingMode
|
||||
@@ -11,7 +12,6 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.ui.ComboBox
|
||||
import com.intellij.openapi.ui.DialogWrapper
|
||||
import com.intellij.openapi.ui.ValidationInfo
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.ui.MutableCollectionComboBoxModel
|
||||
import com.intellij.ui.components.JBLabel
|
||||
import com.intellij.ui.components.JBTextArea
|
||||
@@ -41,7 +41,7 @@ internal object GitLabCreateSnippetComponentFactory {
|
||||
createSnippetVm: GitLabCreateSnippetViewModel): DialogWrapper =
|
||||
object : DialogWrapper(project, false) {
|
||||
private lateinit var titleField: JTextField
|
||||
private val cs: CoroutineScope = parentCs.childScope(ModalityState.stateForComponent(window).asContextElement())
|
||||
private val cs: CoroutineScope = parentCs.childScope(this::class, ModalityState.stateForComponent(window).asContextElement())
|
||||
|
||||
init {
|
||||
title = message("snippet.create.dialog.title")
|
||||
|
||||
+3
-3
@@ -2,7 +2,9 @@
|
||||
package org.jetbrains.plugins.gitlab.snippets
|
||||
|
||||
import com.intellij.collaboration.async.cancelAndJoinSilently
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.snippets.PathHandlingMode
|
||||
import com.intellij.collaboration.snippets.PathHandlingMode.Companion.getFileNameExtractor
|
||||
import com.intellij.collaboration.util.ResultUtil.runCatchingUser
|
||||
import com.intellij.ide.BrowserUtil
|
||||
import com.intellij.notification.NotificationListener
|
||||
@@ -18,7 +20,6 @@ import com.intellij.openapi.vcs.VcsNotifier
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.openapi.vfs.isFile
|
||||
import com.intellij.platform.ide.progress.withBackgroundProgress
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import com.intellij.util.asSafely
|
||||
import kotlinx.coroutines.*
|
||||
import org.jetbrains.plugins.gitlab.api.GitLabApi
|
||||
@@ -35,7 +36,6 @@ import org.jetbrains.plugins.gitlab.authentication.accounts.GitLabAccountManager
|
||||
import org.jetbrains.plugins.gitlab.mergerequest.ui.toolwindow.GitLabSelectorErrorStatusPresenter.Companion.isAuthorizationException
|
||||
import org.jetbrains.plugins.gitlab.mergerequest.util.localizedMessageOrClassName
|
||||
import org.jetbrains.plugins.gitlab.snippets.GitLabSnippetService.Companion.GL_SNIPPET_FILES_LIMIT
|
||||
import com.intellij.collaboration.snippets.PathHandlingMode.Companion.getFileNameExtractor
|
||||
import org.jetbrains.plugins.gitlab.util.GitLabBundle.message
|
||||
import org.jetbrains.plugins.gitlab.util.GitLabStatistics.SnippetAction.*
|
||||
import org.jetbrains.plugins.gitlab.util.GitLabStatistics.logSnippetActionExecuted
|
||||
@@ -249,7 +249,7 @@ internal class GitLabSnippetService(private val project: Project, private val se
|
||||
files.map { file -> extractor(file) }.toSet().size == files.size // Check that there are no duplicates when mapped
|
||||
}
|
||||
|
||||
val vmCs = childScope()
|
||||
val vmCs = childScope(this::class)
|
||||
val vm = GitLabCreateSnippetViewModel(
|
||||
vmCs,
|
||||
project,
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.ui.clone.model
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.auth.ui.login.LoginModel
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.SharedFlow
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
@@ -21,7 +21,7 @@ internal class GitLabCloneLoginViewModelImpl(
|
||||
parentCs: CoroutineScope,
|
||||
private val accountManager: GitLabAccountManager
|
||||
) : GitLabCloneLoginViewModel {
|
||||
private val cs: CoroutineScope = parentCs.childScope()
|
||||
private val cs: CoroutineScope = parentCs.childScope(this::class)
|
||||
|
||||
private var selectedAccount: GitLabAccount? = null
|
||||
override val accounts: SharedFlow<Set<GitLabAccount>> = accountManager.accountsState
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.ui.comment
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.async.mapScoped
|
||||
import com.intellij.collaboration.async.modelFlow
|
||||
import com.intellij.openapi.diagnostic.thisLogger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
@@ -27,7 +27,7 @@ class GitLabDiscussionReplyViewModelImpl(
|
||||
discussion: GitLabDiscussion
|
||||
) : GitLabDiscussionReplyViewModel {
|
||||
|
||||
private val cs = parentCs.childScope()
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
private val isWriting = MutableStateFlow(false)
|
||||
override val newNoteVm: Flow<NewGitLabNoteViewModel?> = isWriting.mapScoped {
|
||||
|
||||
+2
-4
@@ -6,9 +6,7 @@ import com.intellij.collaboration.ui.codereview.timeline.thread.CodeReviewResolv
|
||||
import com.intellij.collaboration.util.SingleCoroutineLauncher
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.CancellationException
|
||||
import kotlinx.coroutines.CoroutineExceptionHandler
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.flow.*
|
||||
@@ -45,7 +43,7 @@ internal class GitLabMergeRequestDiscussionViewModelBase(
|
||||
private val discussion: GitLabMergeRequestDiscussion
|
||||
) : GitLabMergeRequestDiscussionViewModel {
|
||||
|
||||
private val cs = parentCs.childScope(CoroutineExceptionHandler { _, e -> LOG.warn(e) })
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
private val taskLauncher = SingleCoroutineLauncher(cs)
|
||||
override val isBusy: StateFlow<Boolean> = taskLauncher.busy
|
||||
|
||||
@@ -106,7 +104,7 @@ class GitLabMergeRequestStandaloneDraftNoteViewModelBase internal constructor(
|
||||
mr: GitLabMergeRequest
|
||||
) : GitLabNoteViewModel {
|
||||
|
||||
private val cs = parentCs.childScope(CoroutineExceptionHandler { _, e -> LOG.warn(e) })
|
||||
private val cs = parentCs.childScope(this::class)
|
||||
|
||||
override val id: GitLabId = note.id
|
||||
override val author: GitLabUserDTO = note.author
|
||||
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package org.jetbrains.plugins.gitlab.mergerequest.ui.toolwindow
|
||||
|
||||
import com.intellij.collaboration.async.childScope
|
||||
import com.intellij.collaboration.util.MainDispatcherRule
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import io.mockk.coEvery
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
@@ -50,7 +50,7 @@ internal class GitLabRepositoryAndAccountSelectorViewModelTest {
|
||||
coEvery { accountManager.getCredentialsState(any(), any()) } returns MutableStateFlow("")
|
||||
every { accountManager.canPersistCredentials } returns MutableStateFlow(true)
|
||||
|
||||
val scope = childScope(Dispatchers.Main)
|
||||
val scope = childScope(this::class, Dispatchers.Main)
|
||||
val vm = GitLabRepositoryAndAccountSelectorViewModel(project, scope, projectManager, accountManager) { _, _ -> mockk() }
|
||||
|
||||
assertEquals(projectMapping, vm.repoSelectionState.value)
|
||||
@@ -80,7 +80,7 @@ internal class GitLabRepositoryAndAccountSelectorViewModelTest {
|
||||
coEvery { accountManager.getCredentialsState(any(), any()) } returns MutableStateFlow("")
|
||||
every { accountManager.canPersistCredentials } returns MutableStateFlow(true)
|
||||
|
||||
val scope = childScope(Dispatchers.Main)
|
||||
val scope = childScope(this::class, Dispatchers.Main)
|
||||
val vm = GitLabRepositoryAndAccountSelectorViewModel(project, scope, projectManager, accountManager) { _, _ -> mockk() }
|
||||
|
||||
assertEquals(null, vm.repoSelectionState.value)
|
||||
|
||||
+3
-11
@@ -3,10 +3,8 @@ package org.jetbrains.plugins.gitlab.apitests
|
||||
|
||||
import com.intellij.collaboration.api.page.ApiPageUtil
|
||||
import com.intellij.collaboration.api.page.foldToList
|
||||
import com.intellij.collaboration.async.cancelAndJoinSilently
|
||||
import com.intellij.collaboration.async.withInitial
|
||||
import com.intellij.openapi.components.service
|
||||
import com.intellij.platform.util.coroutines.childScope
|
||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.coroutines.flow.fold
|
||||
@@ -297,10 +295,9 @@ class GitLabApiTest : GitLabApiTestCase() {
|
||||
fun `GQL getMergeRequestStateEvents works`() = runTest {
|
||||
checkVersion(after(v(13, 2)))
|
||||
|
||||
val cs = childScope()
|
||||
requiresAuthentication { api ->
|
||||
val reloadRequest = MutableSharedFlow<Unit>(1).withInitial(Unit)
|
||||
val loader = startGitLabRestETagListLoaderIn(cs,
|
||||
val loader = startGitLabRestETagListLoaderIn(backgroundScope,
|
||||
getMergeRequestStateEventsUri(glTest1Coordinates, "1"),
|
||||
{ it.id },
|
||||
reloadRequest) { uri, eTag ->
|
||||
@@ -313,17 +310,15 @@ class GitLabApiTest : GitLabApiTestCase() {
|
||||
assertNotNull(result)
|
||||
assertEquals(listOf(1), result?.map { it.id })
|
||||
}
|
||||
cs.cancelAndJoinSilently()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `GQL getMergeRequestLabelEvents works`() = runTest {
|
||||
checkVersion(after(v(11, 4)))
|
||||
|
||||
val cs = childScope()
|
||||
requiresAuthentication { api ->
|
||||
val reloadRequest = MutableSharedFlow<Unit>(1).withInitial(Unit)
|
||||
val loader = startGitLabRestETagListLoaderIn(cs,
|
||||
val loader = startGitLabRestETagListLoaderIn(backgroundScope,
|
||||
getMergeRequestLabelEventsUri(glTest1Coordinates, "1"),
|
||||
{ it.id },
|
||||
reloadRequest) { uri, eTag ->
|
||||
@@ -336,17 +331,15 @@ class GitLabApiTest : GitLabApiTestCase() {
|
||||
assertNotNull(result)
|
||||
assertEquals(listOf(3, 4, 5), result?.map { it.id })
|
||||
}
|
||||
cs.cancelAndJoinSilently()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `GQL getMergeRequestMilestoneEvents works`() = runTest {
|
||||
checkVersion(after(v(13, 1)))
|
||||
|
||||
val cs = childScope()
|
||||
requiresAuthentication { api ->
|
||||
val reloadRequest = MutableSharedFlow<Unit>(1).withInitial(Unit)
|
||||
val loader = startGitLabRestETagListLoaderIn(cs,
|
||||
val loader = startGitLabRestETagListLoaderIn(backgroundScope,
|
||||
getMergeRequestMilestoneEventsUri(glTest1Coordinates, "1"),
|
||||
{ it.id },
|
||||
reloadRequest) { uri, eTag ->
|
||||
@@ -359,7 +352,6 @@ class GitLabApiTest : GitLabApiTestCase() {
|
||||
assertNotNull(result)
|
||||
assertEquals(listOf(3, 4), result?.map { it.id })
|
||||
}
|
||||
cs.cancelAndJoinSilently()
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user