Open
Description
Below lists plans for REPL in VS Code Python as of (Dec 9th, 2024).
More subset of steps are subject to being added as I move forward incrementally.
Milestone 1:
- Investigate the state of REPL support in the extension Investigate the state of REPL support in the extension #21590
- Become familiar with REPL code
- Implement Run Selection/Line in xxx be more smart Run Selection/Line in xxx be more smart? #18105 (Has to be merged after removing support for 3.7) and Implement smart shift+enter using AST #21778
- Implement Go to next line only when non-selection/non-highlighted case Dynamic Smart Cursor Movement #21838 (Has to be merged after removing support for 3.7 along with the previous item)
- Create, fix tests that were testing selection previously.
- Set up an experiment for smart shift+enter and Go to next block line (dynamic cursor movement) in code base.
- Deprecate 3.7 and merge the smart send (smart shift+enter, go to next block line) after.
- Create tests for both TypeScript and Python side for smart selection, dynamic cursor movement
- Enable experiments for all tests in the repo, specifically beneficial for smoke test involving new features.
- Warning message, and setting to show when user is trying to smart send with invalid code in the currently opened Python file.
Milestone 2:
- Investigate shell integration for Python REPL in VS Code. Investigate shell integration in terms of Python REPL #21966
- Decorations for denoting success/failure next to REPL prompt. (Currently sleeping mode while fixing bug for pwsh users)
- Add Python as Shell Type in VS Code Core.
- Enable recent command history. (Need PR in VS Code core itself)
- Reduce risk of first command being ignored or duplicated into shell that launches Python REPL in Terminal.
- Address issue where rerun command was backed up by one sequence: Exit code isn't shown for the last run command in Python's shell integration enabled REPL #23016
- Address issue where wrong exit code was shown: Exit code on wrong command in shell integration history #22942
Milestone 3:
- Spike: Investigate common ground between I.W. and Python REPL. Let users use I.W. without having to install Jupyter or IPython kernel. Spike: Investigate common ground between I.W. and Python REPL #23029
- This would enable things like Syntax Highlighting, intellisense out of the box since Pylance understands editor type of IW. - Built in Python REPL (Experimental setting) Built-in Python REPL implementation using IW and Notebook #23332
- Build custom Python interactive interpreter for VS Code that can communicate natively. Create Custom Python REPL (Interactive Interpreter) #23091
- Look into relationship between native VS Code REPL and Interactive Window. Spike with rebuilt IW with different design and non-Jupyter based backend would be helpful: Spike: Investigate common ground between I.W. and Python REPL #23029
- Implement and support for variable pane Variables Pane for Python Console #17183
- Allow Smart Send on built-in REPL Have smart send work with native REPL #23521
- Native REPL - support reload REPL: support window reload #24021
- Support Python3.13 for REPL in terminal Python3.13 All functions fail to send: IndentationError: unexpected indent #24256
- cpython upstream fix for mishandling shell integration sequences: Python3.13 is mishandling OSC 633 sequences python/cpython#126131
- Suggest Native REPL when 'python' is typed in REPL in terminal Prompt for Native REPL when user types
python
in terminal #24270 - Allow environment configuration for Native REPL Native REPL should allow for environment configuration #23570
- Intellisense and/or terminal suggest for Python REPL in Terminal (such via using Python language server?)
- Native REPL for VS Code with new Editor type?