microsoft / vscode

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

Terminal doesn't break text "on time" #84868

Closed rowild closed 4 years ago

rowild commented 4 years ago

Issue Type: Bug

I am on a Mac 10.13.6 with VScode 1.40 (bu the issue is true for at least to earlier versions, too).

When typing text in the terminal or when generated text is shown (e.g. because of a webpack script), the text is broken to the next line, but not "in time", meaning, that there is still some text reaching out over the right edge and disappearing, which should instead be shown on the next line already.

If you open 3 or 4 terminals next to each other, it becomes clear very quickly.

VS Code version: Code 1.40.1 (8795a9889db74563ddd43eb0a897a2384129a619, 2019-11-13T16:47:44.719Z) OS version: Darwin x64 17.7.0

System Info |Item|Value| |---|---| |CPUs|Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz (8 x 4009)| |GPU Status|2d_canvas: enabled
flash_3d: enabled
flash_stage3d: enabled
flash_stage3d_baseline: enabled
gpu_compositing: enabled
metal: disabled_off
multiple_raster_threads: enabled_on
oop_rasterization: unavailable_off
protected_video_decode: unavailable_off
rasterization: unavailable_off
skia_renderer: disabled_off
surface_control: disabled_off
surface_synchronization: enabled_on
video_decode: enabled
viz_display_compositor: enabled_on
viz_hit_test_surface_layer: disabled_off
webgl: enabled
webgl2: enabled| |Load (avg)|2, 2, 2| |Memory (System)|32.00GB (15.97GB free)| |Process Argv|| |Screen Reader|no| |VM|0%|
Extensions (80) Extension|Author (truncated)|Version ---|---|--- rainbow-brackets|2gu|0.0.6 project-manager|ale|10.8.0 vscode-sqlite|ale|0.8.0 vscode-color|ans|0.4.5 gulpsymbols|apa|0.1.1 material-icons|Arc|0.2.0 quitcontrol-vscode|art|3.1.3 vscode-twig-pack|baj|1.1.0 typo3-typoscript|ben|0.2.0 color-info|bie|0.5.1 vscode-tailwindcss|bra|0.2.0 typo3-tca-snippets|bsc|0.0.5 gulp-lattice|chr|0.2.0 bracket-pair-colorizer-2|Coe|0.0.28 vscode-svgviewer|css|2.0.0 dart-code|Dar|3.6.0 vscode-markdownlint|Dav|0.32.0 xml|Dot|2.5.0 gitlens|eam|10.1.2 vscode-great-icons|emm|2.1.47 indent-switcher|eph|1.2.1 vsc-material-theme|Equ|30.0.0 vsc-material-theme-icons|equ|1.0.6 vue-format|feb|0.1.8 typo3-fluid-snippets|feb|0.3.1 typo3-vhs-snippets|feb|0.1.1 php-debug|fel|1.13.0 php-intellisense|fel|2.3.13 file-icons|fil|1.0.19 shell-format|fox|6.1.3 todo-tree|Gru|0.0.162 beautify|Hoo|1.5.0 comment-aligner|hua|1.0.1 vscode-jetbrains-keybindings|isu|0.1.9 easy-icons|jam|0.3.1 comment-labels|jam|0.1.0 svg|joc|1.0.5 theme-karyfoundation-themes|kar|18.2.1 vscode-redis|kdc|1.0.3 vscode-gutter-preview|kis|0.23.0 sftp|lix|1.12.9 codeacejumper|luc|2.1.7 markdown-formatter|mer|0.7.5 code-beautifier|mic|2.3.3 vscode-html-format|moh|0.0.3 theme-monokai-pro-vscode|mon|1.1.14 python|ms-|2019.10.44104 color-highlight|nau|2.3.0 editorconfiggenerator|nep|0.2.1 snippet-creator|nik|0.0.5 vetur|oct|0.22.6 advanced-new-file|pat|1.2.0 vscode-php-getters-setters|php|1.2.3 material-icon-theme|PKi|3.9.1 quicktype|qui|12.0.46 typo3snippets|ral|0.1.0 nginx-formatter|ray|0.0.6 vscode-xml|red|0.9.1 vscode-yaml|red|0.5.3 shellman|Rem|4.3.1 phpdoc-comment-vscode-plugin|rex|1.1.0 bash-debug|rog|0.3.6 php-files|sev|0.0.5 bash-beautify|sha|0.1.1 code-settings-sync|Sha|3.4.3 vscode-tailwindcss|sid|0.1.0 indenticator|Sir|0.6.0 vscode-fileutils|sle|3.0.0 language-stylus|sys|1.11.0 vscode-gulp|tan|0.0.4 ayu|tea|0.18.0 vscode-fold-level|vik|0.0.12 highlight-matching-tag|vin|0.9.5 crs-al-language-extension|wal|1.1.21 vscode-todo-highlight|way|1.0.4 vscode-nginx|wil|0.7.2 zoombar-vscode|wra|1.2.1 easy-redis|You|1.0.11 markdown-all-in-one|yzh|2.5.1 json|Zai|1.0.2 (8 theme extensions excluded)
Tyriar commented 4 years ago

Please provide a screenshot illustrating the problem. See this wiki page for more info on how to report actionable terminal issues.

rowild commented 4 years ago

Here you are:

terminal

The screenshot uses Fira Font. But the problem remains, even if "Editor: Font family" is set to "monospace". Also, when 2 or more Terminals are open, the drag area to resize the terminal windows is overlapping to the left.

Did you try for yourself? Do you not have the problem???

Tyriar commented 4 years ago

@rowild yes I did not see the problem when I tried.

Can you share your whole settings.json file? I still can't repro with those fonts.

rowild commented 4 years ago

This seems to be an issue with iterm2 and/or zsh, which is, what I am using. When I switch to the regular bash, the overlap does not happen...

My settings:

{
  "activityBar.activeBorder": "teal",
  "activityBar.activeBackground": "rgba(teal, -5)",
  // ----- Advanced New File
  //
  "advancedNewFile.exclude": {
    "node_modules": true,
    "node_modules_electron": true,
    "dev": true,
    "dist": true,
    "_Material": true,
    "_BU": true
  },
  "advancedNewFile.showInformationMessages": true,
  "advancedNewFile.convenienceOptions": ["last", "current", "root"],
  //
  // ----- Brackets Pair Colorizer
  //
  "bracket-pair-colorizer-2.showBracketsInRuler": true,
  "bracket-pair-colorizer-2.activeScopeCSS": [
    "borderStyle : solid",
    "borderWidth : 2px",
    "borderColor : blue",
    "opacity: 1.0"
  ],
  "bracket-pair-colorizer-2.colors": [
    "Gold",
    "Orchid",
    "LightSkyBlue"
  ],
  "bracket-pair-colorizer-2.excludedLanguages": [],
  //
  // ----- Breadcrumb
  //
  "breadcrumbs.enabled": true,
  //
  // ----- Dart
  //
  "dart.flutterCreateAndroidLanguage": "kotlin",
  "dart.flutterCreateIOSLanguage": "swift",
  "dart.lineLength": 160,
  "dart.maxLogLineLength": 2000,
  "dart.previewFlutterOutline": true,
  "dart.previewFlutterStructuredErrors": true,
  "dart.previewFlutterUiGuidesCustomTracking": true,
  "dart.previewFlutterUiGuides": true,
  //
  // ----- Editor defaults
  //
  "editor.accessibilitySupport": "off",
  "editor.autoClosingQuotes": "beforeWhitespace",
  "editor.autoClosingBrackets": "beforeWhitespace",
  "editor.cursorSmoothCaretAnimation": true,
  "editor.cursorStyle": "line",
  "editor.foldingStrategy": "indentation",
  "editor.fontSize": 13,
  "editor.fontFamily": "monospace, Fira Code, Menlo, Monaco, 'Courier New'",
  "editor.fontLigatures": true,
  "editor.formatOnPaste": true,
  "editor.lineHeight": 22,
  "editor.minimap.enabled": false,
  "editor.minimap.maxColumn": 120,
  "editor.multiCursorModifier": "ctrlCmd",
  "editor.renderIndentGuides": true,
  "editor.showFoldingControls": "always",
  // Insert snippets when their prefix matches. Works best when 'quickSuggestions' aren't enabled.
  "editor.tabCompletion": "on",
  // "editor.tabSize": 4,
  "editor.wordWrap": "on",
  "editor.wordWrapColumn": 180,
  //
  // ----- Emmet
  //
  "emmet.includeLanguages": {
    "javascript": "javascriptreact",
    "javascriptreact": "javascriptreact",
    "typescript": "javascriptreact",
    "vue": "html",
    "vue-html": "html",
    "ejs": "html",
    "php": "html",
    "razor": "html",
    "plaintext": "jade",
    "twig": "html"
  },
  "emmet.preferences": {
    "filter.commentAfter": "\n<!-- /[#ID][.CLASS] -->"
  },
  "emmet.showAbbreviationSuggestions": true,
  "emmet.showExpandedAbbreviation": "always",
  "emmet.syntaxProfiles": {
    "vue-html": "html",
    "vue": "html",
    "php": "html"
  },
  "emmet.triggerExpansionOnTab": true,
  //
  // ----- Explorer settings
  //
  "explorer.confirmDragAndDrop": false,
  "explorer.confirmDelete": false,
  "explorer.openEditors.visible": 0,
  //
  // ----- Extension settings
  //
  "extensions.showRecommendationsOnlyOnDemand": true,
  //
  // ----- Files
  //
  "files.associations": {
    "*.typoscript": "typoscript",
    "*.tsconfig": "typoscript",
    "*.t3s": "typoscript",
    "*.setup.ts": "typoscript",
    "*.constants.ts": "typoscript",
    "*.pagets": "typoscript",
    "*.vue": "vue",
    "*.*rc": "json",
    "*.php_cs": "php",
    "*.zshrc": "shellscript",
    "*.xlf": "xml",
    "*.twig": "twig"
  },
  "files.exclude": {
    ".DS_Store": false,
    ".idea": false,
    ".git": false,
    "*.njsproj": true,
    "*.ntvs*": true,
    "*.sln": true,
    "*.suo": true,
    "npm-debug.log*": true,
    "selenium-debug.log": true,
    "test/e2e/reports/": true,
    "test/unit/coverage/": true,
    "yarn-debug.log*": true,
    "yarn-error.log*": true
  },
  "files.trimTrailingWhitespace": true,
  //
  // ----- Git Lens
  //
  "gitlens.currentLine.enabled": false,
  "gitlens.hovers.currentLine.over": "line",
  "gitlens.blame.compact": false,
  "gitlens.blame.highlight.enabled": false,
  "gitlens.blame.avatars": false,
  "gitlens.blame.heatmap.enabled": false,
  "gitlens.codeLens.enabled": false,
  //
  // ----- HTML
  //
  "html.autoClosingTags": true,
  "html.format.enable": false,
  "html.format.endWithNewline": false,
  "html.format.extraLiners": "head, body, blockquote, /html, /div, /p, /ul",
  "html.format.maxPreserveNewLines": 1,
  "html.format.wrapLineLength": 0,
  //
  // ----- Keymaps
  //
  "jetbrainsKeymap.promptV3Features": true,

  //
  // ----- JSON formatter
  //
  // Enable/disable default JSON formatter (requires restart)
  "json.format.enable": true,
  // Associate schemas to JSON files in the current project
  "json.schemas": [
    {
      "fileMatch": ["/.jsbeautifyrc"],
      "url": "http://json.schemastore.org/jsbeautifyrc"
    }
  ],
  "markdown.preview.breaks": true,
  //
  // Material Icon Theme
  //
  "material-icon-theme.files.associations": {
    "bloc":"jobs"
  },
  "materialTheme.accent": "Graphite",
  "problems.autoReveal": false,
  //
  // ----- Project Manager
  //
  "projectManager.any.ignoredFolders": [
    "___RESOURCES", "___ZUGANGSDATEN","__Certificates","__dotfiles","__TOOLS","__VMs","_ENV","_HTML-TESTS","_log","_workspaces","_php_xdebug_tmp","_Test Dateien","_Tests","_TestsWithDocker","_TestsWithFlutter","_website_backups"
  ],
  "projectManager.any.baseFolders": [
    "Volumes/_II_/_SITES", "TestsWithFlutter"
  ],
  "projectManager.any.maxDepthRecursion": 1,
  "projectManager.git.maxDepthRecursion": 1,
  "projectManager.hg.maxDepthRecursion": 1,
  "projectManager.svn.maxDepthRecursion": 1,
  "projectManager.vscode.maxDepthRecursion": 1,
  "projectManager.groupList": true,
  "projectManager.openInNewWindowWhenClickingInStatusBar": true,
  "projectManager.projectsLocation": "/Volumes/_II_/_SITES/_workspaces",
  "projectManager.vscode.baseFolders": [
    "_TestsWithFlutter"
  ],
  //
  // ----- Search
  //
  "search.showLineNumbers": true,
  "sftp.debug": true,
  "sftp.printDebugLog": true,
  //
  // ----- Automatic sync settings for VScode and its extensions on gist
  //
  "sync.gist": "2a3ec61ac7281ba48db031ee51e79054",
  "sync.quietSync": false,
  "sync.askGistName": false,
  "sync.removeExtensions": true,
  "sync.syncExtensions": true,
  "sync.autoDownload": false,
  "sync.autoUpload": false,
  "sync.forceDownload": false,
  //
  // ----- Telemetry
  //
  "telemetry.enableCrashReporter": false,
  "telemetry.enableTelemetry": false,
  //
  // ----- Terminal
  //
  "terminal.integrated.cursorBlinking": true,
  "terminal.integrated.fontSize": 13,
  "terminal.integrated.lineHeight": 1.5,
  "terminal.integrated.letterSpacing": 1,
  "terminal.external.osxExec": "iTerms.app",
  //
  // ----- Window
  //
  "window.zoomLevel": 0,
  "window.openFilesInNewWindow": "on",
  "window.restoreWindows": "folders",
  //
  // ----- Workbench
  //
  "workbench.activityBar.visible": true,
  "workbench.startupEditor": "newUntitledFile",
  "workbench.editor.highlightModifiedTabs": true,
  "workbench.enableExperiments": false,
  "workbench.iconTheme": "material-icon-theme",
  //
  // ----- Language-dependent definitions
  //
  "[css]": {
    "editor.formatOnSave": false,
    "editor.formatOnPaste": false,
    "editor.formatOnType": false,
    "editor.defaultFormatter": "HookyQR.beautify",
    // "editor.defaultFormatter": "HookyQR.beautify"
  },
  "[html]": {
    "editor.autoIndent": true,
    "editor.insertSpaces": true,
    "editor.defaultFormatter": "HookyQR.beautify",
    "editor.tabSize": 4
  },
  "[javascript]": {
    // "editor.defaultFormatter": "vscode.typescript-language-features"
    "editor.defaultFormatter": "HookyQR.beautify"
  },
  "[json]": {
    "editor.formatOnSave": true,
    "editor.formatOnPaste": true,
    "editor.formatOnType": false,
    // "editor.defaultFormatter": "vscode.json-language-features",
    "editor.defaultFormatter": "HookyQR.beautify",
    "editor.tabSize": 2
  },
  "[jsonc]": {
    "editor.formatOnSave": false,
    "editor.formatOnPaste": false,
    "editor.formatOnType": false,
    "editor.tabSize": 2
  },
  "[markdown]": {
    // "editor.defaultFormatter": "DavidAnson.vscode-markdownlint",
    "editor.formatOnSave": false,
    "editor.formatOnPaste": false,
    "editor.formatOnType": false,
    "editor.tabSize": 2,
    "files.trimTrailingWhitespace": false
  },
  "[php]": {
    // "editor.defaultFormatter": "bmewburn.vscode-intelephense-client",
    "editor.defaultFormatter": "HookyQR.beautify",
    "editor.formatOnSave": true,
    "editor.formatOnPaste": true,
    "editor.formatOnType": true
  },
  "[scss]": {
    "editor.defaultFormatter": "HookyQR.beautify",
    "editor.formatOnSave": true,
    "editor.formatOnPaste": true,
    "editor.formatOnType": false,
  },
  "[yaml]": {
    "editor.tabCompletion": "off",
    "editor.useTabStops": false,
  },
  "dart.triggerSignatureHelpAutomatically": true,
  "terminal.integrated.shell.osx": "/bin/zsh",
  "terminal.integrated.rendererType": "dom",
  "aceJump.placeholder.upperCase": true,
  "git.autoRepositoryDetection": false,
  "javascript.updateImportsOnFileMove.enabled": "always",
  "[xml]": {
    "editor.defaultFormatter": "redhat.vscode-xml"
  },
  "sqltools.connections": [],
  "bracket-pair-colorizer-2.showBracketsInGutter": true,
  "color-highlight.matchWords": true,
  "search.useIgnoreFiles": false,
  "kite.showWelcomeNotificationOnStartup": false,
  "editor.tabSize": 2,
}
Tyriar commented 4 years ago

Seems related to letterSpacing, can repro with this:

"terminal.integrated.letterSpacing": 1,
"terminal.integrated.rendererType": "dom"
rowild commented 4 years ago

Indeed, that's it. Thank you! Just weird, though, that this does not happen, when bash is selected...

Tyriar commented 4 years ago

@rowild yeah not sure about that. It should be fixed in the upcoming version though