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
This commit is contained in:
Trevor Arjeski
2024-02-11 02:39:39 +03:00
committed by GitHub
parent f1f8fa850f
commit 170c890dca
8 changed files with 10 additions and 6 deletions

View File

@@ -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 the default behavior of just refreshing the current buffer has been replaced by
refreshing all buffers. refreshing all buffers.
• |shm-q| now fully hides macro recording message instead of only shortening it.
============================================================================== ==============================================================================
BREAKING CHANGES IN HEAD *news-breaking-dev* BREAKING CHANGES IN HEAD *news-breaking-dev*

View File

@@ -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. match", "Pattern not found", "Back at original", etc.
C don't give messages while scanning for ins-completion *shm-C* C don't give messages while scanning for ins-completion *shm-C*
items, for instance "scanning tags" 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* F don't give the file info when editing a file, like *shm-F*
`:silent` was used for the command `:silent` was used for the command
S do not show search count message when searching, e.g. *shm-S* S do not show search count message when searching, e.g. *shm-S*

View File

@@ -581,6 +581,9 @@ Autocommands:
- |TermResponse| is fired for any OSC sequence received from the terminal, - |TermResponse| is fired for any OSC sequence received from the terminal,
instead of the Primary Device Attributes response. |v:termresponse| 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* Missing features *nvim-missing*

View File

@@ -5797,7 +5797,7 @@ vim.bo.sw = vim.bo.shiftwidth
--- match", "Pattern not found", "Back at original", etc. --- match", "Pattern not found", "Back at original", etc.
--- C don't give messages while scanning for ins-completion *shm-C* --- C don't give messages while scanning for ins-completion *shm-C*
--- items, for instance "scanning tags" --- 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* --- F don't give the file info when editing a file, like *shm-F*
--- `:silent` was used for the command --- `:silent` was used for the command
--- S do not show search count message when searching, e.g. *shm-S* --- S do not show search count message when searching, e.g. *shm-S*

View File

@@ -1149,11 +1149,11 @@ void clearmode(void)
static void recording_mode(int attr) static void recording_mode(int attr)
{ {
msg_puts_attr(_("recording"), attr);
if (shortmess(SHM_RECORDING)) { if (shortmess(SHM_RECORDING)) {
return; return;
} }
msg_puts_attr(_("recording"), attr);
char s[4]; char s[4];
snprintf(s, ARRAY_SIZE(s), " @%c", reg_recording); snprintf(s, ARRAY_SIZE(s), " @%c", reg_recording);
msg_puts_attr(s, attr); msg_puts_attr(s, attr);

View File

@@ -218,7 +218,7 @@ enum {
SHM_INTRO = 'I', ///< Intro messages. SHM_INTRO = 'I', ///< Intro messages.
SHM_COMPLETIONMENU = 'c', ///< Completion menu messages. SHM_COMPLETIONMENU = 'c', ///< Completion menu messages.
SHM_COMPLETIONSCAN = 'C', ///< Completion scanning 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_FILEINFO = 'F', ///< No file info messages.
SHM_SEARCHCOUNT = 'S', ///< No search stats: '[1/10]' SHM_SEARCHCOUNT = 'S', ///< No search stats: '[1/10]'
}; };

View File

@@ -7329,7 +7329,7 @@ return {
match", "Pattern not found", "Back at original", etc. match", "Pattern not found", "Back at original", etc.
C don't give messages while scanning for ins-completion *shm-C* C don't give messages while scanning for ins-completion *shm-C*
items, for instance "scanning tags" 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* F don't give the file info when editing a file, like *shm-F*
`:silent` was used for the command `:silent` was used for the command
S do not show search count message when searching, e.g. *shm-S* S do not show search count message when searching, e.g. *shm-S*

View File

@@ -175,7 +175,7 @@ func Test_recording_status_in_ex_line()
call assert_equal('recording @x', Screenline(&lines)) call assert_equal('recording @x', Screenline(&lines))
set shortmess=q set shortmess=q
redraw! redraw!
call assert_equal('recording', Screenline(&lines)) call assert_equal('', Screenline(&lines)) " Nvim: shm+=q fully hides message
set shortmess& set shortmess&
norm q norm q
redraw! redraw!