-
Notifications
You must be signed in to change notification settings - Fork 5.9k
Theme-able Vim Mode wrapper #39813
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Theme-able Vim Mode wrapper #39813
Conversation
|
We require contributors to sign our Contributor License Agreement, and we don't have @WillyHetland on file. You can sign our CLA at https://zed.dev/cla. Once you've signed, post a comment here that says '@cla-bot check'. |
|
@cla-bot check |
|
The cla-bot has been summoned, and re-checked this pull request! |
| pub struct ThemeColorsContent { | ||
| /// Background color for Vim Normal mode indicator. | ||
| #[serde(rename = "vim.normal.background")] | ||
| pub vim_normal_background: Option<String>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's move these to the bottom of the struct.
|
Thanks for this! I like this approach much better than re-using the git status colors; but I'm still concerned about the default un-themed version. Is there a way to build this where the padding doesn't look wrong if the colors are not set (Which will be the default)? I'm not sure we need the I'm also not thrilled by how many variables a theme would have to set to use this, but I think that reflects reality somewhat... |
|
Thanks. It's a bit odd to have the theme change the content, but I think it's the best compromise in this case (until we figure out a better one :D). Would you mind making the CI happy? |
|
I spent a bit more time tidying this up:
|
|
I'm not sure if this error was caused by this change. If you force quit the app, reopening it will retain the insertion mode. 2025-10-28.08.46.35.mov |
Can be replicated in the current release. Don't think its related to this. |

Closes #14093
Builds on #32279 by making it theme dependent.
Discussion #37816
Wraps the mode label indicator in a div and makes the wrapper and label theme-able. Label weight to medium
Mode indicator will render like previously if not theme colors have been set. (i.e., they match zed default- and fallbacks)
Really helps with visual confirmation of current mode.
Did not investigate further if there is a way to keep the leading and trailing -- if no theme var given.
Can be applied either by a theme itself or using
theme_overridesin settings.jsonTheme colors applied via



theme_overridesNo theme applied



vimmodes.mov
Release Notes: