From 170c890dca8f160bdcd41e4fdc6bf15ee0bdba49 Mon Sep 17 00:00:00 2001 From: Trevor Arjeski Date: Sun, 11 Feb 2024 02:39:39 +0300 Subject: [PATCH] feat(shortmess): "q" flag fully hides recording message (#27415) When "q" is set in 'shortmess' it now fully hides the "recording @a" message when you are recording a macro instead of just shortening to "recording". This removes duplication when using reg_recording() in the statusline. Related #19193 --- runtime/doc/news.txt | 1 + runtime/doc/options.txt | 2 +- runtime/doc/vim_diff.txt | 3 +++ runtime/lua/vim/_meta/options.lua | 2 +- src/nvim/drawscreen.c | 2 +- src/nvim/option_vars.h | 2 +- src/nvim/options.lua | 2 +- test/old/testdir/test_registers.vim | 2 +- 8 files changed, 10 insertions(+), 6 deletions(-) diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index ad4a7a475d..573a9f43b8 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -120,6 +120,7 @@ The following changes may require adaptations in user config or plugins. the default behavior of just refreshing the current buffer has been replaced by refreshing all buffers. +• |shm-q| now fully hides macro recording message instead of only shortening it. ============================================================================== BREAKING CHANGES IN HEAD *news-breaking-dev* diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 6bdb5127c3..25607630f6 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -5459,7 +5459,7 @@ A jump table for the options with a short description can be found at |Q_op|. match", "Pattern not found", "Back at original", etc. C don't give messages while scanning for ins-completion *shm-C* items, for instance "scanning tags" - q use "recording" instead of "recording @a" *shm-q* + q do not show "recording @a" when recording a macro *shm-q* F don't give the file info when editing a file, like *shm-F* `:silent` was used for the command S do not show search count message when searching, e.g. *shm-S* diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt index 46550f42b7..023944a8ad 100644 --- a/runtime/doc/vim_diff.txt +++ b/runtime/doc/vim_diff.txt @@ -581,6 +581,9 @@ Autocommands: - |TermResponse| is fired for any OSC sequence received from the terminal, instead of the Primary Device Attributes response. |v:termresponse| +Options: +- |shm-q| fully hides macro recording message instead of only shortening it. + ============================================================================== Missing features *nvim-missing* diff --git a/runtime/lua/vim/_meta/options.lua b/runtime/lua/vim/_meta/options.lua index 83da61cc2b..835bd95a3a 100644 --- a/runtime/lua/vim/_meta/options.lua +++ b/runtime/lua/vim/_meta/options.lua @@ -5797,7 +5797,7 @@ vim.bo.sw = vim.bo.shiftwidth --- match", "Pattern not found", "Back at original", etc. --- C don't give messages while scanning for ins-completion *shm-C* --- items, for instance "scanning tags" ---- q use "recording" instead of "recording @a" *shm-q* +--- q do not show "recording @a" when recording a macro *shm-q* --- F don't give the file info when editing a file, like *shm-F* --- `:silent` was used for the command --- S do not show search count message when searching, e.g. *shm-S* diff --git a/src/nvim/drawscreen.c b/src/nvim/drawscreen.c index 793e808890..4df01d9476 100644 --- a/src/nvim/drawscreen.c +++ b/src/nvim/drawscreen.c @@ -1149,11 +1149,11 @@ void clearmode(void) static void recording_mode(int attr) { - msg_puts_attr(_("recording"), attr); if (shortmess(SHM_RECORDING)) { return; } + msg_puts_attr(_("recording"), attr); char s[4]; snprintf(s, ARRAY_SIZE(s), " @%c", reg_recording); msg_puts_attr(s, attr); diff --git a/src/nvim/option_vars.h b/src/nvim/option_vars.h index 3dc82f8fdf..a389516bd3 100644 --- a/src/nvim/option_vars.h +++ b/src/nvim/option_vars.h @@ -218,7 +218,7 @@ enum { SHM_INTRO = 'I', ///< Intro messages. SHM_COMPLETIONMENU = 'c', ///< Completion menu messages. SHM_COMPLETIONSCAN = 'C', ///< Completion scanning messages. - SHM_RECORDING = 'q', ///< Short recording message. + SHM_RECORDING = 'q', ///< No recording message. SHM_FILEINFO = 'F', ///< No file info messages. SHM_SEARCHCOUNT = 'S', ///< No search stats: '[1/10]' }; diff --git a/src/nvim/options.lua b/src/nvim/options.lua index 5c0d249ac3..b993a50b18 100644 --- a/src/nvim/options.lua +++ b/src/nvim/options.lua @@ -7329,7 +7329,7 @@ return { match", "Pattern not found", "Back at original", etc. C don't give messages while scanning for ins-completion *shm-C* items, for instance "scanning tags" - q use "recording" instead of "recording @a" *shm-q* + q do not show "recording @a" when recording a macro *shm-q* F don't give the file info when editing a file, like *shm-F* `:silent` was used for the command S do not show search count message when searching, e.g. *shm-S* diff --git a/test/old/testdir/test_registers.vim b/test/old/testdir/test_registers.vim index b570e745f1..e113bd9e75 100644 --- a/test/old/testdir/test_registers.vim +++ b/test/old/testdir/test_registers.vim @@ -175,7 +175,7 @@ func Test_recording_status_in_ex_line() call assert_equal('recording @x', Screenline(&lines)) set shortmess=q redraw! - call assert_equal('recording', Screenline(&lines)) + call assert_equal('', Screenline(&lines)) " Nvim: shm+=q fully hides message set shortmess& norm q redraw!