mirror of
https://github.com/microsoft/terminal.git
synced 2026-07-08 17:46:05 +00:00
Add configurable ambiguous-width policy (narrow/wide) (#19864)
This PR introduces `compatibility.ambiguousWidth` as a **global** compatibility setting (`narrow` default, `wide` optional). The default remains `narrow`. Why global-only in this PR: - Width detection is currently process-wide (`CodepointWidthDetector` singleton). - True profile-level ambiguous-width behavior would require broader architectural changes and is intentionally deferred to a follow-up design/PR. What this PR guarantees: - Terminal-side handling is consistent end-to-end for the selected ambiguous-width policy (rendering path + ConPTY/host propagation). Known limitation: - Some client applications (for example PSReadLine/readline-based apps) may still compute character widths independently. - In such cases, cursor movement or Backspace behavior can differ from visual cell width even when terminal-side policy is consistent. This is a compatibility/readability trade-off feature: - `narrow`: prioritize cross-application compatibility. - `wide`: prioritize readability with many CJK fonts. Closes #153 Closes #370 Refs #2928 Refs #2049, #2066, #2375, #900, #5910, #5914 Co-authored-by: Leonard Hecker <lhecker@microsoft.com>
This commit is contained in:
@@ -2407,6 +2407,14 @@
|
||||
"console"
|
||||
]
|
||||
},
|
||||
"compatibility.ambiguousWidth": {
|
||||
"default": "narrow",
|
||||
"description": "Controls the cell width of East Asian Ambiguous characters.",
|
||||
"enum": [
|
||||
"narrow",
|
||||
"wide"
|
||||
]
|
||||
},
|
||||
"copyFormatting": {
|
||||
"default": true,
|
||||
"description": "When set to `true`, the color and font formatting of selected text is also copied to your clipboard. When set to `false`, only plain text is copied to your clipboard. An array of specific formats can also be used. Supported array values include `html` and `rtf`. Plain text is always copied.",
|
||||
|
||||
Reference in New Issue
Block a user