mirror of
https://github.com/neovim/neovim.git
synced 2025-10-08 19:06:31 +00:00
vim-patch:9.0.1950: Vim9: error codes spread out (#25405)
Problem: Vim9: error codes spread out
Solution: group them together and reserve 100
more for future use
Reserve 100 error codes for future enhancements to the Vim9 class
support
closes: vim/vim#13207
413f83990f
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
@@ -7520,55 +7520,55 @@ M.funcs = {
|
||||
echo printf("%1$*2$.*3$f", 1.4142135, 6, 2)
|
||||
< 1.41
|
||||
|
||||
*E1400*
|
||||
*E1500*
|
||||
You cannot mix positional and non-positional arguments: >vim
|
||||
echo printf("%s%1$s", "One", "Two")
|
||||
< E1400: Cannot mix positional and non-positional
|
||||
arguments: %s%1$s
|
||||
echo printf("%s%1$s", "One", "Two")
|
||||
< E1500: Cannot mix positional and non-positional
|
||||
arguments: %s%1$s
|
||||
|
||||
*E1401*
|
||||
*E1501*
|
||||
You cannot skip a positional argument in a format string: >vim
|
||||
echo printf("%3$s%1$s", "One", "Two", "Three")
|
||||
< E1401: format argument 2 unused in $-style
|
||||
< E1501: format argument 2 unused in $-style
|
||||
format: %3$s%1$s
|
||||
|
||||
*E1402*
|
||||
*E1502*
|
||||
You can re-use a [field-width] (or [precision]) argument: >vim
|
||||
echo printf("%1$d at width %2$d is: %01$*2$d", 1, 2)
|
||||
< 1 at width 2 is: 01
|
||||
|
||||
However, you can't use it as a different type: >vim
|
||||
echo printf("%1$d at width %2$ld is: %01$*2$d", 1, 2)
|
||||
< E1402: Positional argument 2 used as field
|
||||
< E1502: Positional argument 2 used as field
|
||||
width reused as different type: long int/int
|
||||
|
||||
*E1403*
|
||||
*E1503*
|
||||
When a positional argument is used, but not the correct number
|
||||
or arguments is given, an error is raised: >vim
|
||||
echo printf("%1$d at width %2$d is: %01$*2$.*3$d", 1, 2)
|
||||
< E1403: Positional argument 3 out of bounds:
|
||||
< E1503: Positional argument 3 out of bounds:
|
||||
%1$d at width %2$d is: %01$*2$.*3$d
|
||||
|
||||
Only the first error is reported: >vim
|
||||
echo printf("%01$*2$.*3$d %4$d", 1, 2)
|
||||
< E1403: Positional argument 3 out of bounds:
|
||||
< E1503: Positional argument 3 out of bounds:
|
||||
%01$*2$.*3$d %4$d
|
||||
|
||||
*E1404*
|
||||
*E1504*
|
||||
A positional argument can be used more than once: >vim
|
||||
echo printf("%1$s %2$s %1$s", "One", "Two")
|
||||
< One Two One
|
||||
|
||||
However, you can't use a different type the second time: >vim
|
||||
echo printf("%1$s %2$s %1$d", "One", "Two")
|
||||
< E1404: Positional argument 1 type used
|
||||
< E1504: Positional argument 1 type used
|
||||
inconsistently: int/string
|
||||
|
||||
*E1405*
|
||||
*E1505*
|
||||
Various other errors that lead to a format string being
|
||||
wrongly formatted lead to: >vim
|
||||
echo printf("%1$d at width %2$d is: %01$*2$.3$d", 1, 2)
|
||||
< E1405: Invalid format specifier:
|
||||
< E1505: Invalid format specifier:
|
||||
%1$d at width %2$d is: %01$*2$.3$d
|
||||
]=],
|
||||
name = 'printf',
|
||||
|
@@ -33,19 +33,19 @@
|
||||
#include "nvim/vim.h"
|
||||
|
||||
static const char e_cannot_mix_positional_and_non_positional_str[]
|
||||
= N_("E1400: Cannot mix positional and non-positional arguments: %s");
|
||||
= N_("E1500: Cannot mix positional and non-positional arguments: %s");
|
||||
static const char e_fmt_arg_nr_unused_str[]
|
||||
= N_("E1401: format argument %d unused in $-style format: %s");
|
||||
= N_("E1501: format argument %d unused in $-style format: %s");
|
||||
static const char e_positional_num_field_spec_reused_str_str[]
|
||||
= N_("E1402: Positional argument %d used as field width reused as different type: %s/%s");
|
||||
= N_("E1502: Positional argument %d used as field width reused as different type: %s/%s");
|
||||
static const char e_positional_nr_out_of_bounds_str[]
|
||||
= N_("E1403: Positional argument %d out of bounds: %s");
|
||||
= N_("E1503: Positional argument %d out of bounds: %s");
|
||||
static const char e_positional_arg_num_type_inconsistent_str_str[]
|
||||
= N_("E1404: Positional argument %d type used inconsistently: %s/%s");
|
||||
= N_("E1504: Positional argument %d type used inconsistently: %s/%s");
|
||||
static const char e_invalid_format_specifier_str[]
|
||||
= N_("E1405: Invalid format specifier: %s");
|
||||
= N_("E1505: Invalid format specifier: %s");
|
||||
static const char e_aptypes_is_null_nr_str[]
|
||||
= "E1408: Internal error: ap_types or ap_types[idx] is NULL: %d: %s";
|
||||
= "E1520: Internal error: ap_types or ap_types[idx] is NULL: %d: %s";
|
||||
|
||||
static const char typename_unknown[] = N_("unknown");
|
||||
static const char typename_int[] = N_("int");
|
||||
|
Reference in New Issue
Block a user