Skip to content

VS Code integrated terminal text overlap and no show in some cases #206342

Description

Hi VS Code team,

We are testing VS Code with the GB18030-2022 Chinese Standard Code Character Set and we have found some issues with the integrated terminal text rendering. The text does not match the Windows system terminal in some cases.

Here are the details of our environment and test steps:

  • VS Code Version: 1.86.2

  • OS Version: Windows 11

  • System Locale and display language: Chinese (Simplified, China)

    • To set the system locale, go to Control Panel -> Clock & Region -> Region -> Change system locale to Chinese (Simplified, China).
    • To set the display language, go to Start > Settings > Time & language > Language & region -> Change Windows display language to Chinese (Simplified).
  • Test the GB18030 character set ①Ⅻㄨㄩ啊阿鼾齄丂丄狚狛狜狝﨨﨩ˊˋ˙–⿻〇 in different terminals

    • Copy and paste the character set to Windows PowerShell and cmd. Here is how they are displayed:
      image

      image

    • Copy and paste the character set to VS Code integrated terminals (Windows PowerShell/cmd). Here is how they are displayed:
      image

      image

  • The issues we have observed are:

    • For Windows PowerShell in VS Code, the character Ⅻ overlaps with other characters and the characters ˊˋ˙–do not show up at all.
    • For cmd in VS Code, the character Ⅻ overlaps with other characters.

We hope you can look into these issues and fix them ASAP. Thank you for your attention and support.

// cc: Devin Valenciano (@devinvalenciano)

Activity

  1. Tyriar commented on Feb 27, 2024

    @Tyriar
    Contributor

    Jinbo Wang (@testforstephen)

    the characters ˊˋ˙–do not show up at all.

    I cannot reproduce this, can you make sure you close all terminals and reopen them after switching languages? I suspect you might have had something in the terminal environment that got restored from the older session. Tested on Windows Terminal v1.19.10302.0, VS Code Insiders v1.87.0-insider (user setup) 41e6018, Windows

    the character Ⅻ overlaps with other characters

    The character is the same width as Windows Terminal, just the font that we're rendering with (Chromium's monospace fallback) renders it as a wide character. I've created a feature request to automatically scale down glyphs which is what Windows Terminal does xtermjs/xterm.js#4969, we may or may not get to this in the next month.

    Note though that I definitely would not consider this issue as blocking certification and I believe last year we passed just fine despite this. It's special behavior to scale such a character down and it may be considered unexpected in some cases.

  2. added
    feature-requestRequest for new features or functionality
    and removed
    bugIssue identified by VS Code Team member as probable bug
    on Feb 27, 2024
  3. lhecker commented on Feb 27, 2024

    @lhecker
    Member

    It may be worth noting that by default Windows Terminal does not scale down glyphs anymore in the latest version. If you're on a version older than 1.19.10573.0, you can force an update in the Microsoft Store application (down-left, when clicking on the Library button). Please feel free to open an issue in our repository as well, if you'd like: https://github.com/microsoft/terminal/issues

    Similar to what Daniel Imms (@Tyriar) said, we also found that this behavior is generally unexpected by users, and many complained about it. (In particular when we did it for glyphs commonly used in powerline-like prompts).

  4. testforstephen commented on Feb 28, 2024

    @testforstephen
    Author

    Leonard Hecker (@lhecker) I upgraded Windows Terminal from 1.18.10301.0 to 1.19.10573.0, now the Windows Terminal renders three glyphs (①Ⅻㄨ) overlapping as follows. Opened an issue microsoft/terminal#16779 for Windows Terminal.
    image

    I cannot reproduce this, can you make sure you close all terminals and reopen them after switching languages? I suspect you might have had something in the terminal environment that got restored from the older session. Tested on Windows Terminal v1.19.10302.0, VS Code Insiders v1.87.0-insider (user setup) 41e6018, Windows

    Daniel Imms (@Tyriar) Tried again on Windows Terminal v1.18.10301.0/v1.19.10573.0, VS Code 1.86.2/1.87.0-insider (user-setup) 019f4d1 from Windows (v10.0.22621.3155), and none of them display these characters (ˊˋ˙–) in the VS Code integrated PowerShell terminal. I have tried deleting and creating new terminals using the trash button around the integrated terminal view, but it does not affect the outcome.

    I also noticed that when I run PowerShell as an administrator from the Windows search box, it does not show the characters ˊˋ˙– either. This is consistent with the VS Code integrated terminal behavior. This suggests that the issue might be related to some PowerShell settings that prevent these glyphs from showing up.

    image

    When I run PowerShell in Windows Terminal, all the characters (ˊˋ˙–) are displayed in the terminal.
    image

  5. Tyriar commented on Feb 28, 2024

    @Tyriar
    Contributor

    This suggests that the issue might be related to some PowerShell settings that prevent these glyphs from showing up.

    Can we exclude this from our report then as that's owned by a different team and we don't have control/insight into it?

  6. testforstephen commented on Feb 29, 2024

    @testforstephen
    Author

    Can we exclude this from our report then as that's owned by a different team and we don't have control/insight into it?

    Devin Valenciano (@devinvalenciano) might have more context about the test report doc. I'm also communicating with the globalization cert team to see if we have other ways to work around it.

  7. Tyriar commented on Feb 29, 2024

    @Tyriar
    Contributor

    It's looking like we may not be doing the scaling based on responses in xtermjs/xterm.js#4969 as it's technically wrong. Note that the character is of an ambiguous width (some fonts have it wide, some don't) so the presentation is somewhat expected here.

  8. testforstephen commented on Mar 1, 2024

    @testforstephen
    Author

    the characters ˊˋ˙–do not show up at all.

    I discovered something interesting and I wanted to share it here in case it helps anyone else. I think there is a bug with the copy/paste behavior in the terminal. When I use the right click to automatically paste the clipboard content in the integrated PowerShell terminal, these characters ˊˋ˙– are missing. But when I use ctrl + v to paste the same content in the integrated PowerShell terminal, all the characters are present.

  9. added a commit that references this issue on Mar 14, 2024
    b7b436a
  10. added
    unreleasedPatch has not yet been released in VS Code Insiders
    insiders-releasedPatch has been released in VS Code Insiders
    and removed
    unreleasedPatch has not yet been released in VS Code Insiders
    on Mar 14, 2024
  11. locked and limited conversation to collaborators on Jun 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions