microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
164.23k stars 29.29k forks source link

Terminal window cuts on resize #185199

Closed egor-romanov closed 1 year ago

egor-romanov commented 1 year ago

Type: Bug

When you resize terminal window, it's displayed lines cut to 1,2 only. All other space where you would expect to see terminal output is blank

VS Code version: Code - Insiders 1.80.0-insider (Universal) (db6bcdf309cc1565c502a54b73c33a63bdabfbd8, 2023-06-09T05:22:41.121Z) OS version: Darwin arm64 22.2.0 Modes:

System Info |Item|Value| |---|---| |CPUs|Apple M1 (8 x 24)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: disabled_off
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
metal: disabled_off
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)|12, 8, 5| |Memory (System)|16.00GB (0.08GB free)| |Process Argv|| |Screen Reader|no| |VM|0%|
Extensions (82) Extension|Author (truncated)|Version ---|---|--- vscode-openapi|42C|4.18.2 terraform|4op|0.2.5 go-outliner|766|0.1.20 better-comments|aar|3.0.2 tailwind-docs|aus|2.0.0 vscode-tailwindcss|bra|0.9.11 path-intellisense|chr|2.8.4 doxdocgen|csc|1.4.0 vscode-markdownlint|Dav|0.51.0 vscode-eslint|dba|2.4.0 vscode-deno|den|3.19.1 githistory|don|0.6.20 python-environment-manager|don|1.0.4 python-extension-pack|don|1.7.0 vscode-go-syntax|dun|0.0.18 gitlens|eam|14.0.0 EditorConfig|Edi|0.16.4 prettier-vscode|esb|9.13.0 code-runner|for|0.12.0 copilot-chat|Git|0.3.2023061401 copilot-nightly|Git|1.89.161 vscode-pull-request-github|Git|0.66.1 go|gol|0.39.0 vscode-mocha-test-adapter|hbe|2.14.1 vscode-test-explorer|hbe|2.21.1 rest-client|hum|0.25.1 elixir-ls|Jak|0.14.7 plantuml|jeb|2.17.5 k6|k6|0.6.0 vsc-python-indent|Kev|1.18.0 vscode-codemetrics|kis|1.26.1 node-module-intellisense|lei|1.5.0 MagicPython|mag|1.1.0 vscode-mocha-sidebar|mat|0.22.2 openapi-lint|mer|1.2.0 dotenv|mik|1.0.1 document|min|2.2.1 prettify-json|moh|0.0.3 vscode-docker|ms-|1.25.1 playwright|ms-|1.0.13 isort|ms-|2022.8.0 python|ms-|2023.10.1 vscode-pylance|ms-|2023.6.20 jupyter|ms-|2023.5.1001582324 jupyter-keymap|ms-|1.1.2 jupyter-renderers|ms-|1.0.15 vscode-jupyter-cell-tags|ms-|0.1.8 vscode-jupyter-slideshow|ms-|0.1.5 remote-ssh|ms-|0.102.0 remote-ssh-edit|ms-|0.86.0 remote-wsl|ms-|0.79.5 vscode-remote-extensionpack|ms-|0.24.0 js-debug-nightly|ms-|2023.6.1315 makefile-tools|ms-|0.7.0 remote-explorer|ms-|0.4.0 remote-server|ms-|1.2.1 test-adapter-converter|ms-|0.1.8 vsliveshare|ms-|1.0.5873 autodocstring|njp|0.6.1 vetur|oct|0.37.3 gotestexplorer|pre|0.1.13 quicktype|qui|12.0.46 vscode-yaml|red|1.13.0 partial-diff|ryu|1.4.3 elixir-formatter|sar|1.3.0 jsonnetng|Seb|1.4.0 code-spell-checker|str|2.20.5 svelte-vscode|sve|107.5.1 shellcheck|tim|0.32.6 errorlens|use|3.11.1 intellicode-api-usage-examples|Vis|0.2.7 vscodeintellicode|Vis|1.2.30 vscode-icons|vsc|12.4.0 codetour|vsl|0.0.59 volar|Vue|1.2.0 jinja|who|0.0.8 vscode-go-autotest|win|1.6.0 JavaScriptSnippets|xab|1.8.0 yog-plantuml-highlight|Yog|0.0.5 markdown-pdf|yza|1.4.4 grammarly|znc|0.22.1 vscode-proto3|zxh|0.5.5 (2 theme extensions excluded)
egor-romanov commented 1 year ago
image
meganrogge commented 1 year ago

A gif would be helpful as I cannot reproduce the issue

egor-romanov commented 1 year ago

vscode_terminal_bug

Sure thing

It reproduces with any command, you can just ls -la for example, it would be the same

meganrogge commented 1 year ago

does changing terminal.integrated.gpuAcceleration help?

egor-romanov commented 1 year ago

Nope, tried all options

rzhb commented 1 year ago

When the terminal is resized to a smaller size, it's fine. However, when it is resized back, the output gets cut off.

egor-romanov commented 1 year ago

@meganrogge i would appreciate if you would remove info-needed label or request additional information 🙂

PEZ commented 1 year ago

I also see this on my Mac M1 Max. This is printed in the console when resizing the terminal pane:

  ERR Cannot read properties of undefined (reading 'backend'): TypeError: Cannot read properties of undefined (reading 'backend')
    at t.Buffer.resize (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/node_modules.asar/xterm/lib/xterm.js:1:196257)
    at o.resize (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/node_modules.asar/xterm/lib/xterm.js:1:212453)
    at c.resize (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/node_modules.asar/xterm/lib/xterm.js:1:252180)
    at I.resize (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/node_modules.asar/xterm/lib/xterm.js:1:136577)
    at I.resize (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/node_modules.asar/xterm/lib/xterm.js:1:43329)
    at e.Terminal.resize (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/node_modules.asar/xterm/lib/xterm.js:1:274835)
    at Ji.Yc (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2521:2476)
    at Ji.Xc (vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:2521:1804)
    at vscode-file://vscode-app/Applications/Visual%20Studio%20Code%20-%20Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:6:9279

I also got this just before, though I don't know what I did to trigger it:

InputHandler.ts:1156 Uncaught TypeError: Cannot read properties of undefined (reading 'fill')
    at E._resetBufferLine (InputHandler.ts:1156:10)
    at E.eraseInDisplay (InputHandler.ts:1194:16)
    at Array.<anonymous> (InputHandler.ts:231:68)
    at c.parse (EscapeSequenceParser.ts:680:38)
    at E.parse (InputHandler.ts:485:35)
    at n._action (CoreTerminal.ts:145:99)
    at n._innerWrite (WriteBuffer.ts:164:27)
    at WriteBuffer.ts:124:29
PEZ commented 1 year ago

Possibly related is that if I move the terminal to the editor area and then back, the text gets distorted:

https://github.com/microsoft/vscode/assets/30010/1791c14f-3545-4ab0-be79-f8acefb365c5

The same error is printed in the console.

Tyriar commented 1 year ago

@PEZ that console error is very useful, thanks!

Tyriar commented 1 year ago

This should be fixed in latest due to https://github.com/xtermjs/xterm.js/commit/ffadc0b31da181708353dbf985ecfc5d9e1daee9