mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PY-15975 Any python configuration is debuggable except one that declares itself not debuggable. All other configurations are skipped by PyDebugRunner
This commit is contained in:
@@ -82,10 +82,28 @@ public class PyDebugRunner extends GenericProgramRunner {
|
||||
// If not debug at all
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Any python configuration is debuggable unless it explicitly declares itself as DebugAwareConfiguration and denies it
|
||||
* with canRunUnderDebug == false
|
||||
*/
|
||||
|
||||
if (profile instanceof WrappingRunConfiguration) {
|
||||
// If configuration is wrapper -- unwrap it and check
|
||||
return isDebuggable(((WrappingRunConfiguration<?>)profile).getPeer());
|
||||
}
|
||||
return isDebuggable(profile);
|
||||
}
|
||||
|
||||
private static boolean isDebuggable(@NotNull final RunProfile profile) {
|
||||
if (profile instanceof DebugAwareConfiguration) {
|
||||
// if configuration knows whether debug is allowed
|
||||
return ((DebugAwareConfiguration)profile).canRunUnderDebug();
|
||||
}
|
||||
if (profile instanceof AbstractPythonRunConfiguration) {
|
||||
// Any python configuration is debuggable
|
||||
return true;
|
||||
}
|
||||
// No even a python configuration
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user