mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
IJ-MR-176106-to-253
[pycharm] PY-81494 Fix deadlocking code Merge-request: IJ-MR-179432 Merged-by: David Lysenko <david.lysenko@jetbrains.com> [pycharm] PY-81494 Config fixes PY-81494 [pycharm] PY-81494 Fix further flakiness [pycharm] PY-81494 Address feedback [pycharm] PY-81494 Fix flakiness [pycharm] PY-81494 Separate modules [pycharm] PY-81494 Fix tests [pycharm] PY-81494 Change waitFor to awaitExit for coroutines [pycharm] PY-81494 Configuration fixes [pycharm] PY-81494 Add usage statistics [pycharm] PY-81494 Address feedback [pycharm] PY-81494 Add more limit tests [pycharm] PY-81494 Post-rebase fixes [pycharm] PY-81494 Implement logging tests [pycharm] PY-81494 Final design adjustments [pycharm] PY-81494 Refactor flows [pycharm] PY-81494 Add more OutputSection tests [pycharm] PY-81494 Add Toolbar tests [pycharm] PY-81494 Add InterText tests [pycharm] PY-81494 Add FilterActionGroup tests [pycharm] PY-81494 Add EmptyContainerNotice tests [pycharm] PY-81494 Add CollapsibleListSection tests [pycharm] PY-81494 Add ActionIconButton tests [pycharm] PY-81494 Address feedback [pycharm] PY-81494 Address feedback [pycharm] PY-81494 Post-rebase fixes [pycharm] PY-81494 Address initial feedback [pycharm] PY-81494 Fix existing tests & add new to tree [pycharm] PY-81494 Implement copy to clipboard button [pycharm] PY-81494 Amend design [pycharm] PY-81494 Begin implementing output tests [pycharm] PY-81494 Refactor file structure [pycharm] PY-81494 Implement tests for process list [pycharm] PY-81494 wip tests for process list [pycharm] PY-81494 Finishing touches [pycharm] PY-81494 Consolidate list logic in the model [pycharm] PY-81494 Add logging limits [pycharm] PY-81494 Implement open tool window on exec service error [pycharm] PY-81494 Implement open command in terminal [pycharm] PY-81494 Add expansion actions [pycharm] PY-81494 Implement categorization by coroutine names [pycharm] PY-81494 Memorize expansion states between tool window openings [pycharm] PY-81494 Memorize scroll state between tool window openings [pycharm] PY-81494 Introduce collapsible section for process info [pycharm] PY-81494 Implement view setting filtering [pycharm] PY-81494 Refactor process logging to use shared flows [pycharm] PY-81494 Implement tests for ProcessList composable [pycharm] PY-81494 Implement process toolwindow prototype Merge-request: IJ-MR-176106 Merged-by: David Lysenko <david.lysenko@jetbrains.com> Merge-request: IJ-MR-179303 Merged-by: David Lysenko <david.lysenko@jetbrains.com> GitOrigin-RevId: 44552a582dd628d206b207e02e6f24c7749b4d9f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
bf299d23c2
commit
fc7d863a50
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.jetbrains.python.errorProcessing
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import kotlinx.coroutines.flow.FlowCollector
|
||||
|
||||
/**
|
||||
@@ -14,4 +15,13 @@ import kotlinx.coroutines.flow.FlowCollector
|
||||
*
|
||||
* See [PyError]
|
||||
*/
|
||||
typealias ErrorSink = FlowCollector<PyError>
|
||||
typealias ErrorSink = FlowCollector<PyErrorDetail>
|
||||
|
||||
data class PyErrorDetail(
|
||||
val error: PyError,
|
||||
val project: Project? = null,
|
||||
)
|
||||
|
||||
suspend fun ErrorSink.emit(error: PyError, project: Project? = null) {
|
||||
emit(PyErrorDetail(error, project))
|
||||
}
|
||||
@@ -14,6 +14,8 @@ import com.jetbrains.python.PyCommunityBundle
|
||||
import org.jetbrains.annotations.Nls
|
||||
import kotlin.io.path.Path
|
||||
|
||||
private val separatorRegex = Regex("[/\\\\]+")
|
||||
|
||||
/**
|
||||
* Exe might sit on eel (new one) or on target (legacy)
|
||||
*/
|
||||
@@ -29,6 +31,12 @@ sealed interface Exe {
|
||||
}
|
||||
}
|
||||
|
||||
fun pathParts(): List<String> =
|
||||
when (this) {
|
||||
is OnEel -> eelPath.parts
|
||||
is OnTarget -> path.split(separatorRegex)
|
||||
}
|
||||
|
||||
data class OnEel(val eelPath: EelPath) : Exe {
|
||||
override fun toString(): String = eelPath.toString()
|
||||
}
|
||||
@@ -55,6 +63,11 @@ class ExecErrorImpl<T : ExecErrorReason>(
|
||||
* optional message to be displayed to the user: Why did we run this process. I.e "running pip to install package".
|
||||
*/
|
||||
val additionalMessageToUser: @NlsContexts.DialogTitle String? = null,
|
||||
|
||||
/**
|
||||
* Optional association with a [com.intellij.python.community.execService.impl.LoggedProcess] by its id.
|
||||
*/
|
||||
val loggedProcessId: Int? = null,
|
||||
) : PyError(getExecErrorMessage(exe.toString(), args, additionalMessageToUser, errorReason)) {
|
||||
val asCommand: String get() = (arrayOf(exe.toString()) + args).joinToString(" ")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user