Type: Bug
-
Opt into the Python experiment pythonREPLSmartSend.
-
Define a small class with one method that returns a dict:
class Something:
def method():
return {"something": "abc"}
-
Place the cursor at the end of the first line, class Something:
-
Press Shift-Enter
The result sent to the REPL is the full definition, but it is missing the last trailing newline:
>>> class Something:
... def method():
... return {"something": "abc"}
... # cursor is here!
This means chaining the next line of code can result in an indentation error, because the REPL has not fully closed this multiline entry:
>>> class Something:
... def method():
... return {"something": "abc"}
... a = {"something_else": "abc"}
File "<stdin>", line 4
a = {"something_else": "abc"}
^
SyntaxError: invalid syntax
>>>
Notably, I've reproduced this when the return statement returns a dict. The issue is not reproduced in the case of return "abc" or return 123.
Multiline dicts also cause the issue:
>>> class Something:
... def method():
... return {
... "abc": "def",
... "cdf": "what",
... }
... # cursor is here
Parentheses used for multiine strings do not:
>>> class Something:
... def method():
... return (
... "abc"
... "cdf"
... )
...
>>> # cursor is here
VS Code version: Code 1.84.0 (Universal) (d037ac076cee195194f93ce6fe2bdfe2969cc82d, 2023-11-01T11:30:19.406Z)
OS version: Darwin arm64 22.1.0
Modes:
System Info
| Item |
Value |
| CPUs |
Apple M1 Pro (10 x 24) |
| GPU Status |
2d_canvas: enabled canvas_oop_rasterization: enabled_on direct_rendering_display_compositor: disabled_off_ok gpu_compositing: enabled multiple_raster_threads: enabled_on opengl: enabled_on rasterization: enabled raw_draw: disabled_off_ok video_decode: enabled video_encode: enabled vulkan: disabled_off webgl: enabled webgl2: enabled webgpu: enabled |
| Load (avg) |
9, 8, 7 |
| Memory (System) |
16.00GB (0.12GB free) |
| Process Argv |
|
| Screen Reader |
no |
| VM |
0% |
Extensions (53)
| Extension |
Author (truncated) |
Version |
| vscode-sqlite |
ale |
0.14.1 |
| vscode-django |
bat |
1.14.0 |
| markdown-mermaid |
bie |
1.20.0 |
| markdown-preview-github-styles |
bie |
2.0.3 |
| prettier-toml |
bod |
0.1.0 |
| ruff |
cha |
2023.44.0 |
| npm-intellisense |
chr |
1.4.5 |
| csharpier-vscode |
csh |
1.3.6 |
| vscode-eslint |
dba |
2.4.2 |
| gitlens |
eam |
14.4.1 |
| vsc-material-theme |
Equ |
33.10.5 |
| vsc-material-theme-icons |
equ |
3.1.4 |
| prettier-vscode |
esb |
10.1.0 |
| vscode-reveal |
evi |
4.3.3 |
| codespaces |
Git |
1.16.2 |
| vscode-github-actions |
git |
0.26.2 |
| vscode-pull-request-github |
Git |
0.76.0 |
| cloudcode |
goo |
2.1.1 |
| gc-excelviewer |
Gra |
4.2.58 |
| terraform |
has |
2.28.2 |
| prettier-sql-vscode |
inf |
1.6.0 |
| git-graph |
mhu |
1.30.0 |
| vscode-docker |
ms- |
1.27.0 |
| csdevkit |
ms- |
1.0.14 |
| csharp |
ms- |
2.9.20 |
| dotnet-interactive-vscode |
ms- |
1.0.4517010 |
| vscode-dotnet-runtime |
ms- |
2.0.0 |
| vscode-kubernetes-tools |
ms- |
1.3.15 |
| black-formatter |
ms- |
2023.4.1 |
| isort |
ms- |
2023.10.1 |
| mypy-type-checker |
ms- |
2023.4.0 |
| python |
ms- |
2023.20.0 |
| vscode-pylance |
ms- |
2023.10.50 |
| jupyter |
ms- |
2023.10.1003070148 |
| jupyter-keymap |
ms- |
1.1.2 |
| jupyter-renderers |
ms- |
1.0.17 |
| vscode-jupyter-cell-tags |
ms- |
0.1.8 |
| vscode-jupyter-slideshow |
ms- |
0.1.5 |
| remote-containers |
ms- |
0.321.0 |
| remote-wsl |
ms- |
0.81.8 |
| powershell |
ms- |
2023.8.0 |
| vscode-github-issue-notebooks |
ms- |
0.0.130 |
| vsliveshare |
ms- |
1.0.5892 |
| vsliveshare-pack |
ms- |
0.4.0 |
| jekyll |
ost |
0.1.1 |
| postman-for-vscode |
Pos |
0.13.1 |
| vscode-commons |
red |
0.0.6 |
| vscode-yaml |
red |
1.14.0 |
| svelte-vscode |
sve |
107.12.0 |
| even-better-toml |
tam |
0.19.2 |
| tilt |
Tch |
1.0.9 |
| tiltfile |
til |
0.0.3 |
| markdown-all-in-one |
yzh |
3.5.1 |
(5 theme extensions excluded)
Type: Bug
Opt into the Python experiment
pythonREPLSmartSend.Define a small class with one method that returns a dict:
Place the cursor at the end of the first line,
class Something:Press
Shift-EnterThe result sent to the REPL is the full definition, but it is missing the last trailing newline:
This means chaining the next line of code can result in an indentation error, because the REPL has not fully closed this multiline entry:
Notably, I've reproduced this when the
returnstatement returns a dict. The issue is not reproduced in the case ofreturn "abc"orreturn 123.Multiline dicts also cause the issue:
Parentheses used for multiine strings do not:
VS Code version: Code 1.84.0 (Universal) (d037ac076cee195194f93ce6fe2bdfe2969cc82d, 2023-11-01T11:30:19.406Z)
OS version: Darwin arm64 22.1.0
Modes:
System Info
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: enabled
Extensions (53)
(5 theme extensions excluded)