-
-
Notifications
You must be signed in to change notification settings - Fork 680
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
Allow pinning the cmdline to be aligned to the bottom of window #1280
Conversation
Just to illustrate what it looks like. This is what looks like without the setting (and what MacVim looked like before the change): This is what looks like with the setting: If you do a long message or something like Just a video to illustrate the pinning in motion when you resize the window (with smooth resizing from the previously implemented feature in #1276): macvim-pin-cmdline-bottom.mov |
36285ce
to
a7279d8
Compare
Add a setting that could pin the command-line portion of Vim to the bottom of the MacVim window. This is useful when smooth resizing is set, guioption+=k, or in full screen. In those situations, the MacVim window size is usually not direct multiples of the Vim text sizes. Previously the command-line would be drawn like other texts, and hence not aligned to the bottom and hence looking aesthetically a little off. When this setting is set, the command-line portion would be aligned to the bottom of the window. This essentially moves the gap (due to the extra height of the window) from the bottom to be between cmdline and the rest of Vim. When cmdheight is changed, or other situations (e.g. typing too much cmdline height to be increased), the gap will be adjusted as well. Implementation-wise, this was done by passing the `commandline_row` var from Vim to MacVim, which serves as a good estimate of where the command-line is. This works better than just using the `cmdheight` option as it is closer to the current state of the cmdline. One issue is that in hit-enter prompts, the row is set to the 2nd to last row to anticipate more messages, and we just add a big hack by incrementing the row by 1 in hit-enter state so only the "Press Enter..." part is aligned to bottom. We also have to do something similar to when it's showing "--more--" for similar reasons. - An alternative would have been to modify Vim to provide us the information we want (the number of rows below the status line) but it's pretty tricky to do as cmdline_row is used in lots of places. It's easier / simpler to do a simple hack like this to localize the damage. Close macvim-dev#833
d6710fd
to
7b81cc3
Compare
Updated to Vim 9.0.472. Announcements ==================== Sponsors -------------------- MacVim now allows you to sponsor the team! Any amount would be appreciated and it is of course optional. See the announcement (#1271) for more details. Supporting old versions of macOS (10.12 or below) -------------------- Currently, macOS supports macOS 10.9 or above. However, this is getting harder to do so as time goes on (e.g. the latest Xcode doesn't support building for it). In the near future, MacVim will mostly target 10.13 (High Sierra) or above, with 10.9 - 10.12 as legacy support. Visit this discussion (#1288) if you would be affected and would like to know more. Features ==================== Resizing MacVim new options -------------------- You can now smoothly drag and resize MacVim without having it constrained to fixed multiples of the text size, by setting the "Smoothly resizes window" under General preference pane. This also allows MacVim to behave better when used with third-party tools (e.g. BetterSnapTool) to snap it to one side of the screen. #1276 The command line can now be pinned to the bottom of the window with a setting (under Appearance preference pane). This makes it look better aligned when using smooth resizing, or in other situations where the window size is not a direct multiples of Vim's text size (e.g. full screen or guioption+=k). #1280 New supported text styles -------------------- Vim highlight groups `strikethrough`, `underdouble`, `underdotted`, `underdashed` are now supported. #1287 New Vim features -------------------- Virtual text allows you to place custom texts to be displayed inline for diagnostic information and more (e.g. build errors, CSS color preview). See `:help virtual-text` for more information. The default color schemes (e.g. desert) are now fixed to look correct again. Misc options and commands: - `set nosplitscroll` lets you preserve the windows' scroll positions when splitting. (v9.0.0445) - `:defer` allows you to clean up in a function. (v9.0.0370) - `:echowindow` allows you to echo a message to a floating popup message window instead of to the command line. (v9.0.0321) Fixes ==================== - Fixed non-native full screen not working well with the notch on newer MacBook's when set to not show menu bar. You can also use `MMNonNativeFullScreenSafeAreaBehavior` to force MacVim to use the notch area as well if you don't mind some content being obscured. #1261 - Fixed bad interaction when two settings ("Open untitled window: never" and "After last window closes: Quit MacVim") are set together. #1257 - Fixed the bundled Vim tutor not working when launching from the Help menu #1265. - Fix crashing on launch under macOS 10.9. #1212 - Fixed potential crash when switching appearance mode in MacVim preferences. #1270 - Korean localized menus no longer throw a syntax error on launch. #1278 - `did_install_default_menus` should work in MacVim now. #1267 General ==================== Sparkle (updater for MacVim) is now updated to 1.27.1 (#1284), and we no longer use DSA keys for signing updates (#1285) as we are using EdDSA already. Scripting ==================== - Scripting languages versions: - Python is now built against 3.10, up from 3.9. Compatibility ==================== Requires macOS 10.9 or above. Script interfaces have compatibility with these versions: - Lua 5.4 - Perl 5.18 - Python2 2.7 - Python3 3.10 - Ruby 3.1
Add a setting that could pin the command-line portion of Vim to the bottom of the MacVim window. This is useful when smooth resizing is set, guioption+=k, or in full screen. In those situations, the MacVim window size is usually not direct multiples of the Vim text sizes. Previously the command-line would be drawn like other texts, and hence not aligned to the bottom and hence looking aesthetically a little off.
When this setting is set, the command-line portion would be aligned to the bottom of the window. This essentially moves the gap (due to the extra height of the window) from the bottom to be between cmdline and the rest of Vim. When cmdheight is changed, or other situations (e.g. typing too much cmdline height to be increased), the gap will be adjusted as well.
Implementation-wise, this was done by passing the
commandline_row
var from Vim to MacVim, which serves as a good estimate of where the command-line is. This works better than just using thecmdheight
option as it is closer to the current state of the cmdline. One issue is that in hit-enter prompts, the row is set to the 2nd to last row to anticipate more messages, and we just add a big hack by incrementing the row by 1 in hit-enter state so only the "Press Enter..." part is aligned to bottom. We also have to do something similar to when it's showing "--more--" for similar reasons.Close #833