Open cwebster-99 opened 3 months ago
The following is the new V2 design as formulated by @cwebster-99 and I. These would be found / placed in the launch.json
{
"name": "default test config on UI creation",
"type": "debugpy", ?
"request": "launch",
"purpose": ["discover-test", "run-test", "debug-test"],
"presentation": "hidden",
} // This is what would happen if a user went through the basic setup flow
{
"name": "discovery or execution, all possible attributes",
"type": "python", ?
"request": "launch",
"purpose": ["discover-test"],
"presentation": "hidden",
"args": []
"env" : {},
"cwd" : '',
"envFile" : '',
} // These are all possible attributes allowed if the type is "discover-test" or "run-test"
// if user also has debug-test the others will be possible but will not impact discovery or run
// unless these attributes are explicitly listed as test supported
For "debug-test" allow all attributes currently supported by the python debugger
justMyCode
console
autoReload
consoleTitle // core
debugAdapterPath
debugServer //core
gevent
internalConsoleOptions // core
linux // check
logToFile
osx // check
pathMappings
postDebugTask // core
preLaunchTask // core
presentation
redirectOutput
serverReadyAction
showReturnValue
stopOnEntry
subProcess
suppressMultipleSessionWarning //core
windows // check
pythonArgs // check with Karthik ( pass to the interpreter itself)
args
pyramid
module ?
env
cwd
envFile
program
framework: [jinja, django] //debugpy, I can decide settings.json vs debugpy
host
port
sudo
listen
connect
{
"name": "run config for file run button",
"type": "python", ?
"request": "launch",
"presentation": "hidden",
"noDebug": "true"
}
Here a user could specify they do not want a launch.json config to be used for debugging but again an opt out instead of an opt in scenario.
What do people think of "noDebug" as a specification? Do we think this is another opt out parameter that is non-default? Is that the right name for it?
Along these lines, one more consideration is on the Run button / non-test scenarios should we be including purpose: "run", "debug"
by default or just use nodebug
attribute to control when something is run and debug vs not. I am not sure how discoverable this maybe or if we should standardize with the test configs. It might be a bit redundant to have purpose and nodebug...Looking for thoughts :)
Notes/Edits after discussion:
type: "python-test"
, and make "purpose"
optional, default value for purpose is all 3 (opt-out) "presentation": "hidden"
is default for test configs but not for debug and run These would be found / placed in the launch.json
{
"name": "default test config on UI creation",
"type": "pythonTest",
"request": "launch",
"presentation": "hidden",
} // This is what would happen if a user went through the basic setup flow
{
"name": "discovery or execution, all possible attributes",
"type": "pythonTest", ?
"request": "launch",
"purpose": ["discover-test"],
"presentation": "hidden",
"args": []
"env" : {},
"cwd" : '',
"envFile" : '',
} // These are all possible attributes allowed if the type is "discover-test" or "run-test"
// if user also has debug-test the others will be possible but will not impact discovery or run
// unless these attributes are explicitly listed as test supported
For "debug-test" allow all attributes currently supported by the python debugger
justMyCode
console
autoReload
consoleTitle // core
debugAdapterPath
debugServer //core
gevent
internalConsoleOptions // core
linux // check
logToFile
osx // check
pathMappings
postDebugTask // core
preLaunchTask // core
presentation
redirectOutput
serverReadyAction
showReturnValue
stopOnEntry
subProcess
suppressMultipleSessionWarning //core
windows // check
pythonArgs // check with Karthik ( pass to the interpreter itself)
args
pyramid
module ?
env
cwd
envFile
program
framework: [jinja, django] //debugpy, I can decide settings.json vs debugpy
host
port
sudo
listen
connect
{
"name": "run config for file run button",
"type": "debugpy",
"request": "launch",
"noDebug": "true"
}
Debug configs remain unchanged :)
In previous iterations we created a V1/MVP for a custom config design for testing and debugging. In this upcoming iteration we will work on iterating for a V2