status_bar: Add encoding indicator #45476
Open
+167
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context / Related PRs This PR is the third part of the encoding support improvements, following:
Summary
This PR implements a status bar item that displays the character encoding of the active buffer (e.g.,
UTF-8,Shift_JIS). It provides visibility into the file's encoding and indicates the presence of a Byte Order Mark (BOM).Features
(BOM)to the encoding name if a BOM is detected (e.g.,UTF-8 (BOM)).active_encoding_buttontostatus_barsettings to toggle visibility (default:true).configuring-zed.mdandvisual-customization.md.Implementation Details
ActiveBufferEncodingcomponent incrates/encoding_selector.active_encoding_button.Screenshots
Configuration
To hide the button, add the following to
settings.json:Heuristic Limitations:
The underlying detection logic (implemented in #44819 and #45243) prioritizes UTF-8 opening performance and does not guarantee perfect detection for all encodings. We consider this margin of error acceptable, similar to the behavior seen in VS Code. A future "Reopen with Encoding" feature would serve as the primary fallback for any misdetections.
Release Notes:
UTF-8) and BOM status.