forked from DonJayamanne/pythonVSCode
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Labels
area-replfeature-requestRequest for new features or functionalityRequest for new features or functionality
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
pythonin 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?
hsyyid
Metadata
Metadata
Assignees
Labels
area-replfeature-requestRequest for new features or functionalityRequest for new features or functionality