Remove option to use system wcwidth#5777
Conversation
As it turns out it didn't work much better, and it fell behind in support when it comes to things that wcwidth traditionally can't express like variation selectors and hangul combining characters, but also simply $fish_*_width. I've had to tell a few people now to rebuild with widecharwidth after sending them on a fool's errand to set X variable. So keeping this option is doing our users a disservice.
|
Do we know of any platforms where packages are distributed which use the system |
Nix is the only one I know of.
The problem is even if they are doing it mostly, the system wcwidth path doesn't have any of the quirks - not the variation selectors, not the hangul stuff, not $fish_ambiguous_width. My initial assumption was that there would be a happy path where the terminal just displays everything according to wcwidth, and that system wcwidth is reasonably correct or that both would be wrong in the same way so being wrong with them was preferable. That's basically not the case. Let me put it this way: I have had to tell multiple people to switch away from system wcwidth, I haven't had to tell anyone to go the other way. That means this is just objectively worse. |
That's a good argument to me. |
|
This will definitely need a CHANGELOG entry, as #4816 got one. |
|
Note that the recent improvements to console mode support feature explicit use of the system IMHO, speaking from the other (dark!) side of things, in my endeavor to get fish to display properly and handle encodings correctly at login (non-X11, non-SSH, text-only) console sessions, it's basically the only case where the system |
|
Merged and changelogged. |
Fish 3.0 has an updated an more robust handling of unicode glyphs. Per the original author of the INTERNAL_WCWIDTH flag, it was something of misfeature, and they regret that NixOS came to rely on it. Removes the flag from the Nix expression. Flag was added originally to Nixpkgs in 68076b7 It is being removed entirely from upstream fish: fish-shell/fish-shell#5777.
As it turns out it didn't work much better, and it fell behind in
support when it comes to things that wcwidth traditionally can't
express like variation selectors and hangul combining characters, but
also simply $fish_*_width.
I've had to tell a few people now to rebuild with widecharwidth after
sending them on a fool's errand to set X variable.
So keeping this option is doing our users a disservice.
TODOs: