Add option to reuse existing Python terminals for code execution #25158
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements a new feature to reuse existing active Python interpreter terminals instead of always creating new ones when running code selections or lines. This addresses workflows where users work with pre-configured terminals (e.g., SLURM allocated resources) and want to avoid creating multiple terminal instances.
Changes
New Configuration Setting
python.terminal.reuseActiveTerminal
setting (default:true
)Smart Terminal Detection
The implementation intelligently identifies existing Python terminals by:
window.terminals
for active terminalsterminal.state?.shell === 'python'
Modified Execution Flow
initializeRepl()
now tries to find existing Python terminals firstSeamless Integration
terminal.sendText()
for existing terminalsterminal.executeCommand()
for new terminalsExample Usage
With the setting enabled (default), when you:
When disabled, behavior reverts to the original implementation of always creating new terminals.
Benefits
Testing
Fixes #24960.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.