refactor(options)!: graduate some more shortmess flags

A lot of updated places in the docs were already incorrect since long
since they did not reflect the default behaviour.

"[dos format]" could've been argued being better for discoverability
but that ship has already sailed as it is no longer displayed by default.
This commit is contained in:
bfredl
2023-09-25 12:21:35 +02:00
parent ed8b7aae85
commit c3d1d9445c
12 changed files with 30 additions and 57 deletions

View File

@ -539,10 +539,10 @@ set to "dos", otherwise it is set to "unix". When 'fileformats' includes
"mac". "mac".
If the 'fileformat' option is set to "dos" on non-MS-Windows systems the If the 'fileformat' option is set to "dos" on non-MS-Windows systems the
message "[dos format]" is shown to remind you that something unusual is message "[dos]" is shown to remind you that something unusual is happening. On
happening. On MS-Windows systems you get the message "[unix format]" if MS-Windows systems you get the message "[unix]" if 'fileformat' is set to
'fileformat' is set to "unix". On all systems but the Macintosh you get the "unix". On all systems you get the message "[mac]" if 'fileformat' is set to
message "[mac format]" if 'fileformat' is set to "mac". "mac".
If the 'fileformats' option is empty and DOS format is used, but while reading If the 'fileformats' option is empty and DOS format is used, but while reading
a file some lines did not end in <CR><NL>, "[CR missing]" will be included in a file some lines did not end in <CR><NL>, "[CR missing]" will be included in
@ -1056,14 +1056,14 @@ lost the original file.
*DOS-format-write* *DOS-format-write*
If the 'fileformat' is "dos", <CR><NL> is used for <EOL>. This is default If the 'fileformat' is "dos", <CR><NL> is used for <EOL>. This is default
for Windows. On other systems the message "[dos format]" is shown to for Windows. On other systems the message "[dos]" is shown to
remind you that an unusual <EOL> was used. remind you that an unusual <EOL> was used.
*Unix-format-write* *Unix-format-write*
If the 'fileformat' is "unix", <NL> is used for <EOL>. On Windows If the 'fileformat' is "unix", <NL> is used for <EOL>. On Windows
the message "[unix format]" is shown. the message "[unix]" is shown.
*Mac-format-write* *Mac-format-write*
If the 'fileformat' is "mac", <CR> is used for <EOL>. On non-Mac systems the If the 'fileformat' is "mac", <CR> is used for <EOL>. The
message "[mac format]" is shown. message "[mac]" is shown.
See also |file-formats| and the 'fileformat' and 'fileformats' options. See also |file-formats| and the 'fileformat' and 'fileformats' options.

View File

@ -247,8 +247,11 @@ The following deprecated functions or APIs were removed.
• Support for legacy treesitter injection queries is removed. • Support for legacy treesitter injection queries is removed.
• 'shortmess' flags: Removed 'shortmess' flags:
- |shm-f| is removed. Always uses "(3 of 5)", never "(file 3 of 5)" - |shm-f|. Always uses "(3 of 5)", never "(file 3 of 5)"
- |shm-i|. Always use "[noeol]".
- |shm-x|. Always use "[dos]", "[unix]" and "[mac]"
- |shm-n|. Always use "[New]".
============================================================================== ==============================================================================
DEPRECATIONS *news-deprecations* DEPRECATIONS *news-deprecations*

View File

@ -5383,22 +5383,17 @@ A jump table for the options with a short description can be found at |Q_op|.
function to get the effective shiftwidth value. function to get the effective shiftwidth value.
*'shortmess'* *'shm'* *E1336* *'shortmess'* *'shm'* *E1336*
'shortmess' 'shm' string (default "ilnxtToOCF") 'shortmess' 'shm' string (default "ltToOCF")
global global
This option helps to avoid all the |hit-enter| prompts caused by file This option helps to avoid all the |hit-enter| prompts caused by file
messages, for example with CTRL-G, and to avoid some other messages. messages, for example with CTRL-G, and to avoid some other messages.
It is a list of flags: It is a list of flags:
flag meaning when present ~ flag meaning when present ~
i use "[noeol]" instead of "[Incomplete last line]" *shm-i*
l use "999L, 888B" instead of "999 lines, 888 bytes" *shm-l* l use "999L, 888B" instead of "999 lines, 888 bytes" *shm-l*
m use "[+]" instead of "[Modified]" *shm-m* m use "[+]" instead of "[Modified]" *shm-m*
n use "[New]" instead of "[New File]" *shm-n*
r use "[RO]" instead of "[readonly]" *shm-r* r use "[RO]" instead of "[readonly]" *shm-r*
w use "[w]" instead of "written" for file write message *shm-w* w use "[w]" instead of "written" for file write message *shm-w*
and "[a]" instead of "appended" for ':w >> file' command and "[a]" instead of "appended" for ':w >> file' command
x use "[dos]" instead of "[dos format]", "[unix]" *shm-x*
instead of "[unix format]" and "[mac]" instead of "[mac
format]"
a all of the above abbreviations *shm-a* a all of the above abbreviations *shm-a*
o overwrite message for writing a file with subsequent *shm-o* o overwrite message for writing a file with subsequent *shm-o*

View File

@ -40,7 +40,7 @@ blank window. This is what your screen will look like:
|~ | |~ |
|~ | |~ |
|~ | |~ |
|"file.txt" [New file] | |"file.txt" [New] |
+---------------------------------------+ +---------------------------------------+
('#' is the cursor position.) ('#' is the cursor position.)
< <

View File

@ -731,7 +731,7 @@ Options:
Everything is allowed in 'exrc' files since they must be explicitly marked Everything is allowed in 'exrc' files since they must be explicitly marked
trusted. trusted.
*'shelltype'* *'shelltype'*
'shortmess' *shm-f* flag (always on, never show "file" in "(3 of 5)") 'shortmess' flags: *shm-f* *shm-n* *shm-x* *shm-i* (behave like always on)
*'shortname'* *'sn'* *'noshortname'* *'nosn'* *'shortname'* *'sn'* *'noshortname'* *'nosn'*
*'swapsync'* *'sws'* *'swapsync'* *'sws'*
*'termencoding'* *'tenc'* (Vim 7.4.852 also removed this for Windows) *'termencoding'* *'tenc'* (Vim 7.4.852 also removed this for Windows)

View File

@ -5666,16 +5666,11 @@ vim.bo.sw = vim.bo.shiftwidth
--- messages, for example with CTRL-G, and to avoid some other messages. --- messages, for example with CTRL-G, and to avoid some other messages.
--- It is a list of flags: --- It is a list of flags:
--- flag meaning when present ~ --- flag meaning when present ~
--- i use "[noeol]" instead of "[Incomplete last line]" *shm-i*
--- l use "999L, 888B" instead of "999 lines, 888 bytes" *shm-l* --- l use "999L, 888B" instead of "999 lines, 888 bytes" *shm-l*
--- m use "[+]" instead of "[Modified]" *shm-m* --- m use "[+]" instead of "[Modified]" *shm-m*
--- n use "[New]" instead of "[New File]" *shm-n*
--- r use "[RO]" instead of "[readonly]" *shm-r* --- r use "[RO]" instead of "[readonly]" *shm-r*
--- w use "[w]" instead of "written" for file write message *shm-w* --- w use "[w]" instead of "written" for file write message *shm-w*
--- and "[a]" instead of "appended" for ':w >> file' command --- and "[a]" instead of "appended" for ':w >> file' command
--- x use "[dos]" instead of "[dos format]", "[unix]" *shm-x*
--- instead of "[unix format]" and "[mac]" instead of "[mac
--- format]"
--- a all of the above abbreviations *shm-a* --- a all of the above abbreviations *shm-a*
--- ---
--- o overwrite message for writing a file with subsequent *shm-o* --- o overwrite message for writing a file with subsequent *shm-o*
@ -5719,7 +5714,7 @@ vim.bo.sw = vim.bo.shiftwidth
--- shm=at Abbreviation, and truncate message when necessary. --- shm=at Abbreviation, and truncate message when necessary.
--- ---
--- @type string --- @type string
vim.o.shortmess = "ilnxtToOCF" vim.o.shortmess = "ltToOCF"
vim.o.shm = vim.o.shortmess vim.o.shm = vim.o.shortmess
vim.go.shortmess = vim.o.shortmess vim.go.shortmess = vim.o.shortmess
vim.go.shm = vim.go.shortmess vim.go.shm = vim.go.shortmess

View File

@ -3182,7 +3182,7 @@ void fileinfo(int fullname, int shorthelp, int dont_truncate)
(curbuf->b_flags & BF_NOTEDITED) && !dontwrite (curbuf->b_flags & BF_NOTEDITED) && !dontwrite
? _("[Not edited]") : "", ? _("[Not edited]") : "",
(curbuf->b_flags & BF_NEW) && !dontwrite (curbuf->b_flags & BF_NEW) && !dontwrite
? new_file_message() : "", ? _("[New]") : "",
(curbuf->b_flags & BF_READERR) (curbuf->b_flags & BF_READERR)
? _("[Read errors]") : "", ? _("[Read errors]") : "",
curbuf->b_p_ro curbuf->b_p_ro

View File

@ -1766,11 +1766,11 @@ restore_backup:
xstrlcat(IObuff, _("[Device]"), IOSIZE); xstrlcat(IObuff, _("[Device]"), IOSIZE);
insert_space = true; insert_space = true;
} else if (newfile) { } else if (newfile) {
xstrlcat(IObuff, new_file_message(), IOSIZE); xstrlcat(IObuff, _("[New]"), IOSIZE);
insert_space = true; insert_space = true;
} }
if (no_eol) { if (no_eol) {
msg_add_eol(); xstrlcat(IObuff, _("[noeol]"), IOSIZE);
insert_space = true; insert_space = true;
} }
// may add [unix/dos/mac] // may add [unix/dos/mac]

View File

@ -459,7 +459,7 @@ int readfile(char *fname, char *sfname, linenr_T from, linenr_T lines_to_skip,
} }
if (!silent) { if (!silent) {
if (dir_of_file_exists(fname)) { if (dir_of_file_exists(fname)) {
filemess(curbuf, sfname, new_file_message(), 0); filemess(curbuf, sfname, _("[New]"), 0);
} else { } else {
filemess(curbuf, sfname, _("[New DIRECTORY]"), 0); filemess(curbuf, sfname, _("[New DIRECTORY]"), 0);
} }
@ -1718,7 +1718,7 @@ failed:
c = true; c = true;
} }
if (read_no_eol_lnum) { if (read_no_eol_lnum) {
msg_add_eol(); xstrlcat(IObuff, _("[noeol]"), IOSIZE);
c = true; c = true;
} }
if (ff_error == EOL_DOS) { if (ff_error == EOL_DOS) {
@ -2064,11 +2064,6 @@ static void check_marks_read(void)
curbuf->b_marks_read = true; curbuf->b_marks_read = true;
} }
char *new_file_message(void)
{
return shortmess(SHM_NEW) ? _("[New]") : _("[New File]");
}
/// Set the name of the current buffer. Use when the buffer doesn't have a /// Set the name of the current buffer. Use when the buffer doesn't have a
/// name and a ":r" or ":w" command with a file name is used. /// name and a ":r" or ":w" command with a file name is used.
int set_rw_fname(char *fname, char *sfname) int set_rw_fname(char *fname, char *sfname)
@ -2142,17 +2137,17 @@ bool msg_add_fileformat(int eol_type)
{ {
#ifndef USE_CRNL #ifndef USE_CRNL
if (eol_type == EOL_DOS) { if (eol_type == EOL_DOS) {
xstrlcat(IObuff, shortmess(SHM_TEXT) ? _("[dos]") : _("[dos format]"), IOSIZE); xstrlcat(IObuff, _("[dos]"), IOSIZE);
return true; return true;
} }
#endif #endif
if (eol_type == EOL_MAC) { if (eol_type == EOL_MAC) {
xstrlcat(IObuff, shortmess(SHM_TEXT) ? _("[mac]") : _("[mac format]"), IOSIZE); xstrlcat(IObuff, _("[mac]"), IOSIZE);
return true; return true;
} }
#ifdef USE_CRNL #ifdef USE_CRNL
if (eol_type == EOL_UNIX) { if (eol_type == EOL_UNIX) {
xstrlcat(IObuff, shortmess(SHM_TEXT) ? _("[unix]") : _("[unix format]"), IOSIZE); xstrlcat(IObuff, _("[unix]"), IOSIZE);
return true; return true;
} }
#endif #endif
@ -2181,12 +2176,6 @@ void msg_add_lines(int insert_space, long lnum, off_T nchars)
} }
} }
/// Append message for missing line separator to IObuff.
void msg_add_eol(void)
{
xstrlcat(IObuff, shortmess(SHM_LAST) ? _("[noeol]") : _("[Incomplete last line]"), IOSIZE);
}
bool time_differs(const FileInfo *file_info, long mtime, long mtime_ns) FUNC_ATTR_CONST bool time_differs(const FileInfo *file_info, long mtime, long mtime_ns) FUNC_ATTR_CONST
{ {
#if defined(__linux__) || defined(MSWIN) #if defined(__linux__) || defined(MSWIN)

View File

@ -240,11 +240,7 @@ typedef enum {
enum { enum {
SHM_RO = 'r', ///< Readonly. SHM_RO = 'r', ///< Readonly.
SHM_MOD = 'm', ///< Modified. SHM_MOD = 'm', ///< Modified.
SHM_FILE = 'f', ///< (file 1 of 2)
SHM_LAST = 'i', ///< Last line incomplete.
SHM_TEXT = 'x', ///< tx instead of textmode.
SHM_LINES = 'l', ///< "L" instead of "lines". SHM_LINES = 'l', ///< "L" instead of "lines".
SHM_NEW = 'n', ///< "[New]" instead of "[New file]".
SHM_WRI = 'w', ///< "[w]" instead of "written". SHM_WRI = 'w', ///< "[w]" instead of "written".
SHM_ABBREVIATIONS = 'a', ///< Use abbreviations from #SHM_ALL_ABBREVIATIONS. SHM_ABBREVIATIONS = 'a', ///< Use abbreviations from #SHM_ALL_ABBREVIATIONS.
SHM_WRITE = 'W', ///< Don't use "written" at all. SHM_WRITE = 'W', ///< Don't use "written" at all.
@ -260,11 +256,10 @@ enum {
SHM_RECORDING = 'q', ///< Short recording message. SHM_RECORDING = 'q', ///< Short 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]'
SHM_LEN = 30, ///< Max length of all flags together plus a NUL character.
}; };
/// Represented by 'a' flag. /// Represented by 'a' flag.
#define SHM_ALL_ABBREVIATIONS ((char[]) { \ #define SHM_ALL_ABBREVIATIONS ((char[]) { \
SHM_RO, SHM_MOD, SHM_FILE, SHM_LAST, SHM_TEXT, SHM_LINES, SHM_NEW, SHM_WRI, \ SHM_RO, SHM_MOD, SHM_LINES, SHM_WRI, \
0 }) 0 })
// characters for p_go: // characters for p_go:

View File

@ -7239,22 +7239,17 @@ return {
{ {
abbreviation = 'shm', abbreviation = 'shm',
cb = 'did_set_shortmess', cb = 'did_set_shortmess',
defaults = { if_true = 'ilnxtToOCF' }, defaults = { if_true = 'ltToOCF' },
desc = [=[ desc = [=[
This option helps to avoid all the |hit-enter| prompts caused by file This option helps to avoid all the |hit-enter| prompts caused by file
messages, for example with CTRL-G, and to avoid some other messages. messages, for example with CTRL-G, and to avoid some other messages.
It is a list of flags: It is a list of flags:
flag meaning when present ~ flag meaning when present ~
i use "[noeol]" instead of "[Incomplete last line]" *shm-i*
l use "999L, 888B" instead of "999 lines, 888 bytes" *shm-l* l use "999L, 888B" instead of "999 lines, 888 bytes" *shm-l*
m use "[+]" instead of "[Modified]" *shm-m* m use "[+]" instead of "[Modified]" *shm-m*
n use "[New]" instead of "[New File]" *shm-n*
r use "[RO]" instead of "[readonly]" *shm-r* r use "[RO]" instead of "[readonly]" *shm-r*
w use "[w]" instead of "written" for file write message *shm-w* w use "[w]" instead of "written" for file write message *shm-w*
and "[a]" instead of "appended" for ':w >> file' command and "[a]" instead of "appended" for ':w >> file' command
x use "[dos]" instead of "[dos format]", "[unix]" *shm-x*
instead of "[unix format]" and "[mac]" instead of "[mac
format]"
a all of the above abbreviations *shm-a* a all of the above abbreviations *shm-a*
o overwrite message for writing a file with subsequent *shm-o* o overwrite message for writing a file with subsequent *shm-o*

View File

@ -132,11 +132,12 @@ static char *(p_rdb_values[]) = { "compositor", "nothrottle", "invalid", "nodelt
static char *(p_sloc_values[]) = { "last", "statusline", "tabline", NULL }; static char *(p_sloc_values[]) = { "last", "statusline", "tabline", NULL };
/// All possible flags for 'shm'. /// All possible flags for 'shm'.
static char SHM_ALL[] = { SHM_RO, SHM_MOD, SHM_FILE, SHM_LAST, SHM_TEXT, SHM_LINES, SHM_NEW, /// the literal chars before 0 are removed flags. these are safely ignored
static char SHM_ALL[] = { SHM_RO, SHM_MOD, SHM_LINES,
SHM_WRI, SHM_ABBREVIATIONS, SHM_WRITE, SHM_TRUNC, SHM_TRUNCALL, SHM_WRI, SHM_ABBREVIATIONS, SHM_WRITE, SHM_TRUNC, SHM_TRUNCALL,
SHM_OVER, SHM_OVERALL, SHM_SEARCH, SHM_ATTENTION, SHM_INTRO, SHM_OVER, SHM_OVERALL, SHM_SEARCH, SHM_ATTENTION, SHM_INTRO,
SHM_COMPLETIONMENU, SHM_COMPLETIONSCAN, SHM_RECORDING, SHM_FILEINFO, SHM_COMPLETIONMENU, SHM_COMPLETIONSCAN, SHM_RECORDING, SHM_FILEINFO,
SHM_SEARCHCOUNT, 0, }; SHM_SEARCHCOUNT, 'n', 'f', 'x', 'i', 0, };
/// After setting various option values: recompute variables that depend on /// After setting various option values: recompute variables that depend on
/// option values. /// option values.