Repository navigation
Python REPL should use a snake icon #21996
Copy link
Copy link
Closed
Labels
feature-requestRequest for new features or functionalityRequest for new features or functionality
Description
Activity
- addedfeature-requestRequest for new features or functionalityRequest for new features or functionality
on Sep 15, 2023 - addedtriage-neededNeeds assignment to the proper sub-teamNeeds assignment to the proper sub-team
on Sep 15, 2023 I also think it will be a good idea, to distinguish the icon so it is more "Python" specific!
Reacted by Eduardo Villalpando Mello- addedneeds PRReady to be worked onReady to be worked onand removedtriage-neededNeeds assignment to the proper sub-teamNeeds assignment to the proper sub-team
on Sep 18, 2023 - added a commit that references this issue
on Sep 8, 2026 vs-code-engineering commented
on Sep 8, 2026 More actionsSharing media and context from merged PR #26141 for verification:
Terminal REPLs launched by the extension only set a title, so VS Code fell back to the default shell/profile icon. This threads an optional
iconPaththrough the terminal creation pipeline and setsThemeIcon('snake')for the REPL only.Changes
common/terminal/types.ts:TerminalCreationOptionsgainsiconPath?: TerminalOptions['iconPath'], keeping the internal type aligned with the VS Code API.common/terminal/service.ts:ensureTerminalforwardsiconPathon both creation paths —ensureTerminalLegacy(...)(env extension, whose options extendTerminalOptions) andterminalManager.createTerminal(...).terminals/codeExecution/terminalCodeExecution.ts: newprotected terminalIcon?: TerminalOptions['iconPath'], passed toterminalServiceFactory.getTerminalService(...)alongside the title.terminals/codeExecution/repl.ts: sets the icon, so plain Python terminals, Django shells, native REPL tabs, and user-typedpythonsessions are untouched.
// repl.ts this.terminalTitle = 'REPL'; this.terminalIcon = new ThemeIcon('snake');
Tests
terminalCodeExec.unit.test.ts: the title matcher now also asserts the expected icon id per suite —snakeforReplProvider, none for the Terminal and Django providers.service.unit.test.ts: two tests asserticonPathreachesterminalManager.createTerminal(...)and, withuseEnvExtension()stubbed on,ensureTerminalLegacy(...).
The env-extension test stubs
ensureTerminalLegacywith a plain object rather than a TypeMoq mock: dynamic mocks answer any property access, soawaiting one hangs on the phantomthen.Source PR: #26141
Metadata
Metadata
Assignees
Labels
feature-requestRequest for new features or functionalityRequest for new features or functionality
Currently the REPL uses whatever icon is associated with the default profile, so below it's showing as the pwsh icon:
Because of this, at a glance it looks like a powershell repl. It would be nice to make this more clear.