@@ -2,36 +2,27 @@ package com.uriyyo.evaluate_async_code
2
2
3
3
import com.intellij.openapi.module.Module
4
4
import com.intellij.openapi.project.Project
5
+ import com.jetbrains.python.console.PyConsoleOptions
5
6
import com.jetbrains.python.console.PydevConsoleRunnerFactory
6
7
7
8
class AsyncPyDebugConsoleRunnerFactory : PydevConsoleRunnerFactory () {
8
9
private val frameworkAwareFactory: PydevConsoleRunnerFactory ? =
9
10
loadClass(" com.jetbrains.FrameworkAwarePythonConsoleRunnerFactory" )
10
11
11
12
override fun createConsoleParameters (project : Project , contextModule : Module ? ): ConsoleParameters {
12
- val params = frameworkAwareFactory
13
- ?.getMethodByName<ConsoleParameters >(" createConsoleParameters" )
14
- ?.invoke(project, contextModule)
15
- ? : super .createConsoleParameters(project, contextModule)
13
+ val settingsProvider = PyConsoleOptions .getInstance(project).pythonConsoleSettings
14
+ val oldCustomStartScript = settingsProvider.customStartScript
16
15
17
- return when (params) {
18
- is ConstantConsoleParameters -> ConstantConsoleParameters (
19
- params.project,
20
- params.sdk,
21
- params.workingDir,
22
- params.envs,
23
- params.consoleType,
24
- params.settingsProvider,
25
- arrayOf(setupAsyncPyDevScript(), * params.setupFragment),
26
- )
27
- is TargetedConsoleParameters -> TargetedConsoleParameters (
28
- params.project,
29
- params.sdk,
30
- params.workingDir,
31
- params.envs,
32
- params.consoleType,
33
- params.settingsProvider,
34
- ) { arrayOf(setupAsyncPyDevScript(), params.setupScript.apply (it)).joinToString(" \n " ) }
16
+ try {
17
+ settingsProvider.customStartScript =
18
+ arrayOf(setupAsyncPyDevScript(), oldCustomStartScript).filter { it.isNotEmpty() }.joinToString(" \n " )
19
+
20
+ return frameworkAwareFactory
21
+ ?.getMethodByName<ConsoleParameters >(" createConsoleParameters" )
22
+ ?.invoke(project, contextModule)
23
+ ? : super .createConsoleParameters(project, contextModule)
24
+ } finally {
25
+ settingsProvider.customStartScript = oldCustomStartScript
35
26
}
36
27
}
37
28
}
0 commit comments