From e06f2b498ccca921f34a1bec4464f042a5a2cabd Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Fri, 8 Dec 2023 21:21:53 +0100 Subject: [PATCH 001/120] runtime(doc): fix typo in change.txt Signed-off-by: Christian Brabandt --- runtime/doc/change.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index 7741312fcb..8c74551cc1 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -1,4 +1,4 @@ -*change.txt* For Vim version 9.0. Last change: 2023 Nov 15 +*change.txt* For Vim version 9.0. Last change: 2023 Dec 08 VIM REFERENCE MANUAL by Bram Moolenaar @@ -453,7 +453,7 @@ Note that when 'nrformats' includes "octal", decimal numbers with leading zeros cause mistakes, because they can be confused with octal numbers. Note similarly, when 'nrformats' includes "bin", binary numbers with a leading -'0x' or '0X' can be interpreted as hexadecimal rather than binary since '0b' +'0b' or '0B' can be interpreted as hexadecimal rather than binary since '0b' are valid hexadecimal digits. When the number under the cursor is too big to fit into 32 or 64 bit From ff0baca86523f1e8c6ea593ec0ef2f9860f001d0 Mon Sep 17 00:00:00 2001 From: laburnumT Date: Fri, 8 Dec 2023 21:27:03 +0100 Subject: [PATCH 002/120] runtime(syntax): unlet b:filetype_in_cpp_family for cpp & squirrel Update runtime/syntax/cpp.vim and runtime/syntax/squirrel.vim to unlet b:filetype_in_cpp_family as it remains set even after updating the ft of a file manually or through a modeline, not allowing c specific keywords to be highlighted. Since the variable b:filetype_in_cpp_family is only used by the c.vim syntax script, unlet it directly after sourcing the c.vim runtime file instead of at the end of the script. Also update the last Change Header for both files. closes: #13650 Signed-off-by: laburnumT Signed-off-by: Christian Brabandt --- runtime/syntax/cpp.vim | 3 ++- runtime/syntax/squirrel.vim | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/runtime/syntax/cpp.vim b/runtime/syntax/cpp.vim index 5437580a0a..8daf90a33c 100644 --- a/runtime/syntax/cpp.vim +++ b/runtime/syntax/cpp.vim @@ -2,7 +2,7 @@ " Language: C++ " Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp) " Previous Maintainer: Ken Shan -" Last Change: 2021 Aug 23 +" Last Change: 2023 Dec 08 " quit when a syntax file was already loaded if exists("b:current_syntax") @@ -15,6 +15,7 @@ let b:filetype_in_cpp_family = 1 " Read the C syntax to start with runtime! syntax/c.vim unlet b:current_syntax +unlet b:filetype_in_cpp_family " C++ extensions syn keyword cppStatement new delete this friend using diff --git a/runtime/syntax/squirrel.vim b/runtime/syntax/squirrel.vim index 81d59cc986..85bdd87d9e 100644 --- a/runtime/syntax/squirrel.vim +++ b/runtime/syntax/squirrel.vim @@ -2,7 +2,7 @@ " Language: squirrel " Current Maintainer: Matt Dunford (zenmatic@gmail.com) " URL: https://github.com/zenmatic/vim-syntax-squirrel -" Last Change: 2021 Nov 28 +" Last Change: 2023 Dec 08 " http://squirrel-lang.org/ @@ -17,6 +17,7 @@ let b:filetype_in_cpp_family = 1 " Read the C syntax to start with runtime! syntax/c.vim unlet b:current_syntax +unlet b:filetype_in_cpp_family " squirrel extensions syn keyword squirrelStatement delete this in yield resume base clone From f48558e10a08a1a483e25ef847bbceeac6b44561 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 8 Dec 2023 21:34:31 +0100 Subject: [PATCH 003/120] patch 9.0.2154: The option[] array is not sorted Problem: The options[] array is not sorted alphabetically. Solution: Sort it alphabetically. Add a test. Avoid unnecessary loop iterations in findoption(). closes: #13648 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- src/option.c | 4 +- src/optiondefs.h | 166 +++++++++++++++++------------------ src/testdir/test_options.vim | 3 + src/version.c | 2 + 4 files changed, 91 insertions(+), 84 deletions(-) diff --git a/src/option.c b/src/option.c index df81cf33bd..4d12834f2e 100644 --- a/src/option.c +++ b/src/option.c @@ -4933,11 +4933,13 @@ findoption(char_u *arg) opt_idx = quick_tab[26]; else opt_idx = quick_tab[CharOrdLow(arg[0])]; - for ( ; (s = options[opt_idx].fullname) != NULL; opt_idx++) + for (; (s = options[opt_idx].fullname) != NULL && s[0] == arg[0]; opt_idx++) { if (STRCMP(arg, s) == 0) // match full name break; } + if (s != NULL && s[0] != arg[0]) + s = NULL; if (s == NULL && !is_term_opt) { opt_idx = quick_tab[CharOrdLow(arg[0])]; diff --git a/src/optiondefs.h b/src/optiondefs.h index 10f2aff131..658e17d16d 100644 --- a/src/optiondefs.h +++ b/src/optiondefs.h @@ -341,20 +341,6 @@ static struct vimoption options[] = (char_u *)NULL, PV_NONE, NULL, NULL, {(char_u *)FALSE, (char_u *)FALSE} SCTX_INIT}, - {"arabic", "arab", P_BOOL|P_VI_DEF|P_VIM|P_CURSWANT, -#ifdef FEAT_ARABIC - (char_u *)VAR_WIN, PV_ARAB, did_set_arabic, NULL, -#else - (char_u *)NULL, PV_NONE, NULL, NULL, -#endif - {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, - {"arabicshape", "arshape", P_BOOL|P_VI_DEF|P_VIM|P_RCLR, -#ifdef FEAT_ARABIC - (char_u *)&p_arshape, PV_NONE, NULL, NULL, -#else - (char_u *)NULL, PV_NONE, NULL, NULL, -#endif - {(char_u *)TRUE, (char_u *)0L} SCTX_INIT}, {"allowrevins", "ari", P_BOOL|P_VI_DEF|P_VIM, #ifdef FEAT_RIGHTLEFT (char_u *)&p_ari, PV_NONE, NULL, NULL, @@ -369,6 +355,20 @@ static struct vimoption options[] = (char_u *)&p_ambw, PV_NONE, did_set_ambiwidth, expand_set_ambiwidth, {(char_u *)"single", (char_u *)0L} SCTX_INIT}, + {"arabic", "arab", P_BOOL|P_VI_DEF|P_VIM|P_CURSWANT, +#ifdef FEAT_ARABIC + (char_u *)VAR_WIN, PV_ARAB, did_set_arabic, NULL, +#else + (char_u *)NULL, PV_NONE, NULL, NULL, +#endif + {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, + {"arabicshape", "arshape", P_BOOL|P_VI_DEF|P_VIM|P_RCLR, +#ifdef FEAT_ARABIC + (char_u *)&p_arshape, PV_NONE, NULL, NULL, +#else + (char_u *)NULL, PV_NONE, NULL, NULL, +#endif + {(char_u *)TRUE, (char_u *)0L} SCTX_INIT}, {"autochdir", "acd", P_BOOL|P_VI_DEF, #ifdef FEAT_AUTOCHDIR (char_u *)&p_acd, PV_NONE, did_set_autochdir, NULL, @@ -376,15 +376,6 @@ static struct vimoption options[] = #else (char_u *)NULL, PV_NONE, NULL, NULL, {(char_u *)0L, (char_u *)0L} -#endif - SCTX_INIT}, - {"autoshelldir", "asd", P_BOOL|P_VI_DEF, -#ifdef FEAT_AUTOSHELLDIR - (char_u *)&p_asd, PV_NONE, NULL, NULL, - {(char_u *)FALSE, (char_u *)0L} -#else - (char_u *)NULL, PV_NONE, NULL, NULL, - {(char_u *)0L, (char_u *)0L} #endif SCTX_INIT}, {"autoindent", "ai", P_BOOL|P_VI_DEF, @@ -396,6 +387,15 @@ static struct vimoption options[] = {"autoread", "ar", P_BOOL|P_VI_DEF, (char_u *)&p_ar, PV_AR, NULL, NULL, {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, + {"autoshelldir", "asd", P_BOOL|P_VI_DEF, +#ifdef FEAT_AUTOSHELLDIR + (char_u *)&p_asd, PV_NONE, NULL, NULL, + {(char_u *)FALSE, (char_u *)0L} +#else + (char_u *)NULL, PV_NONE, NULL, NULL, + {(char_u *)0L, (char_u *)0L} +#endif + SCTX_INIT}, {"autowrite", "aw", P_BOOL|P_VI_DEF, (char_u *)&p_aw, PV_NONE, NULL, NULL, {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, @@ -643,23 +643,6 @@ static struct vimoption options[] = (char_u *)&p_cpt, PV_CPT, did_set_complete, expand_set_complete, {(char_u *)".,w,b,u,t,i", (char_u *)0L} SCTX_INIT}, - {"concealcursor","cocu", P_STRING|P_ALLOCED|P_RWIN|P_VI_DEF|P_FLAGLIST, -#ifdef FEAT_CONCEAL - (char_u *)VAR_WIN, PV_COCU, did_set_concealcursor, expand_set_concealcursor, - {(char_u *)"", (char_u *)NULL} -#else - (char_u *)NULL, PV_NONE, NULL, NULL, - {(char_u *)NULL, (char_u *)0L} -#endif - SCTX_INIT}, - {"conceallevel","cole", P_NUM|P_RWIN|P_VI_DEF, -#ifdef FEAT_CONCEAL - (char_u *)VAR_WIN, PV_COLE, did_set_conceallevel, NULL, -#else - (char_u *)NULL, PV_NONE, NULL, NULL, -#endif - {(char_u *)0L, (char_u *)0L} - SCTX_INIT}, {"completefunc", "cfu", P_STRING|P_ALLOCED|P_VI_DEF|P_SECURE|P_FUNC, #ifdef FEAT_COMPL_FUNC (char_u *)&p_cfu, PV_CFU, did_set_completefunc, NULL, @@ -691,6 +674,23 @@ static struct vimoption options[] = {(char_u *)0L, (char_u *)0L} #endif SCTX_INIT}, + {"concealcursor","cocu", P_STRING|P_ALLOCED|P_RWIN|P_VI_DEF|P_FLAGLIST, +#ifdef FEAT_CONCEAL + (char_u *)VAR_WIN, PV_COCU, did_set_concealcursor, expand_set_concealcursor, + {(char_u *)"", (char_u *)NULL} +#else + (char_u *)NULL, PV_NONE, NULL, NULL, + {(char_u *)NULL, (char_u *)0L} +#endif + SCTX_INIT}, + {"conceallevel","cole", P_NUM|P_RWIN|P_VI_DEF, +#ifdef FEAT_CONCEAL + (char_u *)VAR_WIN, PV_COLE, did_set_conceallevel, NULL, +#else + (char_u *)NULL, PV_NONE, NULL, NULL, +#endif + {(char_u *)0L, (char_u *)0L} + SCTX_INIT}, {"confirm", "cf", P_BOOL|P_VI_DEF, #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) (char_u *)&p_confirm, PV_NONE, NULL, NULL, @@ -1091,14 +1091,14 @@ static struct vimoption options[] = {(char_u *)0L, (char_u *)0L} #endif SCTX_INIT}, - {"formatoptions","fo", P_STRING|P_ALLOCED|P_VIM|P_FLAGLIST, - (char_u *)&p_fo, PV_FO, did_set_formatoptions, expand_set_formatoptions, - {(char_u *)DFLT_FO_VI, (char_u *)DFLT_FO_VIM} - SCTX_INIT}, {"formatlistpat","flp", P_STRING|P_ALLOCED|P_VI_DEF, (char_u *)&p_flp, PV_FLP, NULL, NULL, {(char_u *)"^\\s*\\d\\+[\\]:.)}\\t ]\\s*", (char_u *)0L} SCTX_INIT}, + {"formatoptions","fo", P_STRING|P_ALLOCED|P_VIM|P_FLAGLIST, + (char_u *)&p_fo, PV_FO, did_set_formatoptions, expand_set_formatoptions, + {(char_u *)DFLT_FO_VI, (char_u *)DFLT_FO_VIM} + SCTX_INIT}, {"formatprg", "fp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, (char_u *)&p_fp, PV_FP, NULL, NULL, {(char_u *)"", (char_u *)0L} SCTX_INIT}, @@ -1203,6 +1203,14 @@ static struct vimoption options[] = SCTX_INIT}, + {"guiheadroom", "ghr", P_NUM|P_VI_DEF, +#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11) + (char_u *)&p_ghr, PV_NONE, NULL, NULL, +#else + (char_u *)NULL, PV_NONE, NULL, NULL, +#endif + {(char_u *)50L, (char_u *)0L} SCTX_INIT}, + {"guiligatures", "gli", P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA|P_NODUP, #if defined(FEAT_GUI_GTK) (char_u *)&p_guiligatures, PV_NONE, @@ -1214,14 +1222,6 @@ static struct vimoption options[] = #endif SCTX_INIT}, - - {"guiheadroom", "ghr", P_NUM|P_VI_DEF, -#if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11) - (char_u *)&p_ghr, PV_NONE, NULL, NULL, -#else - (char_u *)NULL, PV_NONE, NULL, NULL, -#endif - {(char_u *)50L, (char_u *)0L} SCTX_INIT}, {"guioptions", "go", P_STRING|P_VI_DEF|P_RALL|P_FLAGLIST, #if defined(FEAT_GUI) (char_u *)&p_go, PV_NONE, did_set_guioptions, expand_set_guioptions, @@ -1997,24 +1997,6 @@ static struct vimoption options[] = {"pumwidth", "pw", P_NUM|P_VI_DEF, (char_u *)&p_pw, PV_NONE, NULL, NULL, {(char_u *)15L, (char_u *)15L} SCTX_INIT}, - {"pythonthreedll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, -#if defined(DYNAMIC_PYTHON3) - (char_u *)&p_py3dll, PV_NONE, NULL, NULL, - {(char_u *)DYNAMIC_PYTHON3_DLL, (char_u *)0L} -#else - (char_u *)NULL, PV_NONE, NULL, NULL, - {(char_u *)NULL, (char_u *)0L} -#endif - SCTX_INIT}, - {"pythonthreehome", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, -#if defined(FEAT_PYTHON3) - (char_u *)&p_py3home, PV_NONE, NULL, NULL, - {(char_u *)"", (char_u *)0L} -#else - (char_u *)NULL, PV_NONE, NULL, NULL, - {(char_u *)NULL, (char_u *)0L} -#endif - SCTX_INIT}, {"pythondll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, #if defined(DYNAMIC_PYTHON) (char_u *)&p_pydll, PV_NONE, NULL, NULL, @@ -2031,6 +2013,24 @@ static struct vimoption options[] = #else (char_u *)NULL, PV_NONE, NULL, NULL, {(char_u *)NULL, (char_u *)0L} +#endif + SCTX_INIT}, + {"pythonthreedll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, +#if defined(DYNAMIC_PYTHON3) + (char_u *)&p_py3dll, PV_NONE, NULL, NULL, + {(char_u *)DYNAMIC_PYTHON3_DLL, (char_u *)0L} +#else + (char_u *)NULL, PV_NONE, NULL, NULL, + {(char_u *)NULL, (char_u *)0L} +#endif + SCTX_INIT}, + {"pythonthreehome", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, +#if defined(FEAT_PYTHON3) + (char_u *)&p_py3home, PV_NONE, NULL, NULL, + {(char_u *)"", (char_u *)0L} +#else + (char_u *)NULL, PV_NONE, NULL, NULL, + {(char_u *)NULL, (char_u *)0L} #endif SCTX_INIT}, {"pyxversion", "pyx", P_NUM|P_VI_DEF|P_SECURE, @@ -2251,15 +2251,6 @@ static struct vimoption options[] = (char_u *)NULL, PV_NONE, NULL, NULL, #endif {(char_u *)0L, (char_u *)0L} SCTX_INIT}, - {"shellxquote", "sxq", P_STRING|P_VI_DEF|P_SECURE, - (char_u *)&p_sxq, PV_NONE, NULL, NULL, - { -#if defined(UNIX) && defined(USE_SYSTEM) - (char_u *)"\"", -#else - (char_u *)"", -#endif - (char_u *)0L} SCTX_INIT}, {"shellxescape", "sxe", P_STRING|P_VI_DEF|P_SECURE, (char_u *)&p_sxe, PV_NONE, NULL, NULL, { @@ -2267,6 +2258,15 @@ static struct vimoption options[] = (char_u *)"\"&|<>()@^", #else (char_u *)"", +#endif + (char_u *)0L} SCTX_INIT}, + {"shellxquote", "sxq", P_STRING|P_VI_DEF|P_SECURE, + (char_u *)&p_sxq, PV_NONE, NULL, NULL, + { +#if defined(UNIX) && defined(USE_SYSTEM) + (char_u *)"\"", +#else + (char_u *)"", #endif (char_u *)0L} SCTX_INIT}, {"shiftround", "sr", P_BOOL|P_VI_DEF|P_VIM, @@ -2850,16 +2850,16 @@ static struct vimoption options[] = {"window", "wi", P_NUM|P_VI_DEF, (char_u *)&p_window, PV_NONE, did_set_window, NULL, {(char_u *)0L, (char_u *)0L} SCTX_INIT}, - {"winheight", "wh", P_NUM|P_VI_DEF, - (char_u *)&p_wh, PV_NONE, - did_set_winheight_helpheight, NULL, - {(char_u *)1L, (char_u *)0L} SCTX_INIT}, {"winfixheight", "wfh", P_BOOL|P_VI_DEF|P_RSTAT, (char_u *)VAR_WIN, PV_WFH, NULL, NULL, {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, {"winfixwidth", "wfw", P_BOOL|P_VI_DEF|P_RSTAT, (char_u *)VAR_WIN, PV_WFW, NULL, NULL, {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, + {"winheight", "wh", P_NUM|P_VI_DEF, + (char_u *)&p_wh, PV_NONE, + did_set_winheight_helpheight, NULL, + {(char_u *)1L, (char_u *)0L} SCTX_INIT}, {"winminheight", "wmh", P_NUM|P_VI_DEF, (char_u *)&p_wmh, PV_NONE, did_set_winminheight, NULL, {(char_u *)1L, (char_u *)0L} SCTX_INIT}, diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim index f65654dc5c..8c336abf7d 100644 --- a/src/testdir/test_options.vim +++ b/src/testdir/test_options.vim @@ -964,6 +964,9 @@ func Test_set_one_column() let out_mult = execute('set all')->split("\n") let out_one = execute('set! all')->split("\n") call assert_true(len(out_mult) < len(out_one)) + call assert_equal(out_one[0], '--- Options ---') + let options = out_one[1:]->mapnew({_, line -> line[2:]}) + call assert_equal(sort(copy(options)), options) endfunc func Test_set_values() diff --git a/src/version.c b/src/version.c index dc39b5ca21..f623c7f6fc 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2154, /**/ 2153, /**/ From d33518522a84b5625e663c1b608e1c68f9f58003 Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Fri, 8 Dec 2023 21:41:23 +0100 Subject: [PATCH 004/120] patch 9.0.2155: Vim9: type not kept when assigning vars Problem: Vim9: type not kept when assigning vars Solution: When assigning a List or a Dict value to a variable of type 'any', keep the type closes: #13639 closes: #13646 Signed-off-by: Yegappan Lakshmanan Signed-off-by: Christian Brabandt --- src/testdir/test_vim9_assign.vim | 26 ++++++++++++++++++++++++++ src/version.c | 2 ++ src/vim9type.c | 4 ++++ 3 files changed, 32 insertions(+) diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim index 926773e292..a6a242dae7 100644 --- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -3323,4 +3323,30 @@ def Test_func_rettype_check() v9.CheckSourceFailure(lines, 'E1012: Type mismatch; expected object but got number', 1) enddef +" Test for assigning different types of value to a variable of type "any" +def Test_assign_to_any() + for [typestr, val] in [ + ["'bool'", 'true'], + ["'number'", '100'], + ["'float'", '1.1'], + ["'string'", '"abc"'], + ["'blob'", '0z10'], + ["'list'", '[1, 2, 3]'], + ["'dict'", '{a: 1}'], + ] + var lines =<< trim eval END + vim9script + var x: any = {val} + assert_equal({typestr}, typename(x)) + x = [{{a: 1}}, {{b: 2}}] + assert_equal('list>', typename(x)) + def Foo(xarg: any, s: string) + assert_equal(s, typename(xarg)) + enddef + Foo({val}, {typestr}) + END + v9.CheckSourceSuccess(lines) + endfor +enddef + " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker diff --git a/src/version.c b/src/version.c index f623c7f6fc..6b8a8b1c55 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2155, /**/ 2154, /**/ diff --git a/src/vim9type.c b/src/vim9type.c index 22720fb6e8..c28137fcc7 100644 --- a/src/vim9type.c +++ b/src/vim9type.c @@ -201,6 +201,10 @@ set_tv_type_recurse(type_T *type) void set_tv_type(typval_T *tv, type_T *type) { + if (type->tt_type == VAR_ANY) + // If the variable type is "any", then keep the value type. + // e.g. var x: any = [1, 2] or var y: any = {v: 1} + return; if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL) { dict_T *d = tv->vval.v_dict; From c23fc364766ced611b22ae9e787f1455ecf7e271 Mon Sep 17 00:00:00 2001 From: "K.Takata" Date: Sat, 9 Dec 2023 05:51:04 +0900 Subject: [PATCH 005/120] runtime(doc): Update eval.txt (#13645) expr5 is also expr6 itself. Signed-off-by: K.Takata Signed-off-by: Christian Brabandt --- runtime/doc/eval.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 8cb353ff35..efaf044381 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 9.0. Last change: 2023 Nov 20 +*eval.txt* For Vim version 9.0. Last change: 2023 Dec 7 VIM REFERENCE MANUAL by Bram Moolenaar @@ -879,7 +879,8 @@ Expression syntax summary, from least to most significant: expr5 isnot expr5 different |List|, |Dictionary| or |Blob| instance -|expr5| expr6 << expr6 bitwise left shift +|expr5| expr6 + expr6 << expr6 bitwise left shift expr6 >> expr6 bitwise right shift |expr6| expr7 From 61e984e212ed19774e088868c30c2d03c4e5a0cf Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 9 Dec 2023 15:18:33 +0800 Subject: [PATCH 006/120] runtime(doc): link cmdline completion to to |wildcards| and fix typos (#13636) The docs for cmdline completion doesn't mention that [abc] is considered a wildcard, and |wildcards| contains more detailed information, so just link to it. Also fix some typos in other help files. Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- runtime/doc/cmdline.txt | 7 +++---- runtime/doc/eval.txt | 4 ++-- runtime/doc/indent.txt | 4 ++-- runtime/doc/os_vms.txt | 4 ++-- runtime/doc/syntax.txt | 4 ++-- runtime/doc/term.txt | 4 ++-- runtime/doc/vim9.txt | 4 ++-- 7 files changed, 15 insertions(+), 16 deletions(-) diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt index cbcf0ad274..4295a78b0b 100644 --- a/runtime/doc/cmdline.txt +++ b/runtime/doc/cmdline.txt @@ -1,4 +1,4 @@ -*cmdline.txt* For Vim version 9.0. Last change: 2023 Nov 15 +*cmdline.txt* For Vim version 9.0. Last change: 2023 Dec 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -463,9 +463,8 @@ CTRL-T When 'incsearch' is set, entering a search pattern for "/" or keyboard T is above G. The 'wildchar' option defaults to (CTRL-E when in Vi compatible mode; in -a previous version was used). In the pattern standard wildcards '*' and -'?' are accepted when matching file names. '*' matches any string, '?' -matches exactly one character. +a previous version was used). In the pattern standard |wildcards| are +accepted when matching file names. When repeating 'wildchar' or CTRL-N you cycle through the matches, eventually ending up back to what was typed. If the first match is not what you wanted, diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index efaf044381..5d61035f55 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 9.0. Last change: 2023 Dec 7 +*eval.txt* For Vim version 9.0. Last change: 2023 Dec 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -4828,7 +4828,7 @@ have Vim execute random executables or may have forbidden to do so for specific filetypes by setting the "_exec" variable (|plugin_exec|). It returns |true| or |false| to indicate whether the plugin should run the given -exectuable. It takes the following arguments: +executable. It takes the following arguments: argument type ~ diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt index c65a616474..6cad213de7 100644 --- a/runtime/doc/indent.txt +++ b/runtime/doc/indent.txt @@ -1,4 +1,4 @@ -*indent.txt* For Vim version 9.0. Last change: 2023 Dec 05 +*indent.txt* For Vim version 9.0. Last change: 2023 Dec 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -718,7 +718,7 @@ subroutines, functions, modules, and program blocks is optional. Comments, labeled statements, and continuation lines are indented if the Fortran is in free source form, whereas they are not indented if the Fortran is in fixed source form because of the left margin requirements. Hence manual indent -corrections will be necessary for labelled statements and continuation lines +corrections will be necessary for labeled statements and continuation lines when fixed source form is being used. For further discussion of the method used for the detection of source format see |ft-fortran-syntax|. diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt index 3c5d51707f..175bc7acd0 100644 --- a/runtime/doc/os_vms.txt +++ b/runtime/doc/os_vms.txt @@ -1,4 +1,4 @@ -*os_vms.txt* For Vim version 9.0. Last change: 2022 Nov 25 +*os_vms.txt* For Vim version 9.0. Last change: 2023 Dec 09 VIM REFERENCE MANUAL @@ -767,7 +767,7 @@ GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/ Version 9.0 (2023 Nov 27) - Vim is ported to the X86_64 architecture - - IMPORTANT: because of the getline function name used in stucts like in ex_cmds.h + - IMPORTANT: because of the getline function name used in structs like in ex_cmds.h on X86_64 the CRTL_VER is kept under 80500000 level. The proper solution would be to rename the getline function to something else in the struct (and in all places it is used) - and avoiding to use POSIX functions in structs, but this change would diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index baf3693f20..74087620f8 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 9.0. Last change: 2023 Dec 05 +*syntax.txt* For Vim version 9.0. Last change: 2023 Dec 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1643,7 +1643,7 @@ script allows a maximum line length of 80 characters as do all compilers created in the last three decades. An even longer line length of 132 characters is allowed if you set the variable fortran_extended_line_length with a command such as > - :let fortran_line_length=1 + :let fortran_extended_line_length=1 placed prior to the :syntax on command. If you want additional highlighting of the CUDA Fortran extensions, you should diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt index 95d1cffa97..c57387eab1 100644 --- a/runtime/doc/term.txt +++ b/runtime/doc/term.txt @@ -1,4 +1,4 @@ -*term.txt* For Vim version 9.0. Last change: 2023 Nov 20 +*term.txt* For Vim version 9.0. Last change: 2023 Dec 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -313,7 +313,7 @@ convert all key sequences to their 8-bit variants. *xterm-terminfo-entries* For some time the terminfo entries were insufficient to describe all the -features tht Vim can use. The builtin xterm termcap entries did have these, +features that Vim can use. The builtin xterm termcap entries did have these, with the result that several terminals that were similar enough to xterm took advantage of these by prefixing "xterm-" to the terminal name in $TERM. diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt index d10eae9c06..0f4ea17ec7 100644 --- a/runtime/doc/vim9.txt +++ b/runtime/doc/vim9.txt @@ -1,4 +1,4 @@ -*vim9.txt* For Vim version 9.0. Last change: 2023 Oct 23 +*vim9.txt* For Vim version 9.0. Last change: 2023 Dec 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1684,7 +1684,7 @@ the type must match: > FuncVA = (v1: string, v: string2): number => 333 # Error! FuncVA = (v: list): number => 3 # Error! -If the destinataion funcref has no specified arguments, then there is no +If the destination funcref has no specified arguments, then there is no argument type checking: > var FuncUnknownArgs: func: number FuncUnknownArgs = (v): number => v # OK From f6869212c9e19ec8f2a4434732dd28f84f170163 Mon Sep 17 00:00:00 2001 From: dkearns Date: Mon, 11 Dec 2023 01:53:24 +1100 Subject: [PATCH 007/120] runtime(vim): Update syntax file (#13653) Improve variable highlighting in :let, :unlet, :const and :for commands. Match registers and local, global and terminal option variables. Signed-off-by: Doug Kearns Signed-off-by: Christian Brabandt --- .../testdir/dumps/vim_variables_00.dump | 20 +-- .../testdir/dumps/vim_variables_01.dump | 20 +++ .../testdir/dumps/vim_variables_02.dump | 20 +++ .../testdir/dumps/vim_variables_03.dump | 20 +++ .../testdir/dumps/vim_variables_04.dump | 20 +++ .../testdir/dumps/vim_variables_05.dump | 20 +++ .../testdir/dumps/vim_variables_06.dump | 20 +++ .../testdir/dumps/vim_variables_07.dump | 20 +++ .../testdir/dumps/vim_variables_99.dump | 36 ++--- .../syntax/testdir/input/vim_variables.vim | 127 ++++++++++++++++++ runtime/syntax/vim.vim | 24 +++- 11 files changed, 316 insertions(+), 31 deletions(-) create mode 100644 runtime/syntax/testdir/dumps/vim_variables_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_05.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_06.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_07.dump diff --git a/runtime/syntax/testdir/dumps/vim_variables_00.dump b/runtime/syntax/testdir/dumps/vim_variables_00.dump index ecf420d43d..9794113405 100644 --- a/runtime/syntax/testdir/dumps/vim_variables_00.dump +++ b/runtime/syntax/testdir/dumps/vim_variables_00.dump @@ -1,20 +1,20 @@ >"+0#0000e05#ffffff0| |V|i|m| |v|a|r|i|a|b|l|e| |h|i|g|h|l|i|g|h|t|i|n|g| +0#0000000&@47 @75 +|"+0#0000e05&| |:|l|e|t| +0#0000000&@68 +@75 |l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @60 @75 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1|[+0#0000000&|0+0#e000002&|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @57 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1|[+0#0000000&|1+0#e000002&|:+0#0000000&|2+0#e000002&|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @55 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1|[+0#0000000&|:|2+0#e000002&|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @56 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1|[+0#0000000&|1+0#e000002&|:+0#0000000&|]| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @56 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1|[+0#0000000&|:|]| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @57 +@75 |l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 |l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 |l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 |l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|/+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 |l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|%+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 |l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 -|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e|x|p|r| @58 -|~+0#4040ff13&| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|"+0#0000000&|i|n|p|u|t|/|v|i|m|_|v|a|r|i|a|b|l|e|s|.|v|i|m|"| |1@1|L|,| |1|5|8|B| @21|1|,|1| @10|A|l@1| +|"|i|n|p|u|t|/|v|i|m|_|v|a|r|i|a|b|l|e|s|.|v|i|m|"| |1|3|8|L|,| |1|5@1|4|B| @19|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/vim_variables_01.dump b/runtime/syntax/testdir/dumps/vim_variables_01.dump new file mode 100644 index 0000000000..f1ce29d3ff --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_01.dump @@ -0,0 +1,20 @@ +|l+0#af5f00255#ffffff0|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|/+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|%+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +>l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e|x|p|r| @58 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @58 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|@+0#e000e06&|f| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @61 +|l+0#af5f00255&|e|t| +0#0000000&|@+0#e000e06&|f| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @60 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @59 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|t|_|k|1| +0#0000000&|=+0#af5f00255&| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|E+0#e000002&|s|c|>|[|2|3|4|;|"| +0#0000000&@49 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|f|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @58 +@57|1|9|,|1| @9|1|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_variables_02.dump b/runtime/syntax/testdir/dumps/vim_variables_02.dump new file mode 100644 index 0000000000..8f31c4709a --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_02.dump @@ -0,0 +1,20 @@ +|l+0#af5f00255#ffffff0|e|t| +0#0000000&|&+0#00e0e07&|f|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @58 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e|x|p|r| @58 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @58 +@75 +>l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @57 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @56 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e|x|p|r| @56 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @56 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|g|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @57 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|g|:|f|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @56 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|g|:|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e|x|p|r| @56 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|g|:|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @56 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @53 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| @65 +@57|3|7|,|1| @9|2|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_variables_03.dump b/runtime/syntax/testdir/dumps/vim_variables_03.dump new file mode 100644 index 0000000000..3260c374b1 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_03.dump @@ -0,0 +1,20 @@ +|l+0#af5f00255#ffffff0|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| @65 +| +0#e000e06&@5|\| +0#0000000&|b+0#00e0e07&|a|r|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @55 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @52 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |++0#af5f00255&|=| +0#0000000&|e|x|p|r| @52 +>l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @52 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|;+0#0000000&| |b+0#00e0e07&|a|z|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @48 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| @65 +| +0#e000e06&@5|\| +0#0000000&|b+0#00e0e07&|a|r|;+0#0000000&| @62 +| +0#e000e06&@5|\| +0#0000000&|b+0#00e0e07&|a|z|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @55 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|;+0#0000000&| |b+0#00e0e07&|a|z|]+0#0000000&| |.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @47 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|;+0#0000000&| |b+0#00e0e07&|a|z|]+0#0000000&| |++0#af5f00255&|=| +0#0000000&|e|x|p|r| @47 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|;+0#0000000&| |b+0#00e0e07&|a|z|]+0#0000000&| |-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @47 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |E|N|D| +0#0000000&@59 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +@57|5@1|,|1| @9|4|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_variables_04.dump b/runtime/syntax/testdir/dumps/vim_variables_04.dump new file mode 100644 index 0000000000..97d240ca8f --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_04.dump @@ -0,0 +1,20 @@ +|E+0#e000e06#ffffff0|N|D| +0#0000000&@71 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |E|N|D| +0#0000000&@54 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |E|N|D| +0#0000000&@54 +>.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |e|v|a|l| |E|N|D| +0#0000000&@49 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |t|r|i|m| |E|N|D| +0#0000000&@49 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@67 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b|a|r| @63 +@75 +|"+0#0000e05&| |:|u|n|l|e|t| +0#0000000&@66 +@75 +@57|7|3|,|1| @9|5|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_variables_05.dump b/runtime/syntax/testdir/dumps/vim_variables_05.dump new file mode 100644 index 0000000000..7a932601b9 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_05.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@65 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@61 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@65 +| +0#e000e06&@5|\| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@63 +> @74 +|u+0#af5f00255&|n|l|e|t|!| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@64 +|u+0#af5f00255&|n|l|e|t|!| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@60 +|u+0#af5f00255&|n|l|e|t|!| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@64 +| +0#e000e06&@5|\| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@63 +@75 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&@64 +|u+0#af5f00255&|n|l|e|t|!| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&@63 +@75 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|l+0#00e0e07&|i|s|t|[+0#0000000&|3+0#e000002&|]+0#0000000&| @61 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|l+0#00e0e07&|i|s|t|[+0#0000000&|3+0#e000002&|:+0#0000000&|]| @60 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|d+0#00e0e07&|i|c|t|[+0#0000000&|'+0#e000002&|t|w|o|'|]+0#0000000&| @57 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|d+0#00e0e07&|i|c|t|.+0#0000000&|t+0#00e0e07&|w|o| +0#0000000&@60 +@75 +@57|9|1|,|0|-|1| @7|7|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_variables_06.dump b/runtime/syntax/testdir/dumps/vim_variables_06.dump new file mode 100644 index 0000000000..89b3d41fda --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_06.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|"+0#0000e05&| |:|c|o|n|s|t| +0#0000000&@66 +@75 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @58 +@75 +>c+0#af5f00255&|o|n|s|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @51 +@75 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|;+0#0000000&| |b+0#00e0e07&|a|z|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @46 +@75 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |E|N|D| +0#0000000&@57 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |E|N|D| +0#0000000&@52 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |E|N|D| +0#0000000&@52 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |e|v|a|l| |E|N|D| +0#0000000&@47 +@57|1|0|9|,|1| @8|8|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_variables_07.dump b/runtime/syntax/testdir/dumps/vim_variables_07.dump new file mode 100644 index 0000000000..8be0fa8020 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_07.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |e|v|a|l| |E|N|D| +0#0000000&@47 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |t|r|i|m| |E|N|D| +0#0000000&@47 +|.+0#e000002&@2| +0#0000000&@71 +>E+0#e000e06&|N|D| +0#0000000&@71 +@75 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@65 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b|a|r| @61 +@75 +|"+0#0000e05&| |:|f|o|r| +0#0000000&@68 +@75 +|f|o|r| |f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @59 +|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68 +@75 +|f|o|r| |[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @52 +|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68 +|~+0#4040ff13&| @73 +|~| @73 +| +0#0000000&@56|1|2|7|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/vim_variables_99.dump b/runtime/syntax/testdir/dumps/vim_variables_99.dump index 230c121d10..6f3e1c4443 100644 --- a/runtime/syntax/testdir/dumps/vim_variables_99.dump +++ b/runtime/syntax/testdir/dumps/vim_variables_99.dump @@ -1,20 +1,20 @@ -|"+0#0000e05#ffffff0| |V|i|m| |v|a|r|i|a|b|l|e| |h|i|g|h|l|i|g|h|t|i|n|g| +0#0000000&@47 +|.+0#e000002#ffffff0@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |e|v|a|l| |E|N|D| +0#0000000&@47 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |t|r|i|m| |E|N|D| +0#0000000&@47 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 @75 -|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @60 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@65 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b|a|r| @61 @75 -|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 -|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 -|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 -|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|/+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 -|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|%+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 -|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 ->l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e|x|p|r| @58 -|~+0#4040ff13&| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|~| @73 -|"+0#0000000&|i|n|p|u|t|/|v|i|m|_|v|a|r|i|a|b|l|e|s|.|v|i|m|"| |1@1|L|,| |1|5|8|B| @21|1@1|,|1| @9|A|l@1| +|"+0#0000e05&| |:|f|o|r| +0#0000000&@68 +@75 +|f|o|r| |f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @59 +|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68 +@75 +|f|o|r| |[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @52 +>e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68 +@57|1|3|8|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/input/vim_variables.vim b/runtime/syntax/testdir/input/vim_variables.vim index 93ad6d911f..6f77da99fb 100644 --- a/runtime/syntax/testdir/input/vim_variables.vim +++ b/runtime/syntax/testdir/input/vim_variables.vim @@ -1,7 +1,16 @@ " Vim variable highlighting +" :let + let foo = expr +let foo[0] = expr + +let foo[1:2] = expr +let foo[:2] = expr +let foo[1:] = expr +let foo[:] = expr + let foo += expr let foo -= expr let foo *= expr @@ -9,3 +18,121 @@ let foo /= expr let foo %= expr let foo .= expr let foo ..= expr + +let $FOO = expr +let $FOO .= expr + +let @f = expr +let @f .= expr + +let &foo = expr + +let &t_k1 = "\[234;" + +let &foo .= expr + +let &foo += expr +let &foo -= expr + +let &l:foo = expr + +let &l:foo .= expr +let &l:foo += expr +let &l:foo -= expr + +let &g:foo = expr + +let &g:foo .= expr +let &g:foo += expr +let &g:foo -= expr + +let [foo, bar] = expr +let [foo, + \ bar] = expr + +let [foo, bar] .= expr +let [foo, bar] += expr +let [foo, bar] -= expr + +let [foo, bar; baz] = expr +let [foo, + \ bar; + \ baz] = expr + +let [foo, bar; baz] .= expr +let [foo, bar; baz] += expr +let [foo, bar; baz] -= expr + +let foo =<< END +... +END +let foo =<< trim END +... +END +let foo =<< eval END +... +END +let foo =<< trim eval END +... +END +let foo =<< eval trim END +... +END + +let foo +let foo bar + +" :unlet + +unlet foo +unlet foo bar +unlet foo + \ bar + +unlet! foo +unlet! foo bar +unlet! foo + \ bar + +unlet $FOO +unlet! $FOO + +unlet list[3] +unlet list[3:] +unlet dict['two'] +unlet dict.two + +" :const + +const foo = expr + +const [foo, bar] = expr + +const [foo, bar; baz] = expr + +const foo =<< END +... +END +const foo =<< trim END +... +END +const foo =<< eval END +... +END +const foo =<< trim eval END +... +END +const foo =<< eval trim END +... +END + +const foo +const foo bar + +" :for + +for foo in expr +endfor + +for [foo, bar] in expr +endfor diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 5eb3154963..5697ce3f6d 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -4,7 +4,8 @@ " Last Change: May 09, 2023 " 2023 Nov 12 by Vim Project (:let-heredoc improvements) " 2023 Nov 20 by Vim Project (:loadkeymap improvements) -" 2023 Dec 06 by Vim Project (add missing :let{op}= assignment operators) +" 2023 Dec 06 by Vim Project (add missing assignment operators) +" 2023 Dec 10 by Vim Project (improve variable matching) " Version: 9.0-25 " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_VIM " Automatically generated keyword lists: {{{1 @@ -187,7 +188,9 @@ syn match vimCmdSep "[:|]\+" skipwhite nextgroup=vimAddress,vimAutoCmd,vimEcho,v syn match vimIsCommand "\<\h\w*\>" contains=vimCommand syn match vimVar contained "\<\h[a-zA-Z0-9#_]*\>" syn match vimVar "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>" -syn match vimVar "\s\zs&\a\+\>" +syn match vimVar "\s\zs&\%([lg]:\)\=\a\+\>" +syn match vimVar "\s\zs&t_\S[a-zA-Z0-9]\>" +syn match vimVar "\s\zs&t_k;" syn match vimFBVar contained "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>" syn keyword vimCommand contained in @@ -395,6 +398,7 @@ syn match vimRegister '\ Date: Mon, 11 Dec 2023 01:57:41 +1100 Subject: [PATCH 008/120] runtime(json): Add json formating plugin (Issue #11426) (#11506) related: #11426 Signed-off-by: Maxim Kim Signed-off-by: Christian Brabandt --- .github/CODEOWNERS | 1 + runtime/autoload/dist/json.vim | 182 +++++++++++++++++++++++++++++++++ runtime/doc/filetype.txt | 12 +++ 3 files changed, 195 insertions(+) create mode 100644 runtime/autoload/dist/json.vim diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6bdc00ecb9..af32d6a3ab 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -23,6 +23,7 @@ runtime/autoload/tar.vim @cecamp runtime/autoload/vimball.vim @cecamp runtime/autoload/xmlformat.vim @chrisbra runtime/autoload/zip.vim @cecamp +runtime/autoload/dist/json.vim @habamax runtime/colors/blue.vim @habamax @romainl @neutaaaaan runtime/colors/darkblue.vim @habamax @romainl @neutaaaaan runtime/colors/default.vim @habamax @romainl @neutaaaaan diff --git a/runtime/autoload/dist/json.vim b/runtime/autoload/dist/json.vim new file mode 100644 index 0000000000..dad95a54ad --- /dev/null +++ b/runtime/autoload/dist/json.vim @@ -0,0 +1,182 @@ +vim9script + +# Maintainer: Maxim Kim +# Last update: 2023-12-10 +# +# Set of functions to format/beautify JSON data structures. +# +# Could be used to reformat a minified json in a buffer (put it into ~/.vim/ftplugin/json.vim): +# import autoload 'dist/json.vim' +# setl formatexpr=json.FormatExpr() +# +# Or to get a formatted string out of vim's dict/list/string: +# vim9script +# import autoload 'dist/json.vim' +# echo json.Format({ +# "widget": { "debug": "on", "window": { "title": "Sample \"Konfabulator\" Widget", +# "name": "main_window", "width": 500, "height": 500 +# }, +# "image": { "src": "Images/Sun.png", "name": "sun1", "hOffset": 250, +# "vOffset": 250, "alignment": "center" }, +# "text": { "data": "Click Here", "size": 36, "style": "bold", "name": "text1", +# "hOffset": 250, "vOffset": 100, "alignment": "center", +# "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;" } } +# }) +# +# Should output: +# { +# "widget": { +# "debug": "on", +# "window": { +# "title": "Sample \"Konfabulator\" Widget", +# "name": "main_window", +# "width": 500, +# "height": 500 +# }, +# "image": { +# "src": "Images/Sun.png", +# "name": "sun1", +# "hOffset": 250, +# "vOffset": 250, +# "alignment": "center" +# }, +# "text": { +# "data": "Click Here", +# "size": 36, +# "style": "bold", +# "name": "text1", +# "hOffset": 250, +# "vOffset": 100, +# "alignment": "center", +# "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;" +# } +# } +# } +# +# NOTE: order of `key: value` pairs is not kept. +# +# You can also use a JSON string instead of vim's dict/list to maintain order: +# echo json.Format('{"hello": 1, "world": 2}') +# { +# "hello": 1, +# "world": 2 +# } + + +# To be able to reformat with `gq` add following to `~/.vim/ftplugin/json.vim`: +# import autoload 'dist/json.vim' +# setl formatexpr=json.FormatExpr() +export def FormatExpr(): number + FormatRange(v:lnum, v:lnum + v:count - 1) + return 0 +enddef + + +# import autoload 'dist/json.vim' +# command -range=% JSONFormat json.FormatRange(, ) +export def FormatRange(line1: number, line2: number) + var indent_base = matchstr(getline(line1), '^\s*') + var indent = &expandtab ? repeat(' ', &shiftwidth) : "\t" + + var [l1, l2] = line1 > line2 ? [line2, line1] : [line1, line2] + + var json_src = getline(l1, l2)->join() + var json_fmt = Format(json_src, {use_tabs: !&et, indent: &sw, indent_base: indent_base})->split("\n") + + exe $":{l1},{l2}d" + + if line('$') == 1 && getline(1) == '' + setline(l1, json_fmt[0]) + append(l1, json_fmt[1 : ]) + else + append(l1 - 1, json_fmt) + endif +enddef + + +# Format JSON string or dict/list as JSON +# import autoload 'dist/json.vim' +# echo json.FormatStr('{"hello": "world"}', {use_tabs: false, indent: 2, indent_base: 0}) + +# { +# "hello": "world" +# } + +# echo json.FormatStr({'hello': 'world'}, {use_tabs: false, indent: 2, indent_base: 0}) +# { +# "hello": "world" +# } +# +# Note, when `obj` is dict, order of the `key: value` pairs might be different: +# echo json.FormatStr({'hello': 1, 'world': 2}) +# { +# "world": 2, +# "hello": 1 +# } +export def Format(obj: any, params: dict = {}): string + var obj_str = '' + if type(obj) == v:t_string + obj_str = obj + else + obj_str = json_encode(obj) + endif + + var indent_lvl = 0 + var indent_base = get(params, "indent_base", "") + var indent = get(params, "use_tabs", false) ? "\t" : repeat(' ', get(params, "indent", 2)) + var json_line = indent_base + var json = "" + var state = "" + for char in obj_str + if state == "" + if char =~ '[{\[]' + json_line ..= char + json ..= json_line .. "\n" + indent_lvl += 1 + json_line = indent_base .. repeat(indent, indent_lvl) + elseif char =~ '[}\]]' + if json_line !~ '^\s*$' + json ..= json_line .. "\n" + indent_lvl -= 1 + if indent_lvl < 0 + json_line = strpart(indent_base, -indent_lvl * len(indent)) + else + json_line = indent_base .. repeat(indent, indent_lvl) + endif + elseif json =~ '[{\[]\n$' + json = json[ : -2] + json_line = substitute(json_line, '^\s*', '', '') + indent_lvl -= 1 + endif + json_line ..= char + elseif char == ':' + json_line ..= char .. ' ' + elseif char == '"' + json_line ..= char + state = 'QUOTE' + elseif char == ',' + json_line ..= char + json ..= json_line .. "\n" + json_line = indent_base .. repeat(indent, indent_lvl) + elseif char !~ '\s' + json_line ..= char + endif + elseif state == "QUOTE" + json_line ..= char + if char == '\' + state = "ESCAPE" + elseif char == '"' + state = "" + endif + elseif state == "ESCAPE" + state = "QUOTE" + json_line ..= char + else + json_line ..= char + endif + endfor + if json_line !~ '^\s*$' + json ..= json_line .. "\n" + endif + return json +enddef diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt index e35ffb83b5..1960865424 100644 --- a/runtime/doc/filetype.txt +++ b/runtime/doc/filetype.txt @@ -610,6 +610,18 @@ The mapping can be disabled with: > let g:no_gprof_maps = 1 +JSON-FORMAT *ft-json-plugin* + +JSON filetype can be extended to use 'formatexpr' and "json.FormatExpr()" +function for json formatting (using |gq|). + +Add following lines to $HOME/.vim/ftplugin/json.vim: > + + vim9script + import autoload 'dist/json.vim' + setl formatexpr=json.FormatExpr() + + MAIL *ft-mail-plugin* Options: From 34b9a15c378f7279bbbe2a80135ae79913c032ae Mon Sep 17 00:00:00 2001 From: Maxim Kim Date: Tue, 12 Dec 2023 03:09:38 +1100 Subject: [PATCH 009/120] runtime(json): fix examples in comments for JSON formatting (#13660) Signed-off-by: Maxim Kim Signed-off-by: Christian Brabandt --- runtime/autoload/dist/json.vim | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime/autoload/dist/json.vim b/runtime/autoload/dist/json.vim index dad95a54ad..9faa88ace3 100644 --- a/runtime/autoload/dist/json.vim +++ b/runtime/autoload/dist/json.vim @@ -96,19 +96,19 @@ enddef # Format JSON string or dict/list as JSON # import autoload 'dist/json.vim' -# echo json.FormatStr('{"hello": "world"}', {use_tabs: false, indent: 2, indent_base: 0}) +# echo json.Format('{"hello": "world"}', {use_tabs: false, indent: 2, indent_base: 0}) # { # "hello": "world" # } -# echo json.FormatStr({'hello': 'world'}, {use_tabs: false, indent: 2, indent_base: 0}) +# echo json.Format({'hello': 'world'}, {use_tabs: false, indent: 2, indent_base: 0}) # { # "hello": "world" # } # # Note, when `obj` is dict, order of the `key: value` pairs might be different: -# echo json.FormatStr({'hello': 1, 'world': 2}) +# echo json.Format({'hello': 1, 'world': 2}) # { # "world": 2, # "hello": 1 From b52e7ac7c61cd88d04ee6b7b1808c361dd4a7640 Mon Sep 17 00:00:00 2001 From: KSR-Yasuda <31273423+KSR-Yasuda@users.noreply.github.com> Date: Tue, 12 Dec 2023 01:11:43 +0900 Subject: [PATCH 010/120] runtime(netrw): Fix `w:netrw_bannercnt` ref error with `netrw_fastbrowse=2` (#13659) * NetRW: Fix `w:netrw_bannercnt` ref error with `netrw_fastbrowse=2` * NetRW: Fix wrong `w:netrw_bannercnt` setting closes: #13640 Signed-off-by: yasuda Signed-off-by: Christian Brabandt --- runtime/autoload/netrw.vim | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim index 6536317225..db66f5d851 100644 --- a/runtime/autoload/netrw.vim +++ b/runtime/autoload/netrw.vim @@ -10380,7 +10380,7 @@ fun! s:NetrwRemoteListing() let w:netrw_bannercnt= s:bannercnt endif if !exists("w:netrw_bannercnt") && exists("b:bannercnt") - let w:netrw_bannercnt= s:bannercnt + let w:netrw_bannercnt= b:bannercnt endif call s:RemotePathAnalysis(b:netrw_curdir) @@ -11274,6 +11274,10 @@ endfun fun! s:NetrwLocalRename(path) range " call Dfunc("NetrwLocalRename(path<".a:path.">)") + if !exists("w:netrw_bannercnt") + let w:netrw_bannercnt= b:netrw_bannercnt + endif + " preparation for removing multiple files/directories let ykeep = @@ let ctr = a:firstline @@ -11375,6 +11379,10 @@ fun! s:NetrwLocalRm(path) range " call Dfunc("s:NetrwLocalRm(path<".a:path.">)") " call Decho("firstline=".a:firstline." lastline=".a:lastline,'~'.expand("")) + if !exists("w:netrw_bannercnt") + let w:netrw_bannercnt= b:netrw_bannercnt + endif + " preparation for removing multiple files/directories let ykeep = @@ let ret = 0 From 5a68cdf14915f20a1a6889cd0a76d29ecd374f24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Yngve=20Lerv=C3=A5g?= Date: Mon, 11 Dec 2023 17:17:20 +0100 Subject: [PATCH 011/120] runtime(sbt): do not set b:did_ftplugin before sourcing scala ftplugin(#13657) The `b:did_ftplugin` guard was set and prevented us from actually sourcing `ftplugin/scala.vim`. Since the latter script also sets the guard properly, we can simply remove the guard here. Signed-off-by: =?UTF-8?q?Karl=20Yngve=20Lerv=C3=A5g?= Signed-off-by: Christian Brabandt --- runtime/ftplugin/sbt.vim | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runtime/ftplugin/sbt.vim b/runtime/ftplugin/sbt.vim index 309d30e503..bf2c7a657a 100644 --- a/runtime/ftplugin/sbt.vim +++ b/runtime/ftplugin/sbt.vim @@ -9,7 +9,6 @@ if exists('b:did_ftplugin') || &cp finish endif -let b:did_ftplugin = 1 - runtime! ftplugin/scala.vim +let b:did_ftplugin = 1 From 1ec115c92c16f1557719d9da0a09e88989f511f3 Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Mon, 11 Dec 2023 17:32:09 +0100 Subject: [PATCH 012/120] runtime(doc): re-generate helptags Signed-off-by: Christian Brabandt --- runtime/doc/tags | 1 + 1 file changed, 1 insertion(+) diff --git a/runtime/doc/tags b/runtime/doc/tags index 9a793e6151..9c641f52d3 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -7217,6 +7217,7 @@ ft-ia64-syntax syntax.txt /*ft-ia64-syntax* ft-inform-syntax syntax.txt /*ft-inform-syntax* ft-java-syntax syntax.txt /*ft-java-syntax* ft-javascript-omni insert.txt /*ft-javascript-omni* +ft-json-plugin filetype.txt /*ft-json-plugin* ft-json-syntax syntax.txt /*ft-json-syntax* ft-ksh-syntax syntax.txt /*ft-ksh-syntax* ft-lace-syntax syntax.txt /*ft-lace-syntax* From fa920da283f6651083b40d0aa28a9eacd5116593 Mon Sep 17 00:00:00 2001 From: "shane.xb.qian" Date: Mon, 11 Dec 2023 17:33:03 +0100 Subject: [PATCH 013/120] runtime(filetype): ft detection maybe wrong if 'fic' set for *.[CH] So only set the filetype to cpp for *.C and *.H files, if 'fileignorecase' option is not set. Signed-off-by: shane.xb.qian Signed-off-by: Christian Brabandt --- runtime/filetype.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/filetype.vim b/runtime/filetype.vim index e7343bd6ff..4043eb428e 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: The Vim Project -" Last Change: 2023 Aug 10 +" Last Change: 2023 Dec 06 " Former Maintainer: Bram Moolenaar " Listen very carefully, I will say this only once @@ -348,7 +348,7 @@ au BufNewFile,BufRead *.cypher setf cypher " C++ au BufNewFile,BufRead *.cxx,*.c++,*.hh,*.hxx,*.hpp,*.ipp,*.moc,*.tcc,*.inl setf cpp if has("fname_case") - au BufNewFile,BufRead *.C,*.H setf cpp + au BufNewFile,BufRead *.C,*.H if !&fileignorecase | setf cpp | endif endif " C++ 20 modules (clang) From 9ed53752df1020a6881ac68d1bde2852c9a680aa Mon Sep 17 00:00:00 2001 From: Ernie Rael Date: Mon, 11 Dec 2023 17:40:46 +0100 Subject: [PATCH 014/120] patch 9.0.2156: Vim9: can use typealias in assignment Problem: Vim9: can use typealias in an assignment Solution: Generate errors when class/typealias involved in the rhs of an assignment closes: #13637 Signed-off-by: Ernie Rael Signed-off-by: Christian Brabandt Generate errors when class/typealias involved in assignment. --- src/errors.h | 8 +++- src/evalvars.c | 5 +-- src/proto/vim9type.pro | 3 ++ src/testdir/test_vim9_assign.vim | 20 +++++++-- src/testdir/test_vim9_class.vim | 70 +++++++++++++++++++++++++---- src/testdir/test_vim9_typealias.vim | 2 +- src/version.c | 2 + src/vim9compile.c | 2 + src/vim9execute.c | 4 +- src/vim9type.c | 62 +++++++++++++++++++++++++ 10 files changed, 156 insertions(+), 22 deletions(-) diff --git a/src/errors.h b/src/errors.h index c8eaac7b89..2788800c00 100644 --- a/src/errors.h +++ b/src/errors.h @@ -3557,10 +3557,16 @@ EXTERN char e_using_typealias_as_float[] INIT(= N_("E1401: Using type alias \"%s\" as a Float")); EXTERN char e_using_typealias_as_string[] INIT(= N_("E1402: Using type alias \"%s\" as a String")); -EXTERN char e_using_typealias_as_value[] +EXTERN char e_using_typealias_as_value_str[] INIT(= N_("E1403: Type alias \"%s\" cannot be used as a value")); EXTERN char e_abstract_cannot_be_used_in_interface[] INIT(= N_("E1404: Abstract cannot be used in an interface")); +EXTERN char e_using_class_as_value_str[] + INIT(= N_("E1403: Class \"%s\" cannot be used as a value")); +EXTERN char e_using_class_as_var_val[] + INIT(= N_("E1405: Cannot use a Class as a variable or value")); +EXTERN char e_using_typealias_as_var_val[] + INIT(= N_("E1406: Cannot use a Typealias as a variable or value")); #endif // E1405 - E1499 unused (reserved for Vim9 class support) EXTERN char e_cannot_mix_positional_and_non_positional_str[] diff --git a/src/evalvars.c b/src/evalvars.c index fd3c937b51..343f6367dc 100644 --- a/src/evalvars.c +++ b/src/evalvars.c @@ -1836,11 +1836,8 @@ ex_let_one( return NULL; } - if (tv->v_type == VAR_TYPEALIAS) - { - semsg(_(e_using_typealias_as_value), tv->vval.v_typealias->ta_name); + if (check_typval_is_value(tv) == FAIL) return NULL; - } if (*arg == '$') { diff --git a/src/proto/vim9type.pro b/src/proto/vim9type.pro index d5e4d4816a..85cc96fb23 100644 --- a/src/proto/vim9type.pro +++ b/src/proto/vim9type.pro @@ -35,4 +35,7 @@ type_T *get_member_type_from_stack(int count, int skip, cctx_T *cctx); char *vartype_name(vartype_T type); char *type_name(type_T *type, char **tofree); void f_typename(typval_T *argvars, typval_T *rettv); +int check_vartype_is_value(vartype_T typ); +int check_typval_is_value(typval_T *tv); +int check_type_is_value(type_T *type); /* vim: set ft=c : */ diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim index a6a242dae7..8be0769b72 100644 --- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -3057,6 +3057,18 @@ def Test_dict_item_assign() v9.CheckSourceSuccess(lines) enddef +def Test_class_assign() + var lines =<< trim END + vim9script + class C + endclass + class D + endclass + assert_fails('C = D', 'E1403: Class "D" cannot be used as a value') + END + v9.CheckSourceSuccess(lines) +enddef + " Test for using various types (dict, list, blob, funcref, class) as variable " in assignments with a different type def Test_type_check() @@ -3093,7 +3105,7 @@ def Test_type_check() assert_fails('N = l', 'E1012: Type mismatch; expected number but got list') assert_fails('N = b', 'E1012: Type mismatch; expected number but got blob') assert_fails('N = Fn', 'E1012: Type mismatch; expected number but got func([unknown]): number') - assert_fails('N = A', 'E1012: Type mismatch; expected number but got class') + assert_fails('N = A', 'E1403: Class "A" cannot be used as a value') assert_fails('N = o', 'E1012: Type mismatch; expected number but got object') # Use a compound operator with different RHS types @@ -3101,7 +3113,7 @@ def Test_type_check() assert_fails('N += l', 'E734: Wrong variable type for +=') assert_fails('N += b', 'E974: Using a Blob as a Number') assert_fails('N += Fn', 'E734: Wrong variable type for +=') - assert_fails('N += A', 'E1319: Using a Class as a Number') + assert_fails('N += A', 'E1403: Class "A" cannot be used as a value') assert_fails('N += o', 'E1320: Using an Object as a Number') # Initialize multiple variables using [] @@ -3109,7 +3121,7 @@ def Test_type_check() assert_fails('var [X2: number, Y: number] = [1, l]', 'E1012: Type mismatch; expected number but got list') assert_fails('var [X3: number, Y: number] = [1, b]', 'E1012: Type mismatch; expected number but got blob') assert_fails('var [X4: number, Y: number] = [1, Fn]', 'E1012: Type mismatch; expected number but got func([unknown]): number') - assert_fails('var [X7: number, Y: number] = [1, A]', 'E1012: Type mismatch; expected number but got class') + assert_fails('var [X7: number, Y: number] = [1, A]', 'E1403: Class "A" cannot be used as a value') assert_fails('var [X8: number, Y: number] = [1, o]', 'E1012: Type mismatch; expected number but got object') # String concatenation with various LHS types @@ -3117,7 +3129,7 @@ def Test_type_check() assert_fails('S ..= l', 'E734: Wrong variable type for .=') assert_fails('S ..= b', 'E976: Using a Blob as a String') assert_fails('S ..= Fn', 'E734: Wrong variable type for .=') - assert_fails('S ..= A', 'E1323: Using a Class as a String') + assert_fails('S ..= A', 'E1403: Class "A" cannot be used as a value') assert_fails('S ..= o', 'E1324: Using an Object as a String') # String concatenation with various RHS types diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index 96d3ae58ab..84ea1cb357 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -3093,25 +3093,77 @@ def Test_closure_in_class() v9.CheckSourceSuccess(lines) enddef -def Test_call_constructor_from_legacy() +def Test_construct_object_from_legacy() + # Cannot directly invoke constructor from legacy var lines =<< trim END vim9script - var newCalled = 'false' + var newCalled = false class A - def new() - newCalled = 'true' + def new(arg: string) + newCalled = true enddef endclass - export def F(options = {}): any - return A + export def CreateA(...args: list): A + return call(A.new, args) enddef - g:p = F() - legacy call p.new() - assert_equal('true', newCalled) + g:P = CreateA + legacy call g:P('some_arg') + assert_equal(true, newCalled) + unlet g:P + END + v9.CheckSourceSuccess(lines) + + lines =<< trim END + vim9script + + var newCalled = false + + class A + static def CreateA(options = {}): any + return A.new() + enddef + def new() + newCalled = true + enddef + endclass + + g:P = A.CreateA + legacy call g:P() + assert_equal(true, newCalled) + unlet g:P + END + v9.CheckSourceSuccess(lines) + + # This also tests invoking "new()" with "call" + lines =<< trim END + vim9script + + var createdObject: any + + class A + this.val1: number + this.val2: number + static def CreateA(...args: list): any + createdObject = call(A.new, args) + return createdObject + enddef + endclass + + g:P = A.CreateA + legacy call g:P(3, 5) + assert_equal(3, createdObject.val1) + assert_equal(5, createdObject.val2) + legacy call g:P() + assert_equal(0, createdObject.val1) + assert_equal(0, createdObject.val2) + legacy call g:P(7) + assert_equal(7, createdObject.val1) + assert_equal(0, createdObject.val2) + unlet g:P END v9.CheckSourceSuccess(lines) enddef diff --git a/src/testdir/test_vim9_typealias.vim b/src/testdir/test_vim9_typealias.vim index bb3efb867c..34c9e0ea72 100644 --- a/src/testdir/test_vim9_typealias.vim +++ b/src/testdir/test_vim9_typealias.vim @@ -212,7 +212,7 @@ def Test_typealias() enddef Foo() END - v9.CheckSourceFailure(lines, 'E1403: Type alias "A" cannot be used as a value', 1) + v9.CheckSourceFailure(lines, 'E1406: Cannot use a Typealias as a variable or value', 1) # Using type alias in an expression (script level) lines =<< trim END diff --git a/src/version.c b/src/version.c index 6b8a8b1c55..f7d6cbcb6b 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2156, /**/ 2155, /**/ diff --git a/src/vim9compile.c b/src/vim9compile.c index 5bd8907bad..b2d8fa093e 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -2797,6 +2797,8 @@ compile_assignment( rhs_type = cctx->ctx_type_stack.ga_len == 0 ? &t_void : get_type_on_stack(cctx, 0); + if (check_type_is_value(rhs_type) == FAIL) + goto theend; if (lhs.lhs_lvar != NULL && (is_decl || !lhs.lhs_has_type)) { if ((rhs_type->tt_type == VAR_FUNC diff --git a/src/vim9execute.c b/src/vim9execute.c index 44cdb09e30..d357fc42c5 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -3813,10 +3813,8 @@ exec_instructions(ectx_T *ectx) case ISN_STORE: --ectx->ec_stack.ga_len; tv = STACK_TV_VAR(iptr->isn_arg.number); - if (STACK_TV_BOT(0)->v_type == VAR_TYPEALIAS) + if (check_typval_is_value(STACK_TV_BOT(0)) == FAIL) { - semsg(_(e_using_typealias_as_value), - STACK_TV_BOT(0)->vval.v_typealias->ta_name); clear_tv(STACK_TV_BOT(0)); goto on_error; } diff --git a/src/vim9type.c b/src/vim9type.c index c28137fcc7..a142a7b9c3 100644 --- a/src/vim9type.c +++ b/src/vim9type.c @@ -1846,4 +1846,66 @@ f_typename(typval_T *argvars, typval_T *rettv) clear_type_list(&type_list); } +/* + * Check if the typval_T is a value type; report an error if it is not. + * Note: a type, user defined or typealias, is not a value type. + * + * Return OK if it's a value type, else FAIL + */ + int +check_typval_is_value(typval_T *tv) +{ + if (tv->v_type == VAR_CLASS) + { + semsg(_(e_using_class_as_value_str), tv->vval.v_class->class_name); + return FAIL; + } + else if (tv->v_type == VAR_TYPEALIAS) + { + semsg(_(e_using_typealias_as_value_str), tv->vval.v_typealias->ta_name); + return FAIL; + } + return OK; +} + +/* + * Same as above, except check type_T. + */ + int +check_type_is_value(type_T *type) +{ + if (type->tt_type == VAR_CLASS) + { + semsg(_(e_using_class_as_value_str), type->tt_class->class_name); + return FAIL; + } + else if (type->tt_type == VAR_TYPEALIAS) + { + // Not sure what could be done here to get a name + // TODO: MAYBE AN OPTIONAL ARGUMENT + emsg(_(e_using_typealias_as_var_val)); + return FAIL; + } + return OK; +} + +/* + * Same as above, except check vartype_T. + */ + int +check_vartype_is_value(vartype_T typ) +{ + if (typ == VAR_CLASS) + { + emsg(_(e_using_class_as_var_val)); + return FAIL; + } + else if (typ == VAR_TYPEALIAS) + { + emsg(_(e_using_typealias_as_var_val)); + return FAIL; + } + return OK; +} + #endif // FEAT_EVAL From e4a450a87ba532cbfe1c4e97cac378eaafc3ae39 Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Fri, 8 Dec 2023 20:57:38 +0100 Subject: [PATCH 015/120] patch 9.0.2157: Vim9: incorrectly parses :def func definitions Problem: Vim9: incorrectly parses :def func definitions Solution: check for more context when parsing function args Signed-off-by: Christian Brabandt Incorrectly parses def function definitions Vim currently allows to define the following vim9 function: def Func(f= ) enddef It currently thinks a Lambda is following the `=` but it doesn't check, that there is actually an expression following. So when such a think is encountered, remember that an expression should be following. If no expression is coming in the next few lines, fail parsing the function arguments, which will Vim no longer accept such a function. Signed-off-by: Christian Brabandt --- src/testdir/test_vim9_func.vim | 7 +++++++ src/userfunc.c | 9 ++++++++- src/version.c | 2 ++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index 47b23e85e5..27585a9049 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -861,6 +861,13 @@ def Test_func_with_comments() END v9.CheckScriptFailure(lines, 'E125:', 1) + lines =<< trim END + def Func(f= + ) + enddef + END + v9.CheckScriptFailure(lines, 'E125:', 2) + lines =<< trim END def Func( arg: string# comment diff --git a/src/userfunc.c b/src/userfunc.c index 33e73a9a52..e2b1bc3226 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -243,6 +243,7 @@ get_function_args( int c; int any_default = FALSE; char_u *whitep = *argp; + int need_expr = FALSE; if (newargs != NULL) ga_init2(newargs, sizeof(char_u *), 3); @@ -282,7 +283,7 @@ get_function_args( semsg(_(e_invalid_argument_str), *argp); goto err_ret; } - if (*p == endchar) + if (*p == endchar && !need_expr) break; if (p[0] == '.' && p[1] == '.' && p[2] == '.') @@ -435,6 +436,8 @@ get_function_args( if (ga_grow(default_args, 1) == FAIL) goto err_ret; + if (need_expr) + need_expr = FALSE; // trim trailing whitespace while (p > expr && VIM_ISWHITE(p[-1])) p--; @@ -453,7 +456,11 @@ get_function_args( } } else + { mustend = TRUE; + if (*skipwhite(p) == NUL) + need_expr = TRUE; + } } else if (any_default) { diff --git a/src/version.c b/src/version.c index f7d6cbcb6b..919f42f2d3 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2157, /**/ 2156, /**/ From 0f28791b215bd4c22ed580839409c2f7d39d8140 Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Mon, 11 Dec 2023 17:53:25 +0100 Subject: [PATCH 016/120] patch 9.0.2158: [security]: use-after-free in check_argument_type Problem: [security]: use-after-free in check_argument_type Solution: Reset function type pointer when freeing the function type list function pointer fp->uf_func_type may point to the same memory, that was allocated for fp->uf_type_list. However, when cleaning up a function definition (e.g. because it was invalid), fp->uf_type_list will be freed, but fp->uf_func_type may still point to the same (now) invalid memory address. So when freeing the fp->uf_type_list, check if fp->func_type points to any of those types and if it does, reset the fp->uf_func_type pointer to the t_func_any (default) type pointer closes: #13652 Signed-off-by: Christian Brabandt --- src/proto/vim9type.pro | 1 + src/testdir/crash/poc_uaf_check_argument_types | Bin 0 -> 43 bytes src/testdir/test_crash.vim | 6 ++++++ src/userfunc.c | 4 ++-- src/version.c | 2 ++ src/vim9type.c | 13 +++++++++++++ 6 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 src/testdir/crash/poc_uaf_check_argument_types diff --git a/src/proto/vim9type.pro b/src/proto/vim9type.pro index 85cc96fb23..1643e0c0fb 100644 --- a/src/proto/vim9type.pro +++ b/src/proto/vim9type.pro @@ -2,6 +2,7 @@ type_T *get_type_ptr(garray_T *type_gap); type_T *copy_type(type_T *type, garray_T *type_gap); void clear_type_list(garray_T *gap); +void clear_func_type_list(garray_T *gap, type_T **func_type); type_T *alloc_type(type_T *type); void free_type(type_T *type); void set_tv_type(typval_T *tv, type_T *type); diff --git a/src/testdir/crash/poc_uaf_check_argument_types b/src/testdir/crash/poc_uaf_check_argument_types new file mode 100644 index 0000000000000000000000000000000000000000..83a2e7b0a69305a319dde36451416092f5153ef2 GIT binary patch literal 43 ycmYdEO;ZTcNVDbAWZ+88OG!yh<0{sVQB~K}kFgEX(BvvB<}xTwF5)WAX8-{DR|{DH literal 0 HcmV?d00001 diff --git a/src/testdir/test_crash.vim b/src/testdir/test_crash.vim index 242da8e5db..fd786e5d54 100644 --- a/src/testdir/test_crash.vim +++ b/src/testdir/test_crash.vim @@ -184,6 +184,12 @@ func Test_crash1_3() call term_sendkeys(buf, args) call TermWait(buf, 150) + let file = 'crash/poc_uaf_check_argument_types' + let cmn_args = "%s -u NONE -i NONE -n -e -s -S %s -c ':qa!'\" + let args = printf(cmn_args, vim, file) + call term_sendkeys(buf, args) + call TermWait(buf, 150) + " clean up exe buf .. "bw!" bw! diff --git a/src/userfunc.c b/src/userfunc.c index e2b1bc3226..410658b1ea 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -2533,7 +2533,7 @@ func_clear_items(ufunc_T *fp) VIM_CLEAR(fp->uf_arg_types); VIM_CLEAR(fp->uf_block_ids); VIM_CLEAR(fp->uf_va_name); - clear_type_list(&fp->uf_type_list); + clear_func_type_list(&fp->uf_type_list, &fp->uf_func_type); // Increment the refcount of this function to avoid it being freed // recursively when the partial is freed. @@ -5435,7 +5435,7 @@ errret_2: { VIM_CLEAR(fp->uf_arg_types); VIM_CLEAR(fp->uf_va_name); - clear_type_list(&fp->uf_type_list); + clear_func_type_list(&fp->uf_type_list, &fp->uf_func_type); } if (free_fp) VIM_CLEAR(fp); diff --git a/src/version.c b/src/version.c index 919f42f2d3..4bb1c90bae 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2158, /**/ 2157, /**/ diff --git a/src/vim9type.c b/src/vim9type.c index a142a7b9c3..fec2bf9d3e 100644 --- a/src/vim9type.c +++ b/src/vim9type.c @@ -122,6 +122,19 @@ clear_type_list(garray_T *gap) ga_clear(gap); } + void +clear_func_type_list(garray_T *gap, type_T **func_type) +{ + while (gap->ga_len > 0) + { + // func_type pointing to the uf_type_list, so reset pointer + if (*func_type == ((type_T **)gap->ga_data)[--gap->ga_len]) + *func_type = &t_func_any; + vim_free(((type_T **)gap->ga_data)[gap->ga_len]); + } + ga_clear(gap); +} + /* * Take a type that is using entries in a growarray and turn it into a type * with allocated entries. From a40e1687e757ea4aa41e84006c739f575db75703 Mon Sep 17 00:00:00 2001 From: Philip H <47042125+pheiduck@users.noreply.github.com> Date: Mon, 11 Dec 2023 18:35:52 +0100 Subject: [PATCH 017/120] CI: labeler.yml: update to v5 (#13664) Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com> Signed-off-by: Christian Brabandt --- .github/labeler.yml | 197 +++++++++++++++++++++++++++----------------- 1 file changed, 123 insertions(+), 74 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index 93cd087a86..124848000d 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,106 +1,155 @@ # list of labels and minimatch globs to match to apply the label. CI: -- any: ['.cirrus.yml'] -- any: ['.github/dependabot.yml'] -- any: ['.github/labeler.yml'] -- any: ['.github/workflows/*'] -- any: ['.appveyor.yml'] -- any: ['.codecov.yml'] + - all: + - changed-files: + - any-glob-to-all-files: + - '.cirrus.yml' + - '.github/dependabot.yml' + - '.github/labeler.yml' + - '.github/workflows/*' + - '.appveyor.yml' + - '.codecov.yml' documentation: -- all: ['*/doc/*'] + - all: + - changed-files: + - any-glob-to-all-files: + - '*/doc/*' translation: -- any: ['src/po/*.po'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'src/po/*.po' if_lua: -- any: ['src/if_lua.c'] -- any: ['src/proto/if_lua.pro'] -- any: ['runtime/doc/if_lua.txt'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'src/if_lua.c' + - 'src/proto/if_lua.pro' + - 'runtime/doc/if_lua.txt' if_mzscheme: -- any: ['src/if_mzsch.c'] -- any: ['src/if_mzsch.h'] -- any: ['src/proto/if_mzsch.pro'] -- any: ['runtime/doc/if_mzsch.txt'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'src/if_mzsch.c' + - 'src/if_mzsch.h' + - 'src/proto/if_mzsch.pro' + - 'runtime/doc/if_mzsch.txt' if_perl: -- any: ['src/if_perl.xs'] -- any: ['src/if_perlsfio.c'] -- any: ['src/proto/if_perl.pro'] -- any: ['src/proto/if_perlsfio.pro'] -- any: ['runtime/doc/if_perl.txt'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'src/if_perl.xs' + - 'src/if_perlsfio.c' + - 'src/proto/if_perl.pro' + - 'src/proto/if_perlsfio.pro' + - 'runtime/doc/if_perl.txt' if_python: -- any: ['src/if_py_both.h'] -- any: ['runtime/doc/if_pyth.txt'] -- any: ['src/if_python.c'] -- any: ['src/if_python3.c'] -- any: ['src/proto/if_python.pro'] -- any: ['src/proto/if_python3.pro'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'src/if_py_both.h' + - 'runtime/doc/if_pyth.txt' + - 'src/if_python.c' + - 'src/if_python3.c' + - 'src/proto/if_python.pro' + - 'src/proto/if_python3.pro' if_ruby: -- any: ['src/if_ruby.c'] -- any: ['src/proto/if_ruby.pro'] -- any: ['runtime/doc/if_ruby.txt'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'src/if_ruby.c' + - 'src/proto/if_ruby.pro' + - 'runtime/doc/if_ruby.txt' if_tcl: -- any: ['src/if_tcl.c'] -- any: ['src/proto/if_tcl.pro'] -- any: ['runtime/doc/if_tcl.txt'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'src/if_tcl.c' + - 'src/proto/if_tcl.pro' + - 'runtime/doc/if_tcl.txt' installer: -- any: ['nsis/**'] -- any: ['src/dosinst.*'] -- any: ['src/uninstall.c'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'nsis/**' + - 'src/dosinst.*' + - 'src/uninstall.c' platform-mac: -- any: ['src/INSTALLmac.txt'] -- any: ['src/os_mac*'] -- any: ['src/proto/os_mac*'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'src/INSTALLmac.txt' + - 'src/os_mac*' + - 'src/proto/os_mac*' platform-windows: -- any: ['nsis/**'] -- any: ['src/*.bat'] -- any: ['src/*.bmp'] -- any: ['src/*.ico'] -- any: ['src/GvimExt/*'] -- any: ['src/INSTALLpc.txt'] -- any: ['src/Make_cyg*.mak'] -- any: ['src/Make_ming.mak'] -- any: ['src/Make_mvc.mak'] -- any: ['src/dosinst.*'] -- any: ['src/gui_dwrite.*'] -- any: ['src/gui_w32*'] -- any: ['src/if_ole.*'] -- any: ['src/iid_ole.c'] -- any: ['src/os_mswin*'] -- any: ['src/os_w32*'] -- any: ['src/os_win32.*'] -- any: ['src/proto/gui_w32.pro'] -- any: ['src/proto/os_mswin.pro'] -- any: ['src/proto/os_win32.pro'] -- any: ['src/proto/winclip.pro'] -- any: ['src/uninstall.c'] -- any: ['src/vim.manifest'] -- any: ['src/vim.rc'] -- any: ['src/vimrun.c'] -- any: ['src/winclip.c'] -- any: ['src/xpm/**'] -- any: ['src/xpm_w32.*'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'nsis/**' + - 'src/*.bat' + - 'src/*.bmp' + - 'src/*.ico' + - 'src/GvimExt/*' + - 'src/INSTALLpc.txt' + - 'src/Make_cyg*.mak' + - 'src/Make_ming.mak' + - 'src/Make_mvc.mak' + - 'src/dosinst.*' + - 'src/gui_dwrite.*' + - 'src/gui_w32*' + - 'src/if_ole.*' + - 'src/iid_ole.c' + - 'src/os_mswin*' + - 'src/os_w32*' + - 'src/os_win32.*' + - 'src/proto/gui_w32.pro' + - 'src/proto/os_mswin.pro' + - 'src/proto/os_win32.pro' + - 'src/proto/winclip.pro' + - 'src/uninstall.c' + - 'src/vim.manifest' + - 'src/vim.rc' + - 'src/vimrun.c' + - 'src/winclip.c' + - 'src/xpm/**' + - 'src/xpm_w32.*' runtime: -- any: ['runtime/ftplugin'] -- any: ['runtime/syntax'] -- any: ['runtime/indent'] -- any: ['runtime/pack/dist/opt/termdebug/plugin/termdebug.vim'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'runtime/ftplugin' + - 'runtime/syntax' + - 'runtime/indent' + - 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim' -termdebug: runtime/pack/dist/opt/termdebug/plugin/termdebug.vim +termdebug: + - all: + - changed-files: + - any-glob-to-all-files: + - 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim' plugin-netrw: -- any: ['runtime/plugin/netrwPlugin.vim'] -- any: ['runtime/autoload/netrw*'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'runtime/plugin/netrwPlugin.vim' + - 'runtime/autoload/netrw*' xxd: -- any: ['src/xxd/*'] + - all: + - changed-files: + - any-glob-to-all-files: + - 'src/xxd/*' From ec54af4e26952d954a4cc009f62c80ea01445d30 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 12 Dec 2023 16:43:44 +0100 Subject: [PATCH 018/120] patch 9.0.2159: screenpos() may crash with neg. column Problem: screenpos() may crash with neg. column Solution: validate and correct column closes: #13669 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- src/move.c | 2 ++ src/testdir/test_cursor_func.vim | 5 +++++ src/version.c | 2 ++ 3 files changed, 9 insertions(+) diff --git a/src/move.c b/src/move.c index fbb352a32e..861d84b84e 100644 --- a/src/move.c +++ b/src/move.c @@ -1531,6 +1531,8 @@ f_screenpos(typval_T *argvars UNUSED, typval_T *rettv) return; } pos.col = tv_get_number(&argvars[2]) - 1; + if (pos.col < 0) + pos.col = 0; pos.coladd = 0; textpos2screenpos(wp, &pos, &row, &scol, &ccol, &ecol); diff --git a/src/testdir/test_cursor_func.vim b/src/testdir/test_cursor_func.vim index 3cdf4cb7f9..2bdda869e6 100644 --- a/src/testdir/test_cursor_func.vim +++ b/src/testdir/test_cursor_func.vim @@ -206,6 +206,11 @@ func Test_screenpos() nmenu WinBar.TEST : call assert_equal(#{col: 1, row: 2, endcol: 1, curscol: 1}, screenpos(win_getid(), 1, 1)) nunmenu WinBar.TEST + call assert_equal(#{col: 1, row: 1, endcol: 1, curscol: 1}, screenpos(win_getid(), 1, 1)) + + call assert_equal(#{col: 0, row: 0, endcol: 0, curscol: 0}, screenpos(0, 0, 1)) + call assert_equal(#{col: 0, row: 0, endcol: 0, curscol: 0}, screenpos(0, -1, 1)) + call assert_equal(#{col: 1, row: 1, endcol: 1, curscol: 1}, screenpos(0, 1, -v:maxcol)) endfunc func Test_screenpos_fold() diff --git a/src/version.c b/src/version.c index 4bb1c90bae..15ff51dd72 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2159, /**/ 2158, /**/ From 1c97b5c0c0b4a60d652b78da4470aeb8a7509700 Mon Sep 17 00:00:00 2001 From: dkearns Date: Wed, 13 Dec 2023 02:47:43 +1100 Subject: [PATCH 019/120] runtime(vim): Update syntax file, fix missing for highlight (#13668) Fix highlighting of :for command. Link the vimFor syntax group to the vimCommand highlight group. Error introduced in commit f686921 Signed-off-by: Doug Kearns Signed-off-by: Christian Brabandt --- runtime/syntax/testdir/dumps/vim_variables_07.dump | 4 ++-- runtime/syntax/testdir/dumps/vim_variables_99.dump | 4 ++-- runtime/syntax/vim.vim | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/runtime/syntax/testdir/dumps/vim_variables_07.dump b/runtime/syntax/testdir/dumps/vim_variables_07.dump index 8be0fa8020..f0288f0ade 100644 --- a/runtime/syntax/testdir/dumps/vim_variables_07.dump +++ b/runtime/syntax/testdir/dumps/vim_variables_07.dump @@ -10,10 +10,10 @@ @75 |"+0#0000e05&| |:|f|o|r| +0#0000000&@68 @75 -|f|o|r| |f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @59 +|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @59 |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68 @75 -|f|o|r| |[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @52 +|f+0#af5f00255&|o|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @52 |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68 |~+0#4040ff13&| @73 |~| @73 diff --git a/runtime/syntax/testdir/dumps/vim_variables_99.dump b/runtime/syntax/testdir/dumps/vim_variables_99.dump index 6f3e1c4443..003603ec30 100644 --- a/runtime/syntax/testdir/dumps/vim_variables_99.dump +++ b/runtime/syntax/testdir/dumps/vim_variables_99.dump @@ -12,9 +12,9 @@ @75 |"+0#0000e05&| |:|f|o|r| +0#0000000&@68 @75 -|f|o|r| |f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @59 +|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @59 |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68 @75 -|f|o|r| |[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @52 +|f+0#af5f00255&|o|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @52 >e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68 @57|1|3|8|,|1| @8|B|o|t| diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 5697ce3f6d..c1706e0f18 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -938,6 +938,7 @@ if !exists("skip_vim_syntax_inits") hi def link vimFuncEcho vimCommand hi def link vimHiCtermul vimHiTerm hi def link vimFold Folded + hi def link vimFor vimCommand hi def link vimFTCmd vimCommand hi def link vimFTOption vimSynType hi def link vimFuncKey vimCommand From c1c3b83816c8e22c9a710fb0c0cebc180ee6ce1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 16:51:32 +0100 Subject: [PATCH 020/120] CI: bump actions/labeler from 4 to 5 (#13658) Bumps [actions/labeler](https://github.com/actions/labeler) from 4 to 5. - [Release notes](https://github.com/actions/labeler/releases) - [Commits](https://github.com/actions/labeler/compare/v4...v5) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Christian Brabandt --- .github/workflows/label.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml index e4ed948698..afed05eb4e 100644 --- a/.github/workflows/label.yml +++ b/.github/workflows/label.yml @@ -17,7 +17,7 @@ jobs: pull-requests: write steps: - - uses: actions/labeler@v4 + - uses: actions/labeler@v5 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" configuration-path: .github/labeler.yml From 2025af165ec68d831f0f0f668a3ceac3f39142ef Mon Sep 17 00:00:00 2001 From: Ernie Rael Date: Tue, 12 Dec 2023 16:58:00 +0100 Subject: [PATCH 021/120] patch 9.0.2160: instanceof() should use varargs as second arg Problem: instanceof() should use varargs as second arg Solution: Modify `instanceof()` to use varargs instead of list Modify `instanceof()` to use varargs instead of list Valid `instanceof()` arguments are `type`s. A `type` is not a value; it cannot be added to a list. This change is non-compatible with the current usage of instanceof; but instanceof is relatively new and it's a trivial change. fixes: #13421 closes: #13644 Signed-off-by: Ernie Rael Signed-off-by: Christian Brabandt --- runtime/doc/builtin.txt | 8 +-- src/errors.h | 12 ++--- src/evalfunc.c | 44 ++++++++++++----- src/proto/typval.pro | 2 +- src/testdir/test_vim9_assign.vim | 10 ++-- src/testdir/test_vim9_builtin.vim | 8 +-- src/testdir/test_vim9_class.vim | 75 +++++++++++++++++++++++++++-- src/testdir/test_vim9_typealias.vim | 16 ++++-- src/typval.c | 15 +++--- src/version.c | 2 + src/vim9class.c | 43 +++++------------ 11 files changed, 159 insertions(+), 76 deletions(-) diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index a4a097847e..c9b9938dd9 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -5058,12 +5058,12 @@ insert({object}, {item} [, {idx}]) *insert()* *instanceof()* *E614* *E616* *E693* instanceof({object}, {class}) The result is a Number, which is |TRUE| when the {object} - argument is a direct or indirect instance of a |Class| - specified by {class}. - When {class} is a |List| the function returns |TRUE| when + argument is a direct or indirect instance of a |Class|, + |Interface|, or class |:type| alias specified by {class}. + If {class} is varargs, the function returns |TRUE| when {object} is an instance of any of the specified classes. Example: > - instanceof(animal, [Dog, Cat]) + instanceof(animal, Dog, Cat) < Can also be used as a |method|: > myobj->instanceof(mytype) diff --git a/src/errors.h b/src/errors.h index 2788800c00..7192514f0e 100644 --- a/src/errors.h +++ b/src/errors.h @@ -1778,8 +1778,8 @@ EXTERN char e_can_only_compare_list_with_list[] INIT(= N_("E691: Can only compare List with List")); EXTERN char e_invalid_operation_for_list[] INIT(= N_("E692: Invalid operation for List")); -EXTERN char e_list_or_class_required_for_argument_nr[] - INIT(= N_("E693: List or Class required for argument %d")); +EXTERN char e_class_or_typealias_required_for_argument_nr[] + INIT(= N_("E693: Class or class typealias required for argument %d")); EXTERN char e_invalid_operation_for_funcrefs[] INIT(= N_("E694: Invalid operation for Funcrefs")); EXTERN char e_cannot_index_a_funcref[] @@ -3562,13 +3562,13 @@ EXTERN char e_using_typealias_as_value_str[] EXTERN char e_abstract_cannot_be_used_in_interface[] INIT(= N_("E1404: Abstract cannot be used in an interface")); EXTERN char e_using_class_as_value_str[] - INIT(= N_("E1403: Class \"%s\" cannot be used as a value")); + INIT(= N_("E1405: Class \"%s\" cannot be used as a value")); EXTERN char e_using_class_as_var_val[] - INIT(= N_("E1405: Cannot use a Class as a variable or value")); + INIT(= N_("E1406: Cannot use a Class as a variable or value")); EXTERN char e_using_typealias_as_var_val[] - INIT(= N_("E1406: Cannot use a Typealias as a variable or value")); + INIT(= N_("E1407: Cannot use a Typealias as a variable or value")); #endif -// E1405 - E1499 unused (reserved for Vim9 class support) +// E1408 - E1499 unused (reserved for Vim9 class support) EXTERN char e_cannot_mix_positional_and_non_positional_str[] INIT(= N_("E1500: Cannot mix positional and non-positional arguments: %s")); EXTERN char e_fmt_arg_nr_unused_str[] diff --git a/src/evalfunc.c b/src/evalfunc.c index b0b975061d..84d0a338ab 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -758,17 +758,23 @@ arg_string_or_func(type_T *type, type_T *decl_type UNUSED, argcontext_T *context } /* - * Check "type" is a list of 'any' or a class. + * Check varargs' "type" are class. */ static int -arg_class_or_list(type_T *type, type_T *decl_type UNUSED, argcontext_T *context) +varargs_class(type_T *type UNUSED, + type_T *decl_type UNUSED, + argcontext_T *context) { - if (type->tt_type == VAR_CLASS - || type->tt_type == VAR_LIST - || type_any_or_unknown(type)) - return OK; - arg_type_mismatch(&t_class, type, context->arg_idx + 1); - return FAIL; + for (int i = context->arg_idx; i < context->arg_count; ++i) + { + type2_T *types = &context->arg_types[i]; + if (types->type_curr->tt_type != VAR_CLASS) + { + semsg(_(e_class_or_typealias_required_for_argument_nr), i + 1); + return FAIL; + } + } + return OK; } /* @@ -1152,7 +1158,7 @@ static argcheck_T arg1_len[] = {arg_len1}; static argcheck_T arg3_libcall[] = {arg_string, arg_string, arg_string_or_nr}; static argcheck_T arg14_maparg[] = {arg_string, arg_string, arg_bool, arg_bool}; static argcheck_T arg2_filter[] = {arg_list_or_dict_or_blob_or_string_mod, arg_filter_func}; -static argcheck_T arg2_instanceof[] = {arg_object, arg_class_or_list}; +static argcheck_T arg2_instanceof[] = {arg_object, varargs_class, NULL }; static argcheck_T arg2_map[] = {arg_list_or_dict_or_blob_or_string_mod, arg_map_func}; static argcheck_T arg2_mapnew[] = {arg_list_or_dict_or_blob_or_string, NULL}; static argcheck_T arg25_matchadd[] = {arg_string, arg_string, arg_number, arg_number, arg_dict_any}; @@ -1621,6 +1627,12 @@ ret_maparg(int argcount, /* * Array with names and number of arguments of all internal functions * MUST BE KEPT SORTED IN strcmp() ORDER FOR BINARY SEARCH! + * + * The function may be varargs. In that case + * - f_max_argc == VARGS + * - f_argcheck must be NULL terminated. Last non-null argument + * should check all the remaining args. + * NOTE: if varargs, there can only be one NULL in f_argcheck array. */ typedef struct { @@ -1636,6 +1648,9 @@ typedef struct // implementation of function } funcentry_T; +// Set f_max_argc to VARGS for varargs. +#define VARGS CHAR_MAX + // values for f_argtype; zero means it cannot be used as a method #define FEARG_1 1 // base is the first argument #define FEARG_2 2 // base is the second argument @@ -2152,7 +2167,7 @@ static funcentry_T global_functions[] = ret_string, f_inputsecret}, {"insert", 2, 3, FEARG_1, arg23_insert, ret_first_arg, f_insert}, - {"instanceof", 2, 2, FEARG_1, arg2_instanceof, + {"instanceof", 2, VARGS, FEARG_1, arg2_instanceof, ret_bool, f_instanceof}, {"interrupt", 0, 0, 0, NULL, ret_void, f_interrupt}, @@ -3035,13 +3050,20 @@ internal_func_check_arg_types( if (argchecks == NULL) return OK; + int has_varargs = global_functions[idx].f_max_argc == VARGS; + argcontext_T context; context.arg_count = argcount; context.arg_types = types; context.arg_cctx = cctx; for (int i = 0; i < argcount; ++i) - if (argchecks[i] != NULL) + if (argchecks[i] == NULL) + { + if (has_varargs) + break; + } + else { context.arg_idx = i; if (argchecks[i](types[i].type_curr, types[i].type_decl, diff --git a/src/proto/typval.pro b/src/proto/typval.pro index 3f577adf78..c9845e0d13 100644 --- a/src/proto/typval.pro +++ b/src/proto/typval.pro @@ -53,7 +53,7 @@ int check_for_list_or_dict_or_blob_or_string_arg(typval_T *args, int idx); int check_for_opt_buffer_or_dict_arg(typval_T *args, int idx); int check_for_object_arg(typval_T *args, int idx); int tv_class_alias(typval_T *tv); -int check_for_class_or_list_arg(typval_T *args, int idx); +int check_for_class_or_typealias_args(typval_T *args, int idx); char_u *tv_get_string(typval_T *varp); char_u *tv_get_string_strict(typval_T *varp); char_u *tv_get_string_buf(typval_T *varp, char_u *buf); diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim index 8be0769b72..e288d0306e 100644 --- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -3064,7 +3064,7 @@ def Test_class_assign() endclass class D endclass - assert_fails('C = D', 'E1403: Class "D" cannot be used as a value') + assert_fails('C = D', 'E1405: Class "D" cannot be used as a value') END v9.CheckSourceSuccess(lines) enddef @@ -3105,7 +3105,7 @@ def Test_type_check() assert_fails('N = l', 'E1012: Type mismatch; expected number but got list') assert_fails('N = b', 'E1012: Type mismatch; expected number but got blob') assert_fails('N = Fn', 'E1012: Type mismatch; expected number but got func([unknown]): number') - assert_fails('N = A', 'E1403: Class "A" cannot be used as a value') + assert_fails('N = A', 'E1405: Class "A" cannot be used as a value') assert_fails('N = o', 'E1012: Type mismatch; expected number but got object') # Use a compound operator with different RHS types @@ -3113,7 +3113,7 @@ def Test_type_check() assert_fails('N += l', 'E734: Wrong variable type for +=') assert_fails('N += b', 'E974: Using a Blob as a Number') assert_fails('N += Fn', 'E734: Wrong variable type for +=') - assert_fails('N += A', 'E1403: Class "A" cannot be used as a value') + assert_fails('N += A', 'E1405: Class "A" cannot be used as a value') assert_fails('N += o', 'E1320: Using an Object as a Number') # Initialize multiple variables using [] @@ -3121,7 +3121,7 @@ def Test_type_check() assert_fails('var [X2: number, Y: number] = [1, l]', 'E1012: Type mismatch; expected number but got list') assert_fails('var [X3: number, Y: number] = [1, b]', 'E1012: Type mismatch; expected number but got blob') assert_fails('var [X4: number, Y: number] = [1, Fn]', 'E1012: Type mismatch; expected number but got func([unknown]): number') - assert_fails('var [X7: number, Y: number] = [1, A]', 'E1403: Class "A" cannot be used as a value') + assert_fails('var [X7: number, Y: number] = [1, A]', 'E1405: Class "A" cannot be used as a value') assert_fails('var [X8: number, Y: number] = [1, o]', 'E1012: Type mismatch; expected number but got object') # String concatenation with various LHS types @@ -3129,7 +3129,7 @@ def Test_type_check() assert_fails('S ..= l', 'E734: Wrong variable type for .=') assert_fails('S ..= b', 'E976: Using a Blob as a String') assert_fails('S ..= Fn', 'E734: Wrong variable type for .=') - assert_fails('S ..= A', 'E1403: Class "A" cannot be used as a value') + assert_fails('S ..= A', 'E1405: Class "A" cannot be used as a value') assert_fails('S ..= o', 'E1324: Using an Object as a String') # String concatenation with various RHS types diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim index f9d2e4181e..216118ec68 100644 --- a/src/testdir/test_vim9_builtin.vim +++ b/src/testdir/test_vim9_builtin.vim @@ -2316,7 +2316,7 @@ def Test_instanceof() endclass instanceof(Foo.new(), 123) END - v9.CheckScriptFailure(lines, 'E693: List or Class required for argument 2') + v9.CheckScriptFailure(lines, 'E693: Class or class typealias required for argument 2') lines =<< trim END vim9script @@ -2338,7 +2338,7 @@ def Test_instanceof() enddef Bar() END - v9.CheckScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected class but got number') + v9.CheckScriptFailure(lines, 'E693: Class or class typealias required for argument 2') lines =<< trim END vim9script @@ -2346,7 +2346,7 @@ def Test_instanceof() endclass instanceof(Foo.new(), [{}]) END - v9.CheckSourceFailure(lines, 'E614: Class required') + v9.CheckSourceFailure(lines, 'E693: Class or class typealias required for argument 2') lines =<< trim END vim9script @@ -2357,7 +2357,7 @@ def Test_instanceof() enddef Bar() END - v9.CheckSourceFailure(lines, 'E614: Class required') + v9.CheckSourceFailure(lines, 'E693: Class or class typealias required for argument 2') enddef def Test_invert() diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index 84ea1cb357..e0f5db6253 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -3328,6 +3328,11 @@ def Test_instanceof() class Base3 extends Mix1 endclass + type AliasBase1 = Base1 + type AliasBase2 = Base2 + type AliasIntf1 = Intf1 + type AliasMix1 = Mix1 + var b1 = Base1.new() var b2 = Base2.new() var b3 = Base3.new() @@ -3336,8 +3341,13 @@ def Test_instanceof() assert_true(instanceof(b2, Base1)) assert_false(instanceof(b1, Base2)) assert_true(instanceof(b3, Mix1)) - assert_false(instanceof(b3, [])) - assert_true(instanceof(b3, [Base1, Base2, Intf1])) + assert_true(instanceof(b3, Base1, Base2, Intf1)) + + assert_true(instanceof(b1, AliasBase1)) + assert_true(instanceof(b2, AliasBase1)) + assert_false(instanceof(b1, AliasBase2)) + assert_true(instanceof(b3, AliasMix1)) + assert_true(instanceof(b3, AliasBase1, AliasBase2, AliasIntf1)) def Foo() var a1 = Base1.new() @@ -3348,8 +3358,13 @@ def Test_instanceof() assert_true(instanceof(a2, Base1)) assert_false(instanceof(a1, Base2)) assert_true(instanceof(a3, Mix1)) - assert_false(instanceof(a3, [])) - assert_true(instanceof(a3, [Base1, Base2, Intf1])) + assert_true(instanceof(a3, Base1, Base2, Intf1)) + + assert_true(instanceof(a1, AliasBase1)) + assert_true(instanceof(a2, AliasBase1)) + assert_false(instanceof(a1, AliasBase2)) + assert_true(instanceof(a3, AliasMix1)) + assert_true(instanceof(a3, AliasBase1, AliasBase2, AliasIntf1)) enddef Foo() @@ -3358,6 +3373,58 @@ def Test_instanceof() END v9.CheckSourceSuccess(lines) + + lines =<< trim END + vim9script + + class Base1 + endclass + instanceof(Base1.new()) + END + v9.CheckSourceFailure(lines, 'E119: Not enough arguments for function: instanceof') + + lines =<< trim END + vim9script + + class Base1 + endclass + def F() + instanceof(Base1.new()) + enddef + F() + END + v9.CheckSourceFailure(lines, 'E119: Not enough arguments for function: instanceof') + + lines =<< trim END + vim9script + + class Base1 + endclass + + class Base2 + endclass + + var o = Base2.new() + instanceof(o, Base1, Base2, 3) + END + v9.CheckSourceFailure(lines, 'E693: Class or class typealias required for argument 4', 10) + + lines =<< trim END + vim9script + + class Base1 + endclass + + class Base2 + endclass + + def F() + var o = Base2.new() + instanceof(o, Base1, Base2, 3) + enddef + F() + END + v9.CheckSourceFailure(lines, 'E693: Class or class typealias required for argument 4') enddef " Test for calling a method in the parent class that is extended partially. diff --git a/src/testdir/test_vim9_typealias.vim b/src/testdir/test_vim9_typealias.vim index 34c9e0ea72..20829340f2 100644 --- a/src/testdir/test_vim9_typealias.vim +++ b/src/testdir/test_vim9_typealias.vim @@ -212,7 +212,7 @@ def Test_typealias() enddef Foo() END - v9.CheckSourceFailure(lines, 'E1406: Cannot use a Typealias as a variable or value', 1) + v9.CheckSourceFailure(lines, 'E1407: Cannot use a Typealias as a variable or value', 1) # Using type alias in an expression (script level) lines =<< trim END @@ -516,8 +516,18 @@ def Test_typealias_instanceof() var o = C.new() assert_equal(1, instanceof(o, Ctype)) type Ntype = number - assert_fails('instanceof(o, Ntype)', 'E693: List or Class required for argument 2') - assert_equal(1, instanceof(o, [Ctype])) + assert_fails('instanceof(o, Ntype)', 'E693: Class or class typealias required for argument 2') + assert_fails('instanceof(o, Ctype, Ntype)', 'E693: Class or class typealias required for argument 3') + + def F() + var x = instanceof(o, Ntype) + enddef + assert_fails('F()', 'E693: Class or class typealias required for argument 2') + + def G(): bool + return instanceof(o, Ctype) + enddef + assert_equal(1, G()) END v9.CheckScriptSuccess(lines) enddef diff --git a/src/typval.c b/src/typval.c index 078e2eb058..65cd912c32 100644 --- a/src/typval.c +++ b/src/typval.c @@ -1014,16 +1014,19 @@ tv_class_alias(typval_T *tv) } /* - * Give an error and return FAIL unless "args[idx]" is a class or a list. + * Give an error and return FAIL unless "args[idx]" is a class + * or class typealias. */ int -check_for_class_or_list_arg(typval_T *args, int idx) +check_for_class_or_typealias_args(typval_T *args, int idx) { - if (args[idx].v_type != VAR_CLASS && args[idx].v_type != VAR_LIST - && !tv_class_alias(&args[idx])) + for (int i = idx; args[i].v_type != VAR_UNKNOWN; ++i) { - semsg(_(e_list_or_class_required_for_argument_nr), idx + 1); - return FAIL; + if (args[i].v_type != VAR_CLASS && !tv_class_alias(&args[idx])) + { + semsg(_(e_class_or_typealias_required_for_argument_nr), i + 1); + return FAIL; + } } return OK; } diff --git a/src/version.c b/src/version.c index 15ff51dd72..ad5bda644d 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2160, /**/ 2159, /**/ diff --git a/src/vim9class.c b/src/vim9class.c index c0705ff3ca..4b065c8590 100644 --- a/src/vim9class.c +++ b/src/vim9class.c @@ -3161,58 +3161,37 @@ class_instance_of(class_T *cl, class_T *other_cl) } /* - * "instanceof(object, classinfo)" function + * "instanceof(object, classinfo, ...)" function */ void f_instanceof(typval_T *argvars, typval_T *rettv) { typval_T *object_tv = &argvars[0]; typval_T *classinfo_tv = &argvars[1]; - listitem_T *li; class_T *c; rettv->vval.v_number = VVAL_FALSE; if (check_for_object_arg(argvars, 0) == FAIL - || check_for_class_or_list_arg(argvars, 1) == FAIL) + || check_for_class_or_typealias_args(argvars, 1) == FAIL) return; if (object_tv->vval.v_object == NULL) return; - if (classinfo_tv->v_type == VAR_LIST) + for (; classinfo_tv->v_type != VAR_UNKNOWN; ++classinfo_tv) { - FOR_ALL_LIST_ITEMS(classinfo_tv->vval.v_list, li) + if (classinfo_tv->v_type == VAR_TYPEALIAS) + c = classinfo_tv->vval.v_typealias->ta_type->tt_class; + else + c = classinfo_tv->vval.v_class; + + if (class_instance_of(object_tv->vval.v_object->obj_class, c)) { - if (li->li_tv.v_type != VAR_CLASS && !tv_class_alias(&li->li_tv)) - { - emsg(_(e_class_required)); - return; - } - - if (li->li_tv.v_type == VAR_TYPEALIAS) - c = li->li_tv.vval.v_typealias->ta_type->tt_class; - else - c = li->li_tv.vval.v_class; - - if (class_instance_of(object_tv->vval.v_object->obj_class, c) - == TRUE) - { - rettv->vval.v_number = VVAL_TRUE; - return; - } + rettv->vval.v_number = VVAL_TRUE; + return; } - - return; } - - if (classinfo_tv->v_type == VAR_TYPEALIAS) - c = classinfo_tv->vval.v_typealias->ta_type->tt_class; - else - c = classinfo_tv->vval.v_class; - - rettv->vval.v_number = - class_instance_of(object_tv->vval.v_object->obj_class, c); } #endif // FEAT_EVAL From 1760331ae317ba2743c93c359cba9bc563f80e25 Mon Sep 17 00:00:00 2001 From: Philip H <47042125+pheiduck@users.noreply.github.com> Date: Wed, 13 Dec 2023 08:50:35 +0100 Subject: [PATCH 022/120] CI: label.yml: fixup for v5 (#13673) * label.yml: sync-labels true * fixup: remove unused lines Signed-off-by: Philip H <47042125+pheiduck@users.noreply.github.com> Signed-off-by: K.Takata --- .github/workflows/label.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml index afed05eb4e..d23c4d403f 100644 --- a/.github/workflows/label.yml +++ b/.github/workflows/label.yml @@ -20,5 +20,3 @@ jobs: - uses: actions/labeler@v5 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" - configuration-path: .github/labeler.yml - sync-labels: '' From a02fe3480f8ea9e99b9d7398923aed225ca655cd Mon Sep 17 00:00:00 2001 From: "K.Takata" Date: Wed, 13 Dec 2023 18:45:57 +0900 Subject: [PATCH 023/120] CI: Fix labeler.yml (#13677) * CI: Fix labeler.yml Use `any-glob-to-any-file` instead of `any-glob-to-all-files` in most places. * Adjust indentation --- .github/labeler.yml | 212 ++++++++++++++++++++++---------------------- 1 file changed, 106 insertions(+), 106 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index 124848000d..aab3af32d0 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -2,154 +2,154 @@ CI: - all: - - changed-files: - - any-glob-to-all-files: - - '.cirrus.yml' - - '.github/dependabot.yml' - - '.github/labeler.yml' - - '.github/workflows/*' - - '.appveyor.yml' - - '.codecov.yml' + - changed-files: + - any-glob-to-any-file: + - '.cirrus.yml' + - '.github/dependabot.yml' + - '.github/labeler.yml' + - '.github/workflows/*' + - '.appveyor.yml' + - '.codecov.yml' documentation: - all: - - changed-files: - - any-glob-to-all-files: - - '*/doc/*' + - changed-files: + - any-glob-to-all-files: + - '*/doc/*' translation: - all: - - changed-files: - - any-glob-to-all-files: - - 'src/po/*.po' + - changed-files: + - any-glob-to-any-file: + - 'src/po/*.po' if_lua: - all: - - changed-files: - - any-glob-to-all-files: - - 'src/if_lua.c' - - 'src/proto/if_lua.pro' - - 'runtime/doc/if_lua.txt' + - changed-files: + - any-glob-to-any-file: + - 'src/if_lua.c' + - 'src/proto/if_lua.pro' + - 'runtime/doc/if_lua.txt' if_mzscheme: - all: - - changed-files: - - any-glob-to-all-files: - - 'src/if_mzsch.c' - - 'src/if_mzsch.h' - - 'src/proto/if_mzsch.pro' - - 'runtime/doc/if_mzsch.txt' + - changed-files: + - any-glob-to-any-file: + - 'src/if_mzsch.c' + - 'src/if_mzsch.h' + - 'src/proto/if_mzsch.pro' + - 'runtime/doc/if_mzsch.txt' if_perl: - all: - - changed-files: - - any-glob-to-all-files: - - 'src/if_perl.xs' - - 'src/if_perlsfio.c' - - 'src/proto/if_perl.pro' - - 'src/proto/if_perlsfio.pro' - - 'runtime/doc/if_perl.txt' + - changed-files: + - any-glob-to-any-file: + - 'src/if_perl.xs' + - 'src/if_perlsfio.c' + - 'src/proto/if_perl.pro' + - 'src/proto/if_perlsfio.pro' + - 'runtime/doc/if_perl.txt' if_python: - all: - - changed-files: - - any-glob-to-all-files: - - 'src/if_py_both.h' - - 'runtime/doc/if_pyth.txt' - - 'src/if_python.c' - - 'src/if_python3.c' - - 'src/proto/if_python.pro' - - 'src/proto/if_python3.pro' + - changed-files: + - any-glob-to-any-file: + - 'src/if_py_both.h' + - 'runtime/doc/if_pyth.txt' + - 'src/if_python.c' + - 'src/if_python3.c' + - 'src/proto/if_python.pro' + - 'src/proto/if_python3.pro' if_ruby: - all: - - changed-files: - - any-glob-to-all-files: - - 'src/if_ruby.c' - - 'src/proto/if_ruby.pro' - - 'runtime/doc/if_ruby.txt' + - changed-files: + - any-glob-to-any-file: + - 'src/if_ruby.c' + - 'src/proto/if_ruby.pro' + - 'runtime/doc/if_ruby.txt' if_tcl: - all: - - changed-files: - - any-glob-to-all-files: - - 'src/if_tcl.c' - - 'src/proto/if_tcl.pro' - - 'runtime/doc/if_tcl.txt' + - changed-files: + - any-glob-to-any-file: + - 'src/if_tcl.c' + - 'src/proto/if_tcl.pro' + - 'runtime/doc/if_tcl.txt' installer: - all: - - changed-files: - - any-glob-to-all-files: - - 'nsis/**' - - 'src/dosinst.*' - - 'src/uninstall.c' + - changed-files: + - any-glob-to-any-file: + - 'nsis/**' + - 'src/dosinst.*' + - 'src/uninstall.c' platform-mac: - all: - - changed-files: - - any-glob-to-all-files: - - 'src/INSTALLmac.txt' - - 'src/os_mac*' - - 'src/proto/os_mac*' + - changed-files: + - any-glob-to-any-file: + - 'src/INSTALLmac.txt' + - 'src/os_mac*' + - 'src/proto/os_mac*' platform-windows: - all: - - changed-files: - - any-glob-to-all-files: - - 'nsis/**' - - 'src/*.bat' - - 'src/*.bmp' - - 'src/*.ico' - - 'src/GvimExt/*' - - 'src/INSTALLpc.txt' - - 'src/Make_cyg*.mak' - - 'src/Make_ming.mak' - - 'src/Make_mvc.mak' - - 'src/dosinst.*' - - 'src/gui_dwrite.*' - - 'src/gui_w32*' - - 'src/if_ole.*' - - 'src/iid_ole.c' - - 'src/os_mswin*' - - 'src/os_w32*' - - 'src/os_win32.*' - - 'src/proto/gui_w32.pro' - - 'src/proto/os_mswin.pro' - - 'src/proto/os_win32.pro' - - 'src/proto/winclip.pro' - - 'src/uninstall.c' - - 'src/vim.manifest' - - 'src/vim.rc' - - 'src/vimrun.c' - - 'src/winclip.c' - - 'src/xpm/**' - - 'src/xpm_w32.*' + - changed-files: + - any-glob-to-any-file: + - 'nsis/**' + - 'src/*.bat' + - 'src/*.bmp' + - 'src/*.ico' + - 'src/GvimExt/*' + - 'src/INSTALLpc.txt' + - 'src/Make_cyg*.mak' + - 'src/Make_ming.mak' + - 'src/Make_mvc.mak' + - 'src/dosinst.*' + - 'src/gui_dwrite.*' + - 'src/gui_w32*' + - 'src/if_ole.*' + - 'src/iid_ole.c' + - 'src/os_mswin*' + - 'src/os_w32*' + - 'src/os_win32.*' + - 'src/proto/gui_w32.pro' + - 'src/proto/os_mswin.pro' + - 'src/proto/os_win32.pro' + - 'src/proto/winclip.pro' + - 'src/uninstall.c' + - 'src/vim.manifest' + - 'src/vim.rc' + - 'src/vimrun.c' + - 'src/winclip.c' + - 'src/xpm/**' + - 'src/xpm_w32.*' runtime: - all: - - changed-files: - - any-glob-to-all-files: - - 'runtime/ftplugin' - - 'runtime/syntax' - - 'runtime/indent' - - 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim' + - changed-files: + - any-glob-to-any-file: + - 'runtime/ftplugin' + - 'runtime/syntax' + - 'runtime/indent' + - 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim' termdebug: - all: - - changed-files: - - any-glob-to-all-files: - - 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim' + - changed-files: + - any-glob-to-any-file: + - 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim' plugin-netrw: - all: - - changed-files: - - any-glob-to-all-files: - - 'runtime/plugin/netrwPlugin.vim' - - 'runtime/autoload/netrw*' + - changed-files: + - any-glob-to-any-file: + - 'runtime/plugin/netrwPlugin.vim' + - 'runtime/autoload/netrw*' xxd: - all: - - changed-files: - - any-glob-to-all-files: - - 'src/xxd/*' + - changed-files: + - any-glob-to-any-file: + - 'src/xxd/*' From 7349c5160ab63d0737050a6b4da3e407ab0cfeb0 Mon Sep 17 00:00:00 2001 From: "K.Takata" Date: Thu, 14 Dec 2023 15:58:48 +0900 Subject: [PATCH 024/120] CI: Fix i386 build (#13680) Fix the following error: ``` The following packages have unmet dependencies: binutils : Conflicts: binutils:i386 but 2.38-4ubuntu2.4 is to be installed binutils:i386 : Conflicts: binutils but 2.38-4ubuntu2.3 is to be installed binutils-common : Breaks: binutils-common:i386 (!= 2.38-4ubuntu2.3) but 2.38-4ubuntu2.4 is to be installed binutils-common:i386 : Breaks: binutils-common (!= 2.38-4ubuntu2.4) but 2.38-4ubuntu2.3 is to be installed libbinutils : Breaks: libbinutils:i386 (!= 2.38-4ubuntu2.3) but 2.38-4ubuntu2.4 is to be installed libbinutils:i386 : Breaks: libbinutils (!= 2.38-4ubuntu2.4) but 2.38-4ubuntu2.3 is to be installed libctf0 : Breaks: libctf0:i386 (!= 2.38-4ubuntu2.3) but 2.38-4ubuntu2.4 is to be installed libctf0:i386 : Breaks: libctf0 (!= 2.38-4ubuntu2.4) but 2.38-4ubuntu2.3 is to be installed E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages. ``` Run `apt-get upgrade` before installing additional packages. Signed-off-by: K.Takata Signed-off-by: Christian Brabandt --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2042b8ed7e..b51cadeab0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -120,7 +120,7 @@ jobs: libattr1-dev ) fi - sudo apt-get update && sudo apt-get install -y "${PKGS[@]}" + sudo apt-get update && sudo apt-get upgrade && sudo apt-get install -y "${PKGS[@]}" - name: Install gcc-${{ env.GCC_VER }} if: matrix.compiler == 'gcc' From d2e1c83962d4b392d1876d341c739d204553d01b Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Thu, 14 Dec 2023 19:59:45 +0100 Subject: [PATCH 025/120] patch 9.0.2161: Vim9: not able to use imported interfaces and classes Problem: Vim9: not able to use imported interfaces and classes Solution: Detect imported class/interfaces names correclty fixes: #13661 closes: #13685 Signed-off-by: Yegappan Lakshmanan Signed-off-by: Christian Brabandt --- src/testdir/test_vim9_class.vim | 56 +++++++++++++++++++++++++++++++++ src/version.c | 2 ++ src/vim9class.c | 24 ++++++++++++-- 3 files changed, 79 insertions(+), 3 deletions(-) diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index e0f5db6253..c1965880cf 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -3030,6 +3030,62 @@ def Test_class_import() v9.CheckScriptSuccess(lines) enddef +" Test for implementing an imported interface +def Test_implement_imported_interface() + var lines =<< trim END + vim9script + export interface Imp_Intf1 + def Fn1(): number + endinterface + export interface Imp_Intf2 + def Fn2(): number + endinterface + END + writefile(lines, 'Ximportinterface.vim', 'D') + + lines =<< trim END + vim9script + import './Ximportinterface.vim' as Xintf + + class A implements Xintf.Imp_Intf1, Xintf.Imp_Intf2 + def Fn1(): number + return 10 + enddef + def Fn2(): number + return 20 + enddef + endclass + var a = A.new() + assert_equal(10, a.Fn1()) + assert_equal(20, a.Fn2()) + END + v9.CheckScriptSuccess(lines) +enddef + +" Test for extending an imported class +def Test_extend_imported_class() + var lines =<< trim END + vim9script + export class Imp_C1 + def Fn1(): number + return 5 + enddef + endclass + END + writefile(lines, 'Xextendimportclass.vim', 'D') + + lines =<< trim END + vim9script + import './Xextendimportclass.vim' as XClass + + class A extends XClass.Imp_C1 + endclass + var a = A.new() + assert_equal(5, a.Fn1()) + END + v9.CheckScriptSuccess(lines) +enddef + def Test_abstract_class() var lines =<< trim END vim9script diff --git a/src/version.c b/src/version.c index ad5bda644d..a6a54f2270 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2161, /**/ 2160, /**/ diff --git a/src/vim9class.c b/src/vim9class.c index 4b065c8590..2c5e1dffa3 100644 --- a/src/vim9class.c +++ b/src/vim9class.c @@ -1304,6 +1304,24 @@ add_classfuncs_objmethods( return OK; } +/* + * Return the end of the class name starting at "arg". Valid characters in a + * class name are alphanumeric characters and "_". Also handles imported class + * names. + */ + static char_u * +find_class_name_end(char_u *arg) +{ + char_u *end = arg; + + while (ASCII_ISALNUM(*end) || *end == '_' + || (*end == '.' && (ASCII_ISALNUM(end[1]) || end[1] == '_'))) + ++end; + + return end; +} + + /* * Handle ":class" and ":abstract class" up to ":endclass". * Handle ":interface" up to ":endinterface". @@ -1383,7 +1401,8 @@ ex_class(exarg_T *eap) goto early_ret; } arg = skipwhite(arg + 7); - char_u *end = find_name_end(arg, NULL, NULL, FNE_CHECK_START); + + char_u *end = find_class_name_end(arg); if (!IS_WHITE_OR_NUL(*end)) { semsg(_(e_white_space_required_after_name_str), arg); @@ -1413,8 +1432,7 @@ ex_class(exarg_T *eap) for (;;) { - char_u *impl_end = find_name_end(arg, NULL, NULL, - FNE_CHECK_START); + char_u *impl_end = find_class_name_end(arg); if ((!IS_WHITE_OR_NUL(*impl_end) && *impl_end != ',') || (*impl_end == ',' && !IS_WHITE_OR_NUL(*(impl_end + 1)))) From 2a71b54d35361f3f0c24db88c672b426f8acc7b7 Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Thu, 14 Dec 2023 20:03:03 +0100 Subject: [PATCH 026/120] patch 9.0.2162: Vim9: type documentation out-dated Problem: Vim9: type documentation out-dated Solution: Update documentation, fix typo in type alias definition closes: #13684 Signed-off-by: Yegappan Lakshmanan Signed-off-by: Christian Brabandt --- runtime/doc/builtin.txt | 1 + runtime/doc/eval.txt | 2 ++ runtime/doc/tags | 14 ++++++++++++++ runtime/doc/vim9class.txt | 36 +++++++++++++++++++++++++++++------- src/version.c | 2 ++ src/vim.h | 2 +- 6 files changed, 49 insertions(+), 8 deletions(-) diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index c9b9938dd9..657fe8dbd6 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -10181,6 +10181,7 @@ type({expr}) The result is a Number representing the type of {expr}. Blob: 10 |v:t_blob| Class: 12 |v:t_class| Object: 13 |v:t_object| + Typealias: 14 |v:t_typealias| For backward compatibility, this method can be used: > :if type(myvar) == type(0) :if type(myvar) == type("") diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 5d61035f55..2a4bd4c7d5 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -2558,6 +2558,8 @@ v:t_blob Value of |Blob| type. Read-only. See: |type()| v:t_class Value of |class| type. Read-only. See: |type()| *v:t_object* *t_object-variable* v:t_object Value of |object| type. Read-only. See: |type()| + *v:t_typealias* *t_typealias-variable* +v:t_typealias Value of |typealias| type. Read-only. See: |type()| *v:termresponse* *termresponse-variable* v:termresponse The escape sequence returned by the terminal for the |t_RV| diff --git a/runtime/doc/tags b/runtime/doc/tags index 9c641f52d3..fdda06b7e1 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -4491,7 +4491,19 @@ E139 message.txt /*E139* E1390 vim9class.txt /*E1390* E1391 eval.txt /*E1391* E1392 eval.txt /*E1392* +E1393 vim9class.txt /*E1393* +E1394 vim9class.txt /*E1394* +E1395 vim9class.txt /*E1395* +E1396 vim9class.txt /*E1396* +E1397 vim9class.txt /*E1397* +E1398 vim9class.txt /*E1398* +E1399 vim9class.txt /*E1399* E140 message.txt /*E140* +E1400 vim9class.txt /*E1400* +E1401 vim9class.txt /*E1401* +E1402 vim9class.txt /*E1402* +E1403 vim9class.txt /*E1403* +E1407 vim9class.txt /*E1407* E141 message.txt /*E141* E142 message.txt /*E142* E143 autocmd.txt /*E143* @@ -10285,6 +10297,7 @@ t_ti term.txt /*t_ti* t_tp version4.txt /*t_tp* t_ts term.txt /*t_ts* t_ts_old version4.txt /*t_ts_old* +t_typealias-variable eval.txt /*t_typealias-variable* t_u7 term.txt /*t_u7* t_ue term.txt /*t_ue* t_undo version4.txt /*t_undo* @@ -10785,6 +10798,7 @@ v:t_none eval.txt /*v:t_none* v:t_number eval.txt /*v:t_number* v:t_object eval.txt /*v:t_object* v:t_string eval.txt /*v:t_string* +v:t_typealias eval.txt /*v:t_typealias* v:termblinkresp eval.txt /*v:termblinkresp* v:termrbgresp eval.txt /*v:termrbgresp* v:termresponse eval.txt /*v:termresponse* diff --git a/runtime/doc/vim9class.txt b/runtime/doc/vim9class.txt index f7ce914628..c0fc7cb037 100644 --- a/runtime/doc/vim9class.txt +++ b/runtime/doc/vim9class.txt @@ -752,16 +752,38 @@ constructor methods. 7. Type definition *Vim9-type* *:type* -A type definition is giving a name to a type specification. This also known -type alias. For Example: > + *E1393* *E1395* *E1396* *E1397* *E1398* +A type definition is giving a name to a type specification. This is also +known as a "type alias". The type alias can be used wherever a built-in type +can be used. Example: > - :type ListOfStrings = list + type ListOfStrings = list + var s: ListOfStrings = ['a', 'b'] -The type alias can be used wherever a built-in type can be used. The type -alias name must start with an upper case character. A type alias can be -created only at the script level and not inside a function. A type alias can -be exported and used across scripts. + def ProcessStr(str: ListOfStrings): ListOfStrings + return str + enddef + echo ProcessStr(s) +< + *E1394* +A type alias name must start with an upper case character. Only existing +types can be aliased. + *E1399* +A type alias can be created only at the script level and not inside a +function. A type alias can be exported and used across scripts. + + *E1400* *E1401* *E1402* *E1403* *E1407* +A type alias cannot be used as an expression. A type alias cannot be used in +the left-hand-side of an assignment. + +For a type alias name, the |typename()| function returns the type that is +aliased: > + + type ListOfStudents = list> + echo typename(ListOfStudents) + typealias>> +< ============================================================================== 8. Enum *Vim9-enum* *:enum* *:endenum* diff --git a/src/version.c b/src/version.c index a6a54f2270..6813d54110 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2162, /**/ 2161, /**/ diff --git a/src/vim.h b/src/vim.h index 2d5ae99cb4..3aa04f5548 100644 --- a/src/vim.h +++ b/src/vim.h @@ -2181,7 +2181,7 @@ typedef int sock_T; #define VAR_TYPE_INSTR 11 #define VAR_TYPE_CLASS 12 #define VAR_TYPE_OBJECT 13 -#define VAR_TYPE_TYPEALIAS 15 +#define VAR_TYPE_TYPEALIAS 14 #define DICT_MAXNEST 100 // maximum nesting of lists and dicts From fa831102c38c9192edf3aaf0cbcaff9ee5e006ac Mon Sep 17 00:00:00 2001 From: Ernie Rael Date: Thu, 14 Dec 2023 20:06:39 +0100 Subject: [PATCH 027/120] patch 9.0.2163: Vim9: type can be assigned to list/dict Problem: Vim9: type can be assigned to list/dict Solution: Prevent assigning a `type` to a `list` or `dict` closes: #13683 Signed-off-by: Ernie Rael Signed-off-by: Christian Brabandt --- src/dict.c | 9 +++ src/list.c | 6 ++ src/testdir/test_vim9_assign.vim | 90 +++++++++++++++++++++++++++++ src/testdir/test_vim9_class.vim | 2 +- src/testdir/test_vim9_typealias.vim | 2 +- src/version.c | 2 + src/vim9instr.c | 6 +- src/vim9type.c | 15 +++-- 8 files changed, 120 insertions(+), 12 deletions(-) diff --git a/src/dict.c b/src/dict.c index ce807350cd..cb22b42c91 100644 --- a/src/dict.c +++ b/src/dict.c @@ -1015,6 +1015,15 @@ eval_dict(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int literal) clear_tv(&tvkey); goto failret; } + if (check_typval_is_value(&tv) == FAIL) + { + if (evaluate) + { + clear_tv(&tvkey); + clear_tv(&tv); + } + goto failret; + } if (evaluate) { item = dict_find(d, key, -1); diff --git a/src/list.c b/src/list.c index ce1ccaa1c0..b50cb03c98 100644 --- a/src/list.c +++ b/src/list.c @@ -1576,6 +1576,12 @@ eval_list(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error) { if (eval1(arg, &tv, evalarg) == FAIL) // recursive! goto failret; + if (check_typval_is_value(&tv) == FAIL) + { + if (evaluate) + clear_tv(&tv); + goto failret; + } if (evaluate) { item = listitem_alloc(); diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim index e288d0306e..38504f1af9 100644 --- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -3361,4 +3361,94 @@ def Test_assign_to_any() endfor enddef +def Test_assign_type_to_list_dict() + var lines =<< trim END + vim9script + class C + endclass + + var x = [C] + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + lines =<< trim END + vim9script + class C + endclass + type T = C + + def F() + var x = [3, T, C] + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + lines =<< trim END + vim9script + type T = number + + def F() + var x = [3, T] + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value') + + lines =<< trim END + vim9script + class C + endclass + + var x = {e: C} + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + lines =<< trim END + vim9script + class C + endclass + + def F() + var x = {e: C} + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + lines =<< trim END + vim9script + type T = number + + def F() + var x = {e: T} + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value') + + lines =<< trim END + vim9script + class C + endclass + + def F() + var x = {e: [C]} + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + lines =<< trim END + vim9script + type T = number + + def F() + var x = {e: [T]} + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value') +enddef + " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index c1965880cf..5a9b0f8884 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -190,7 +190,7 @@ def Test_class_basic() endclass sort([1.1, A], 'f') END - v9.CheckSourceFailure(lines, 'E1321: Using a Class as a Float', 4) + v9.CheckSourceFailure(lines, 'E1405: Class "A" cannot be used as a value', 4) # Test for using object as a float lines =<< trim END diff --git a/src/testdir/test_vim9_typealias.vim b/src/testdir/test_vim9_typealias.vim index 20829340f2..11aa47aa63 100644 --- a/src/testdir/test_vim9_typealias.vim +++ b/src/testdir/test_vim9_typealias.vim @@ -277,7 +277,7 @@ def Test_typealias() type B = number sort([1.1, B], 'f') END - v9.CheckSourceFailure(lines, 'E1401: Using type alias "B" as a Float', 3) + v9.CheckSourceFailure(lines, 'E1403: Type alias "B" cannot be used as a value', 3) # Creating a typealias in a def function lines =<< trim END diff --git a/src/version.c b/src/version.c index 6813d54110..a4b4edfdc2 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2163, /**/ 2162, /**/ diff --git a/src/vim9instr.c b/src/vim9instr.c index 3547d42f4a..12c83df9b8 100644 --- a/src/vim9instr.c +++ b/src/vim9instr.c @@ -1333,7 +1333,8 @@ generate_NEWLIST(cctx_T *cctx, int count, int use_null) // Get the member type and the declared member type from all the items on // the stack. - member_type = get_member_type_from_stack(count, 1, cctx); + if ((member_type = get_member_type_from_stack(count, 1, cctx)) == NULL) + return FAIL; type = get_list_type(member_type, cctx->ctx_type_list); decl_type = get_list_type(&t_any, cctx->ctx_type_list); @@ -1361,7 +1362,8 @@ generate_NEWDICT(cctx_T *cctx, int count, int use_null) return FAIL; isn->isn_arg.number = use_null ? -1 : count; - member_type = get_member_type_from_stack(count, 2, cctx); + if ((member_type = get_member_type_from_stack(count, 2, cctx)) == NULL) + return FAIL; type = get_dict_type(member_type, cctx->ctx_type_list); decl_type = get_dict_type(&t_any, cctx->ctx_type_list); diff --git a/src/vim9type.c b/src/vim9type.c index fec2bf9d3e..8840c37ccc 100644 --- a/src/vim9type.c +++ b/src/vim9type.c @@ -1660,17 +1660,16 @@ get_member_type_from_stack( // Use "unknown" for an empty list or dict. if (count == 0) return &t_unknown; - - // Use the first value type for the list member type, then find the common - // type from following items. + // Find the common type from following items. typep = ((type2_T *)stack->ga_data) + stack->ga_len; - result = (typep -(count * skip) + skip - 1)->type_curr; - for (i = 1; i < count; ++i) + result = &t_unknown; + for (i = 0; i < count; ++i) { - if (result == &t_any) - break; // won't get more common type = (typep -((count - i) * skip) + skip - 1)->type_curr; - common_type(type, result, &result, type_gap); + if (check_type_is_value(type) == FAIL) + return NULL; + if (result != &t_any) + common_type(type, result, &result, type_gap); } return result; From 9a775b4a2ae658e61f9d6582de72ea7a1b241aaa Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Thu, 14 Dec 2023 20:09:07 +0100 Subject: [PATCH 028/120] runtime(netrw): escape curdir in BrowseUpDir (#13681) fixes #13678 Signed-off-by: Christian Brabandt --- runtime/autoload/netrw.vim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim index db66f5d851..d22e59d36c 100644 --- a/runtime/autoload/netrw.vim +++ b/runtime/autoload/netrw.vim @@ -5315,7 +5315,8 @@ fun! s:NetrwBrowseUpDir(islocal) endif call s:RestorePosn(s:netrw_posn) let curdir= substitute(curdir,'^.*[\/]','','') - call search('\<'.curdir.'/','wc') + let curdir= '\<'. escape(curdir, '~'). '/' + call search(curdir,'wc') endif " call Dret("s:NetrwBrowseUpDir") endfun From b077b58809f6bd1078f409829cc1964b8475f9fc Mon Sep 17 00:00:00 2001 From: Ernie Rael Date: Thu, 14 Dec 2023 20:11:44 +0100 Subject: [PATCH 029/120] patch 9.0.2164: Vim9: can use type a func arg/return value Problem: Vim9: can use type a func arg/return value Solution: Check if using type as function argument or return value closes: #13675 Signed-off-by: Ernie Rael Signed-off-by: Christian Brabandt --- src/proto/userfunc.pro | 2 +- src/testdir/test_vim9_assign.vim | 4 +- src/testdir/test_vim9_class.vim | 2 +- src/testdir/test_vim9_typealias.vim | 234 ++++++++++++++++++++++++++++ src/userfunc.c | 20 ++- src/version.c | 2 + src/vim9class.c | 2 +- src/vim9cmds.c | 2 + src/vim9execute.c | 9 ++ src/vim9instr.c | 4 + 10 files changed, 271 insertions(+), 10 deletions(-) diff --git a/src/proto/userfunc.pro b/src/proto/userfunc.pro index 7b4129b470..e393c04707 100644 --- a/src/proto/userfunc.pro +++ b/src/proto/userfunc.pro @@ -7,7 +7,7 @@ char_u *register_cfunc(cfunc_T cb, cfunc_free_T cb_free, void *state); int get_lambda_tv(char_u **arg, typval_T *rettv, int types_optional, evalarg_T *evalarg); char_u *deref_func_name(char_u *name, int *lenp, partial_T **partialp, type_T **type, int no_autoload, int new_function, int *found_var); void emsg_funcname(char *ermsg, char_u *name); -int get_func_arguments(char_u **arg, evalarg_T *evalarg, int partial_argc, typval_T *argvars, int *argcount); +int get_func_arguments(char_u **arg, evalarg_T *evalarg, int partial_argc, typval_T *argvars, int *argcount, int is_builtin); int get_func_tv(char_u *name, int len, typval_T *rettv, char_u **arg, evalarg_T *evalarg, funcexe_T *funcexe); char_u *fname_trans_sid(char_u *name, char_u *fname_buf, char_u **tofree, funcerror_T *error); void func_name_with_sid(char_u *name, int sid, char_u *buffer); diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim index 38504f1af9..d582000be1 100644 --- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -3197,7 +3197,7 @@ def Test_func_argtype_check() assert_fails('IntArg(j)', 'E1013: Argument 1: type mismatch, expected number but got job') assert_fails('IntArg(ch)', 'E1013: Argument 1: type mismatch, expected number but got channel') endif - assert_fails('IntArg(A)', 'E1013: Argument 1: type mismatch, expected number but got class') + assert_fails('IntArg(A)', 'E1405: Class "A" cannot be used as a value') assert_fails('IntArg(o)', 'E1013: Argument 1: type mismatch, expected number but got object') # Passing a number to functions accepting different argument types @@ -3262,7 +3262,7 @@ def Test_func_argtype_check() v9.CheckSourceFailure(lines, 'E1013: Argument 1: type mismatch, expected number but got channel', 2) endif lines = pre_lines + ['IntArg(A)'] + post_lines - v9.CheckSourceFailure(lines, 'E1013: Argument 1: type mismatch, expected number but got class', 1) + v9.CheckSourceFailure(lines, 'E1405: Class "A" cannot be used as a value', 1) lines = pre_lines + ['var o: A = A.new()', 'IntArg(o)'] + post_lines v9.CheckSourceFailure(lines, 'E1013: Argument 1: type mismatch, expected number but got object', 2) enddef diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index 5a9b0f8884..6f9723dfae 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -4149,7 +4149,7 @@ def Test_lockvar_argument() Lock2(C) END - v9.CheckSourceSuccess(lines) + v9.CheckSourceFailure(lines, 'E1405: Class "C" cannot be used as a value') # Lock an object. lines =<< trim END diff --git a/src/testdir/test_vim9_typealias.vim b/src/testdir/test_vim9_typealias.vim index 11aa47aa63..8843cb5d1a 100644 --- a/src/testdir/test_vim9_typealias.vim +++ b/src/testdir/test_vim9_typealias.vim @@ -546,4 +546,238 @@ def Test_typealias_class() v9.CheckScriptSuccess(lines) enddef +" Test for typealias as function arg and return value +def Test_type_as_func_argument_or_return_value() + # check typealias as arg, function call in script level + var lines =<< trim END + vim9script + type A = number + def Foo(arg: any) + enddef + Foo(A) + END + v9.CheckScriptFailure(lines, 'E1403: Type alias "A" cannot be used as a value', 5) + + # check typealias as function return, function call in script level + lines =<< trim END + vim9script + type A = number + def Foo(): any + return A + enddef + Foo() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value', 1) + + # check typealias as arg, function call in :def + lines =<< trim END + vim9script + type A = number + def Foo(arg: any) + enddef + def F() + Foo(A) + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value', 1) + + # check typealias as function return, function call in :def + lines =<< trim END + vim9script + type A = number + def Foo(): any + return A + enddef + def F() + Foo() + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value', 1) + + # check funcref using typealias as arg at script level + lines =<< trim END + vim9script + type A = number + def F(arg: any) + echo typename(arg) + enddef + var Fref: func(any) + Fref = F + + Fref(A) + END + v9.CheckScriptFailure(lines, 'E1403: Type alias "A" cannot be used as a value', 9) + + # check funcref using typealias as arg in :def + lines =<< trim END + vim9script + type A = number + def F(arg: any) + echo typename(arg) + enddef + var Fref: func(any) + Fref = F + + def G() + Fref(A) + enddef + G() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value', 1) + + # check funcref using typealias as return + lines =<< trim END + vim9script + type A = number + def F(): any + return A + enddef + var Fref: func(): any + Fref = F + + Fref() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value', 1) + + # check defered function using typealias as arg + lines =<< trim END + vim9script + type A = number + def F(arg: any) + enddef + def G() + defer F(A) + enddef + G() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value', 1) +enddef + +" Test for class typealias as function arg and return value +def Test_class_as_func_argument_or_return_value() + # check class typealias as arg, function call in script level + var lines =<< trim END + vim9script + class C + endclass + type A = C + def Foo(arg: any) + enddef + Foo(A) + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value', 7) + + # check class typealias as function return, function call in script level + lines =<< trim END + vim9script + class C + endclass + type A = C + def Foo(): any + return A + enddef + Foo() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value', 1) + + # check class typealias as arg, function call in :def + lines =<< trim END + vim9script + class C + endclass + type A = C + def Foo(arg: any) + enddef + def F() + Foo(A) + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value', 1) + + # check class typealias as function return, function call in :def + lines =<< trim END + vim9script + class C + endclass + type A = C + def Foo(): any + return A + enddef + def F() + Foo() + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value', 1) + + # check funcref using class typealias as arg at script level + lines =<< trim END + vim9script + class C + endclass + type A = C + def F(arg: any) + echo typename(arg) + enddef + var Fref: func(any) + Fref = F + + Fref(A) + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value', 11) + + # check funcref using class typealias as arg in :def + lines =<< trim END + vim9script + class C + endclass + type A = C + def F(arg: any) + echo typename(arg) + enddef + var Fref: func(any) + Fref = F + + def G() + Fref(A) + enddef + G() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value', 1) + + # check funcref using class typealias as return + lines =<< trim END + vim9script + class C + endclass + type A = C + def F(): any + return A + enddef + var Fref: func(): any + Fref = F + + Fref() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value', 1) + + # check defered function using class typealias as arg + lines =<< trim END + vim9script + class C + endclass + type A = C + def F(arg: any) + enddef + def G() + defer F(A) + enddef + G() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value', 1) +enddef + " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker diff --git a/src/userfunc.c b/src/userfunc.c index 410658b1ea..1580a37c7a 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -1905,7 +1905,8 @@ get_func_arguments( evalarg_T *evalarg, int partial_argc, typval_T *argvars, - int *argcount) + int *argcount, + int is_builtin) { char_u *argp = *arg; int ret = OK; @@ -1920,12 +1921,20 @@ get_func_arguments( if (*argp == ')' || *argp == ',' || *argp == NUL) break; - if (eval1(&argp, &argvars[*argcount], evalarg) == FAIL) + + int arg_idx = *argcount; + if (eval1(&argp, &argvars[arg_idx], evalarg) == FAIL) { ret = FAIL; break; } ++*argcount; + if (!is_builtin && check_typval_is_value(&argvars[arg_idx]) == FAIL) + { + ret = FAIL; + break; + } + // The comma should come right after the argument, but this wasn't // checked previously, thus only enforce it in Vim9 script. if (vim9script) @@ -1985,7 +1994,7 @@ get_func_tv( argp = *arg; ret = get_func_arguments(&argp, evalarg, (funcexe->fe_partial == NULL ? 0 : funcexe->fe_partial->pt_argc), - argvars, &argcount); + argvars, &argcount, builtin_function(name, -1)); if (ret == OK) { @@ -6125,8 +6134,9 @@ ex_defer_inner( copy_tv(&partial->pt_argv[i], &argvars[i]); } } + int is_builtin = builtin_function(name, -1); r = get_func_arguments(arg, evalarg, FALSE, - argvars + partial_argc, &argcount); + argvars + partial_argc, &argcount, is_builtin); argcount += partial_argc; if (r == OK) @@ -6136,7 +6146,7 @@ ex_defer_inner( // Check that the arguments are OK for the types of the funcref. r = check_argument_types(type, argvars, argcount, NULL, name); } - else if (builtin_function(name, -1)) + else if (is_builtin) { int idx = find_internal_func(name); diff --git a/src/version.c b/src/version.c index a4b4edfdc2..6424f7fa9e 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2164, /**/ 2163, /**/ diff --git a/src/vim9class.c b/src/vim9class.c index 2c5e1dffa3..b19f8c96f2 100644 --- a/src/vim9class.c +++ b/src/vim9class.c @@ -2342,7 +2342,7 @@ call_oc_method( } char_u *argp = name_end; - int ret = get_func_arguments(&argp, evalarg, 0, argvars, &argcount); + int ret = get_func_arguments(&argp, evalarg, 0, argvars, &argcount, FALSE); if (ret == FAIL) return FAIL; diff --git a/src/vim9cmds.c b/src/vim9cmds.c index 92605cff32..392bab4120 100644 --- a/src/vim9cmds.c +++ b/src/vim9cmds.c @@ -2661,6 +2661,8 @@ compile_return(char_u *arg, int check_return_type, int legacy, cctx_T *cctx) // for an inline function without a specified return type. Set the // return type here. stack_type = get_type_on_stack(cctx, 0); + if (check_type_is_value(stack_type) == FAIL) + return NULL; if ((check_return_type && (cctx->ctx_ufunc->uf_ret_type == NULL || cctx->ctx_ufunc->uf_ret_type == &t_unknown)) || (!check_return_type diff --git a/src/vim9execute.c b/src/vim9execute.c index d357fc42c5..882b13c61a 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -398,6 +398,9 @@ check_ufunc_arg_types(ufunc_T *ufunc, int argcount, int off, ectx_T *ectx) if (argv[i].v_type == VAR_SPECIAL && argv[i].vval.v_number == VVAL_NONE) continue; + // only pass values to user functions, never types + if (check_typval_is_value(&argv[i]) == FAIL) + return FAIL; if (i < ufunc->uf_args.ga_len && ufunc->uf_arg_types != NULL) type = ufunc->uf_arg_types[i]; @@ -4462,6 +4465,12 @@ exec_instructions(ectx_T *ectx) garray_T *trystack = &ectx->ec_trystack; trycmd_T *trycmd = NULL; + /////////////////////////////////////////////////// + // TODO: If FAIL, line number in output not correct + /////////////////////////////////////////////////// + if (check_typval_is_value(STACK_TV_BOT(-1)) == FAIL) + goto theend; + if (trystack->ga_len > 0) trycmd = ((trycmd_T *)trystack->ga_data) + trystack->ga_len - 1; diff --git a/src/vim9instr.c b/src/vim9instr.c index 12c83df9b8..b7cad7656b 100644 --- a/src/vim9instr.c +++ b/src/vim9instr.c @@ -1821,6 +1821,8 @@ generate_CALL( type_T *actual; actual = get_type_on_stack(cctx, argcount - i - 1); + if (check_type_is_value(actual) == FAIL) + return FAIL; if (actual->tt_type == VAR_SPECIAL && i >= regular_args - ufunc->uf_def_args.ga_len) { @@ -1960,6 +1962,8 @@ check_func_args_from_type( type_T *actual = get_type_on_stack(cctx, -1 - offset); type_T *expected; + if (check_type_is_value(actual) == FAIL) + return FAIL; if (varargs && i >= type->tt_argcount - 1) { expected = type->tt_args[type->tt_argcount - 1]; From a8f7f92b56b42ea6a568eca889c48091f47fb429 Mon Sep 17 00:00:00 2001 From: Ernie Rael Date: Thu, 14 Dec 2023 20:17:04 +0100 Subject: [PATCH 030/120] patch 9.0.2165: Vim9: can simplify arg type checking code Problem: Vim9: can simplify arg type checking code Solution: In `f_argcheck` array use `arg_any`, instead of NULL closes: #13674 Signed-off-by: Ernie Rael Signed-off-by: Christian Brabandt --- src/evalfunc.c | 88 +++++++++++++++++++++++++++----------------------- src/version.c | 2 ++ 2 files changed, 49 insertions(+), 41 deletions(-) diff --git a/src/evalfunc.c b/src/evalfunc.c index 84d0a338ab..a8d8d2c587 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -205,6 +205,8 @@ typedef struct { // A function to check one argument type. The first argument is the type to // check. If needed, other argument types can be obtained with the context. // E.g. if "arg_idx" is 1, then (type - 1) is the first argument type. +// NOTE: Use "arg_any", not NULL, in funcentry_T.f_argcheck array +// to accept an argument of any type. typedef int (*argcheck_T)(type_T *, type_T *, argcontext_T *); /* @@ -253,6 +255,17 @@ arg_type_modifiable(type_T *type, int arg_idx) return FAIL; } +/* + * Return OK for any type unconditionally. + */ + static int +arg_any(type_T *type UNUSED, + type_T *decl_type UNUSED, + argcontext_T *context UNUSED) +{ + return OK; +} + /* * Check "type" is a float or a number. */ @@ -1067,8 +1080,8 @@ static argcheck_T arg1_string[] = {arg_string}; static argcheck_T arg1_string_or_list_any[] = {arg_string_or_list_any}; static argcheck_T arg1_string_or_list_string[] = {arg_string_or_list_string}; static argcheck_T arg1_string_or_nr[] = {arg_string_or_nr}; -static argcheck_T arg2_any_buffer[] = {NULL, arg_buffer}; -static argcheck_T arg2_buffer_any[] = {arg_buffer, NULL}; +static argcheck_T arg2_any_buffer[] = {arg_any, arg_buffer}; +static argcheck_T arg2_buffer_any[] = {arg_buffer, arg_any}; static argcheck_T arg2_buffer_bool[] = {arg_buffer, arg_bool}; static argcheck_T arg2_buffer_list_any[] = {arg_buffer, arg_list_any}; static argcheck_T arg2_buffer_lnum[] = {arg_buffer, arg_lnum}; @@ -1090,7 +1103,7 @@ static argcheck_T arg2_listblobmod_item[] = {arg_list_or_blob_mod, arg_item_of_p static argcheck_T arg2_lnum[] = {arg_lnum, arg_lnum}; static argcheck_T arg2_lnum_number[] = {arg_lnum, arg_number}; static argcheck_T arg2_number[] = {arg_number, arg_number}; -static argcheck_T arg2_number_any[] = {arg_number, NULL}; +static argcheck_T arg2_number_any[] = {arg_number, arg_any}; static argcheck_T arg2_number_bool[] = {arg_number, arg_bool}; static argcheck_T arg2_number_dict_any[] = {arg_number, arg_dict_any}; static argcheck_T arg2_number_list[] = {arg_number, arg_list_any}; @@ -1098,7 +1111,7 @@ static argcheck_T arg2_number_string[] = {arg_number, arg_string}; static argcheck_T arg2_number_string_or_list[] = {arg_number, arg_string_or_list_any}; static argcheck_T arg2_str_or_nr_or_list_dict[] = {arg_str_or_nr_or_list, arg_dict_any}; static argcheck_T arg2_string[] = {arg_string, arg_string}; -static argcheck_T arg2_string_any[] = {arg_string, NULL}; +static argcheck_T arg2_string_any[] = {arg_string, arg_any}; static argcheck_T arg2_string_bool[] = {arg_string, arg_bool}; static argcheck_T arg2_string_chan_or_job[] = {arg_string, arg_chan_or_job}; static argcheck_T arg2_string_dict[] = {arg_string, arg_dict_any}; @@ -1107,23 +1120,23 @@ static argcheck_T arg2_string_number[] = {arg_string, arg_number}; static argcheck_T arg2_string_or_list_dict[] = {arg_string_or_list_any, arg_dict_any}; static argcheck_T arg2_string_or_list_number[] = {arg_string_or_list_any, arg_number}; static argcheck_T arg2_string_string_or_number[] = {arg_string, arg_string_or_nr}; -static argcheck_T arg3_any_list_dict[] = {NULL, arg_list_any, arg_dict_any}; +static argcheck_T arg3_any_list_dict[] = {arg_any, arg_list_any, arg_dict_any}; static argcheck_T arg3_buffer_lnum_lnum[] = {arg_buffer, arg_lnum, arg_lnum}; static argcheck_T arg3_buffer_number_number[] = {arg_buffer, arg_number, arg_number}; -static argcheck_T arg3_buffer_string_any[] = {arg_buffer, arg_string, NULL}; +static argcheck_T arg3_buffer_string_any[] = {arg_buffer, arg_string, arg_any}; static argcheck_T arg3_buffer_string_dict[] = {arg_buffer, arg_string, arg_dict_any}; static argcheck_T arg3_dict_number_number[] = {arg_dict_any, arg_number, arg_number}; static argcheck_T arg3_list_string_dict[] = {arg_list_any, arg_string, arg_dict_any}; static argcheck_T arg3_lnum_number_bool[] = {arg_lnum, arg_number, arg_bool}; static argcheck_T arg3_number[] = {arg_number, arg_number, arg_number}; -static argcheck_T arg3_number_any_dict[] = {arg_number, NULL, arg_dict_any}; +static argcheck_T arg3_number_any_dict[] = {arg_number, arg_any, arg_dict_any}; static argcheck_T arg3_number_number_dict[] = {arg_number, arg_number, arg_dict_any}; -static argcheck_T arg3_number_string_any[] = {arg_number, arg_string, NULL}; +static argcheck_T arg3_number_string_any[] = {arg_number, arg_string, arg_any}; static argcheck_T arg3_number_string_buffer[] = {arg_number, arg_string, arg_buffer}; static argcheck_T arg3_number_string_string[] = {arg_number, arg_string, arg_string}; static argcheck_T arg3_string[] = {arg_string, arg_string, arg_string}; -static argcheck_T arg3_string_any_dict[] = {arg_string, NULL, arg_dict_any}; -static argcheck_T arg3_string_any_string[] = {arg_string, NULL, arg_string}; +static argcheck_T arg3_string_any_dict[] = {arg_string, arg_any, arg_dict_any}; +static argcheck_T arg3_string_any_string[] = {arg_string, arg_any, arg_string}; static argcheck_T arg3_string_bool_bool[] = {arg_string, arg_bool, arg_bool}; static argcheck_T arg3_string_number_bool[] = {arg_string, arg_number, arg_bool}; static argcheck_T arg3_string_number_number[] = {arg_string, arg_number, arg_number}; @@ -1132,23 +1145,23 @@ static argcheck_T arg3_string_or_list_bool_number[] = {arg_string_or_list_any, a static argcheck_T arg3_string_string_bool[] = {arg_string, arg_string, arg_bool}; static argcheck_T arg3_string_string_dict[] = {arg_string, arg_string, arg_dict_any}; static argcheck_T arg3_string_string_number[] = {arg_string, arg_string, arg_number}; -static argcheck_T arg4_number_number_string_any[] = {arg_number, arg_number, arg_string, NULL}; -static argcheck_T arg4_string_string_any_string[] = {arg_string, arg_string, NULL, arg_string}; +static argcheck_T arg4_number_number_string_any[] = {arg_number, arg_number, arg_string, arg_any}; +static argcheck_T arg4_string_string_any_string[] = {arg_string, arg_string, arg_any, arg_string}; static argcheck_T arg4_string_string_number_string[] = {arg_string, arg_string, arg_number, arg_string}; static argcheck_T arg4_string_number_bool_bool[] = {arg_string, arg_number, arg_bool, arg_bool}; /* Function specific argument types (not covered by the above) */ -static argcheck_T arg15_assert_fails[] = {arg_string_or_nr, arg_string_or_list_any, NULL, arg_number, arg_string}; +static argcheck_T arg15_assert_fails[] = {arg_string_or_nr, arg_string_or_list_any, arg_any, arg_number, arg_string}; static argcheck_T arg34_assert_inrange[] = {arg_float_or_nr, arg_float_or_nr, arg_float_or_nr, arg_string}; static argcheck_T arg4_browse[] = {arg_bool, arg_string, arg_string, arg_string}; -static argcheck_T arg23_chanexpr[] = {arg_chan_or_job, NULL, arg_dict_any}; +static argcheck_T arg23_chanexpr[] = {arg_chan_or_job, arg_any, arg_dict_any}; static argcheck_T arg23_chanraw[] = {arg_chan_or_job, arg_string_or_blob, arg_dict_any}; -static argcheck_T arg24_count[] = {arg_string_or_list_or_dict, NULL, arg_bool, arg_number}; +static argcheck_T arg24_count[] = {arg_string_or_list_or_dict, arg_any, arg_bool, arg_number}; static argcheck_T arg13_cursor[] = {arg_cursor1, arg_number, arg_number}; -static argcheck_T arg12_deepcopy[] = {NULL, arg_bool}; +static argcheck_T arg12_deepcopy[] = {arg_any, arg_bool}; static argcheck_T arg12_execute[] = {arg_string_or_list_string, arg_string}; static argcheck_T arg23_extend[] = {arg_list_or_dict_mod, arg_same_as_prev, arg_extend3}; static argcheck_T arg23_extendnew[] = {arg_list_or_dict, arg_same_struct_as_prev, arg_extend3}; -static argcheck_T arg23_get[] = {arg_get1, arg_string_or_nr, NULL}; +static argcheck_T arg23_get[] = {arg_get1, arg_string_or_nr, arg_any}; static argcheck_T arg14_glob[] = {arg_string, arg_bool, arg_bool, arg_bool}; static argcheck_T arg25_globpath[] = {arg_string, arg_string, arg_bool, arg_bool, arg_bool}; static argcheck_T arg24_index[] = {arg_list_or_blob, arg_item_of_prev, arg_number, arg_bool}; @@ -1160,18 +1173,18 @@ static argcheck_T arg14_maparg[] = {arg_string, arg_string, arg_bool, arg_bool}; static argcheck_T arg2_filter[] = {arg_list_or_dict_or_blob_or_string_mod, arg_filter_func}; static argcheck_T arg2_instanceof[] = {arg_object, varargs_class, NULL }; static argcheck_T arg2_map[] = {arg_list_or_dict_or_blob_or_string_mod, arg_map_func}; -static argcheck_T arg2_mapnew[] = {arg_list_or_dict_or_blob_or_string, NULL}; +static argcheck_T arg2_mapnew[] = {arg_list_or_dict_or_blob_or_string, arg_any}; static argcheck_T arg25_matchadd[] = {arg_string, arg_string, arg_number, arg_number, arg_dict_any}; static argcheck_T arg25_matchaddpos[] = {arg_string, arg_list_any, arg_number, arg_number, arg_dict_any}; -static argcheck_T arg119_printf[] = {arg_string_or_nr, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}; -static argcheck_T arg23_reduce[] = {arg_string_list_or_blob, NULL, NULL}; +static argcheck_T arg119_printf[] = {arg_string_or_nr, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any, arg_any}; +static argcheck_T arg23_reduce[] = {arg_string_list_or_blob, arg_any, arg_any}; static argcheck_T arg24_remote_expr[] = {arg_string, arg_string, arg_string, arg_number}; static argcheck_T arg23_remove[] = {arg_list_or_dict_or_blob_mod, arg_remove2, arg_number}; static argcheck_T arg2_repeat[] = {arg_repeat1, arg_number}; static argcheck_T arg15_search[] = {arg_string, arg_string, arg_number, arg_number, arg_string_or_func}; static argcheck_T arg37_searchpair[] = {arg_string, arg_string, arg_string, arg_string, arg_string_or_func, arg_number, arg_number}; static argcheck_T arg3_setbufline[] = {arg_buffer, arg_lnum, arg_str_or_nr_or_list}; -static argcheck_T arg2_setline[] = {arg_lnum, NULL}; +static argcheck_T arg2_setline[] = {arg_lnum, arg_any}; static argcheck_T arg24_setloclist[] = {arg_number, arg_list_any, arg_string, arg_dict_any}; static argcheck_T arg13_setqflist[] = {arg_list_any, arg_string, arg_dict_any}; static argcheck_T arg23_settagstack[] = {arg_number, arg_dict_any, arg_string}; @@ -1628,11 +1641,10 @@ ret_maparg(int argcount, * Array with names and number of arguments of all internal functions * MUST BE KEPT SORTED IN strcmp() ORDER FOR BINARY SEARCH! * - * The function may be varargs. In that case + * The builtin function may be varargs. In that case * - f_max_argc == VARGS - * - f_argcheck must be NULL terminated. Last non-null argument - * should check all the remaining args. - * NOTE: if varargs, there can only be one NULL in f_argcheck array. + * - For varargs, f_argcheck must be NULL terminated. The last non-null + * entry in f_argcheck should validate all the remaining args. */ typedef struct { @@ -1640,7 +1652,9 @@ typedef struct char f_min_argc; // minimal number of arguments char f_max_argc; // maximal number of arguments char f_argtype; // for method: FEARG_ values - argcheck_T *f_argcheck; // list of functions to check argument types + argcheck_T *f_argcheck; // list of functions to check argument types; + // use "arg_any" (not NULL) to accept an + // argument of any type type_T *(*f_retfunc)(int argcount, type2_T *argtypes, type_T **decl_type); // return type function @@ -3050,26 +3064,18 @@ internal_func_check_arg_types( if (argchecks == NULL) return OK; - int has_varargs = global_functions[idx].f_max_argc == VARGS; - argcontext_T context; context.arg_count = argcount; context.arg_types = types; context.arg_cctx = cctx; - for (int i = 0; i < argcount; ++i) - if (argchecks[i] == NULL) - { - if (has_varargs) - break; - } - else - { - context.arg_idx = i; - if (argchecks[i](types[i].type_curr, types[i].type_decl, - &context) == FAIL) - return FAIL; - } + for (int i = 0; i < argcount && argchecks[i] != NULL; ++i) + { + context.arg_idx = i; + if (argchecks[i](types[i].type_curr, types[i].type_decl, + &context) == FAIL) + return FAIL; + } return OK; } diff --git a/src/version.c b/src/version.c index 6424f7fa9e..6c9bb45062 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2165, /**/ 2164, /**/ From 549f8c0b4ebe47168c98f46c8b62b1eb33da7c9c Mon Sep 17 00:00:00 2001 From: Zdenek Dohnal Date: Thu, 14 Dec 2023 20:22:49 +0100 Subject: [PATCH 031/120] patch 9.0.2166: Memory leak in Configure Script when checking GTK Problem: Memory leak in Configure Script when checking GTK Solution: Free the allocated memory If the memory is not freed, GTK GUI VIM cannot be build with address sanitizer for debugging purposes - configure script will report missing GTK, because the testing file compilation fails due reported memory leak. closes: #13672 Signed-off-by: Zdenek Dohnal Signed-off-by: Christian Brabandt --- src/auto/configure | 3 +++ src/configure.ac | 3 +++ src/version.c | 2 ++ 3 files changed, 8 insertions(+) diff --git a/src/auto/configure b/src/auto/configure index 8582298ca8..70ebb33c4d 100755 --- a/src/auto/configure +++ b/src/auto/configure @@ -10136,9 +10136,12 @@ system ("touch conf.gtktest"); tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); + g_free(tmp_version); exit(1); } +g_free(tmp_version); + if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && diff --git a/src/configure.ac b/src/configure.ac index 2ee9b01827..ebe0d08f6e 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -2700,9 +2700,12 @@ system ("touch conf.gtktest"); tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); + g_free(tmp_version); exit(1); } +g_free(tmp_version); + if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && diff --git a/src/version.c b/src/version.c index 6c9bb45062..a2623b8c43 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2166, /**/ 2165, /**/ From 74da0ee0a24799a312a3a8a65858237185ef7a23 Mon Sep 17 00:00:00 2001 From: Doug Kearns Date: Thu, 14 Dec 2023 20:26:26 +0100 Subject: [PATCH 032/120] patch 9.0.2167: Vim9: not consistently using :var for declarations Problem: Vim9-script object/class variable declarations use syntax that is inconsistent with the rest of the language. Solution: Use :var to declare object and class variables. closes: #13670 Signed-off-by: Doug Kearns Signed-off-by: Christian Brabandt --- runtime/doc/vim9class.txt | 101 +-- src/errors.h | 11 +- src/testdir/test_vim9_builtin.vim | 2 +- src/testdir/test_vim9_class.vim | 1104 ++++++++++++++----------- src/testdir/test_vim9_disassemble.vim | 16 +- src/testdir/test_vim9_typealias.vim | 4 +- src/version.c | 2 + src/vim9class.c | 81 +- 8 files changed, 714 insertions(+), 607 deletions(-) diff --git a/runtime/doc/vim9class.txt b/runtime/doc/vim9class.txt index c0fc7cb037..cb4dd9e217 100644 --- a/runtime/doc/vim9class.txt +++ b/runtime/doc/vim9class.txt @@ -78,8 +78,8 @@ Let's start with a simple example: a class that stores a text position (see below for how to do this more efficiently): > class TextPosition - this.lnum: number - this.col: number + var lnum: number + var col: number def new(lnum: number, col: number) this.lnum = lnum @@ -156,8 +156,8 @@ On the other hand, if you do not want the object variables to be read directly from outside the class or its sub-classes, you can make them protected. This is done by prefixing an underscore to the name: > - this._lnum: number - this._col number + var _lnum: number + var _col number Now you need to provide methods to get the value of the protected variables. These are commonly called getters. We recommend using a name that starts with @@ -209,8 +209,8 @@ Many constructors take values for the object variables. Thus you very often see this pattern: > class SomeClass - this.lnum: number - this.col: number + var lnum: number + var col: number def new(lnum: number, col: number) this.lnum = lnum @@ -235,8 +235,8 @@ Putting together this way of using new() and making the variables public results in a much shorter class definition than what we started with: > class TextPosition - public this.lnum: number - public this.col: number + public var lnum: number + public var col: number def new(this.lnum, this.col) enddef @@ -277,8 +277,8 @@ Class members are declared with "static". They are used by the name without a prefix in the class where they are defined: > class OtherThing - this.size: number - static totalSize: number + var size: number + static var totalSize: number def new(this.size) totalSize += this.size @@ -297,9 +297,9 @@ underscore as the first character in the name, and it can be made public by prefixing "public": > class OtherThing - static total: number # anybody can read, only class can write - static _sum: number # only class can read and write - public static result: number # anybody can read and write + static var total: number # anybody can read, only class can write + static var _sum: number # only class can read and write + public static var result: number # anybody can read and write endclass < *class-method* @@ -308,8 +308,8 @@ variables but they have no access to the object variables, they cannot use the "this" keyword: > class OtherThing - this.size: number - static totalSize: number + var size: number + static var totalSize: number # Clear the total size and return the value it had before. static def ClearTotalSize(): number @@ -345,14 +345,14 @@ outside of the defining class: > vim9script class Vehicle - static nextID: number = 1000 + static var nextID: number = 1000 static def GetID(): number nextID += 1 return nextID enddef endclass class Car extends Vehicle - this.myID: number + var myID: number def new() this.myID = Vehicle.GetID() enddef @@ -380,20 +380,20 @@ it is. The Shape class functions as the base for a Square and a Triangle class, for which objects can be created. Example: > abstract class Shape - this.color = Color.Black - this.thickness = 10 + var color = Color.Black + var thickness = 10 endclass class Square extends Shape - this.size: number + var size: number def new(this.size) enddef endclass class Triangle extends Shape - this.base: number - this.height: number + var base: number + var height: number def new(this.base, this.height) enddef @@ -430,8 +430,8 @@ interface called HasSurface, which specifies one method Surface() that returns a number. This example extends the one above: > abstract class Shape - this.color = Color.Black - this.thickness = 10 + var color = Color.Black + var thickness = 10 endclass interface HasSurface @@ -439,7 +439,7 @@ a number. This example extends the one above: > endinterface class Square extends Shape implements HasSurface - this.size: number + var size: number def new(this.size) enddef @@ -450,8 +450,8 @@ a number. This example extends the one above: > endclass class Triangle extends Shape implements HasSurface - this.base: number - this.height: number + var base: number + var height: number def new(this.base, this.height) enddef @@ -598,13 +598,13 @@ Items in a class ~ *E1318* *E1325* *E1388* Inside a class, in between `:class` and `:endclass`, these items can appear: - An object variable declaration: > - this._protectedVariableName: memberType - this.readonlyVariableName: memberType - public this.readwriteVariableName: memberType + var _protectedVariableName: memberType + var readonlyVariableName: memberType + public var readwriteVariableName: memberType - A class variable declaration: > - static _protectedClassVariableName: memberType - static readonlyClassVariableName: memberType - static public readwriteClassVariableName: memberType + static var _protectedClassVariableName: memberType + static var readonlyClassVariableName: memberType + static var public readwriteClassVariableName: memberType - A constructor method: > def new(arguments) def newName(arguments) @@ -620,9 +620,9 @@ this explicitly with ": {type}". For simple types you can also use an initializer, such as "= 123", and Vim will see that the type is a number. Avoid doing this for more complex types and when the type will be incomplete. For example: > - this.nameList = [] + var nameList = [] This specifies a list, but the item type is unknown. Better use: > - this.nameList: list + var nameList: list The initialization isn't needed, the list is empty by default. *E1330* Some types cannot be used, such as "void", "null" and "v:none". @@ -646,7 +646,7 @@ An interface can declare methods with `:def`, including the arguments and return type, but without the body and without `:enddef`. Example: > interface HasSurface - this.size: number + var size: number def Surface(): number endinterface @@ -674,9 +674,9 @@ defined. This default constructor will have arguments for all the object variables, in the order they were specified. Thus if your class looks like: > class AutoNew - this.name: string - this.age: number - this.gender: Gender + var name: string + var age: number + var gender: Gender endclass Then the default constructor will be: > @@ -690,8 +690,8 @@ value for the object variables will be used. This is a more useful example, with default values: > class TextPosition - this.lnum: number = 1 - this.col: number = 1 + var lnum: number = 1 + var col: number = 1 endclass If you want the constructor to have mandatory arguments, you need to write it @@ -947,26 +947,26 @@ Following that Vim object variables could be declared like this: > Some users pointed out that this looks more like an assignment than a declaration. Adding "var" changes that: > class Point - var this.x: number - var this.y = 0 + var x: number + var y = 0 endclass We also need to be able to declare class variables using the "static" keyword. There we can also choose to leave out "var": > class Point - var this.x: number + var x: number static count = 0 endclass Or do use it, before "static": > class Point - var this.x: number + var x: number var static count = 0 endclass Or after "static": > class Point - var this.x: number + var x: number static var count = 0 endclass @@ -974,9 +974,16 @@ This is more in line with "static def Func()". There is no clear preference whether to use "var" or not. The two main reasons to leave it out are: -1. TypeScript, Java and other popular languages do not use it. +1. TypeScript and other popular languages do not use it. 2. Less clutter. +However, it is more common for languages to reuse their general variable and +function declaration syntax for class/object variables and methods. Vim9 also +reuses the general function declaration syntax for methods. So, for the sake +of consistency, we require "var" in these declarations. + +This also allows for a natural use of "final" and "const" in the future. + Using "ClassName.new()" to construct an object ~ diff --git a/src/errors.h b/src/errors.h index 7192514f0e..b6abf4a1d8 100644 --- a/src/errors.h +++ b/src/errors.h @@ -3402,11 +3402,12 @@ EXTERN char e_object_required_found_str[] INIT(= N_("E1327: Object required, found %s")); EXTERN char e_constructor_default_value_must_be_vnone_str[] INIT(= N_("E1328: Constructor default value must be v:none: %s")); -// E1329 unused +EXTERN char e_invalid_class_variable_declaration_str[] + INIT(= N_("E1329: Invalid class variable declaration: %s")); EXTERN char e_invalid_type_for_object_variable_str[] INIT(= N_("E1330: Invalid type for object variable: %s")); -EXTERN char e_public_must_be_followed_by_this_or_static[] - INIT(= N_("E1331: Public must be followed by \"this\" or \"static\"")); +EXTERN char e_public_must_be_followed_by_var_or_static[] + INIT(= N_("E1331: Public must be followed by \"var\" or \"static\"")); EXTERN char e_public_variable_name_cannot_start_with_underscore_str[] INIT(= N_("E1332: Public variable name cannot start with underscore: %s")); EXTERN char e_cannot_access_protected_variable_str[] @@ -3487,8 +3488,8 @@ EXTERN char e_cannot_access_protected_method_str[] INIT(= N_("E1366: Cannot access protected method: %s")); EXTERN char e_variable_str_of_interface_str_has_different_access[] INIT(= N_("E1367: Access level of variable \"%s\" of interface \"%s\" is different")); -EXTERN char e_static_cannot_be_followed_by_this[] - INIT(= N_("E1368: Static cannot be followed by \"this\" in a variable name")); +EXTERN char e_static_must_be_followed_by_var_or_def[] + INIT(= N_("E1368: Static must be followed by \"var\" or \"def\"")); EXTERN char e_duplicate_variable_str[] INIT(= N_("E1369: Duplicate variable: %s")); EXTERN char e_cannot_define_new_method_as_static[] diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim index 216118ec68..1267936885 100644 --- a/src/testdir/test_vim9_builtin.vim +++ b/src/testdir/test_vim9_builtin.vim @@ -4845,7 +4845,7 @@ def Test_values() vim9script class Foo - this.val: number + var val: number def Add() echo this.val enddef diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index 6f9723dfae..bb806cce91 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -67,6 +67,33 @@ def Test_class_basic() END v9.CheckSourceFailure(lines, "E488: Trailing characters: | echo 'done'", 3) + # Use old "this." prefixed member variable declaration syntax (without intialization) + lines =<< trim END + vim9script + class Something + this.count: number + endclass + END + v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this.count: number', 3) + + # Use old "this." prefixed member variable declaration syntax (with intialization) + lines =<< trim END + vim9script + class Something + this.count: number = 42 + endclass + END + v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this.count: number = 42', 3) + + # Use old "this." prefixed member variable declaration syntax (type inferred) + lines =<< trim END + vim9script + class Something + this.count = 42 + endclass + END + v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this.count = 42', 3) + # Use "this" without any member variable name lines =<< trim END vim9script @@ -74,7 +101,7 @@ def Test_class_basic() this endclass END - v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: this', 3) + v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this', 3) # Use "this." without any member variable name lines =<< trim END @@ -83,7 +110,7 @@ def Test_class_basic() this. endclass END - v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: this.', 3) + v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this.', 3) # Space between "this" and "." lines =<< trim END @@ -92,7 +119,7 @@ def Test_class_basic() this .count endclass END - v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: this .count', 3) + v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this .count', 3) # Space between "this." and the member variable name lines =<< trim END @@ -101,26 +128,44 @@ def Test_class_basic() this. count endclass END - v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: this. count', 3) + v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this. count', 3) # Use "that" instead of "this" lines =<< trim END vim9script class Something - this.count: number + var count: number that.count endclass END v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: that.count', 4) - # Member variable without a type or initialization + # Use "variable" instead of "var" for member variable declaration (without initialization) lines =<< trim END vim9script class Something - this.count + variable count: number endclass END - v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) + v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: variable count: number', 3) + + # Use "variable" instead of "var" for member variable declaration (with initialization) + lines =<< trim END + vim9script + class Something + variable count: number = 42 + endclass + END + v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: variable count: number = 42', 3) + + # Use "variable" instead of "var" for member variable declaration (type inferred) + lines =<< trim END + vim9script + class Something + variable count = 42 + endclass + END + v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: variable count = 42', 3) # Use a non-existing member variable in new() lines =<< trim END @@ -138,7 +183,7 @@ def Test_class_basic() lines =<< trim END vim9script class Something - this.count : number + var count : number endclass END v9.CheckSourceFailure(lines, 'E1059: No white space allowed before colon: count : number', 3) @@ -147,11 +192,38 @@ def Test_class_basic() lines =<< trim END vim9script class Something - this.count:number + var count:number endclass END v9.CheckSourceFailure(lines, "E1069: White space required after ':'", 3) + # Missing ":var" in a "var" member variable declaration (without initialization) + lines =<< trim END + vim9script + class Something + var: number + endclass + END + v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: var: number', 3) + + # Missing ":var" in a "var" member variable declaration (with initialization) + lines =<< trim END + vim9script + class Something + var: number = 42 + endclass + END + v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: var: number = 42', 3) + + # Missing ":var" in a "var" member variable declaration (type inferred) + lines =<< trim END + vim9script + class Something + var = 42 + endclass + END + v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: var = 42', 3) + # Test for unsupported comment specifier lines =<< trim END vim9script @@ -227,8 +299,8 @@ def Test_class_basic() vim9script class TextPosition - this.lnum: number - this.col: number + var lnum: number + var col: number # make a nicely formatted string def ToString(): string @@ -293,7 +365,7 @@ def Test_class_basic() lines =<< trim END vim9script class A - this.y = { + var y = { X: 1 } endclass @@ -312,7 +384,7 @@ def Test_class_def_method() enddef endclass END - v9.CheckSourceFailure(lines, 'E1331: Public must be followed by "this" or "static"', 3) + v9.CheckSourceFailure(lines, 'E1331: Public must be followed by "var" or "static"', 3) # Using the "public" keyword when defining a class method lines =<< trim END @@ -332,7 +404,7 @@ def Test_class_def_method() enddef endclass END - v9.CheckSourceFailure(lines, 'E1331: Public must be followed by "this" or "static"', 3) + v9.CheckSourceFailure(lines, 'E1331: Public must be followed by "var" or "static"', 3) # Using the "public" keyword when defining a class protected method lines =<< trim END @@ -415,7 +487,7 @@ def Test_class_interface_wrong_end() var lines =<< trim END vim9script abstract class SomeName - this.member = 'text' + var member = 'text' endinterface END v9.CheckSourceFailure(lines, 'E476: Invalid command: endinterface, expected endclass', 4) @@ -423,7 +495,7 @@ def Test_class_interface_wrong_end() lines =<< trim END vim9script export interface AnotherName - this.member: string + var member: string endclass END v9.CheckSourceFailure(lines, 'E476: Invalid command: endclass, expected endinterface', 4) @@ -435,7 +507,7 @@ def Test_object_not_set() vim9script class State - this.value = 'xyz' + var value = 'xyz' endclass var state: State @@ -449,7 +521,7 @@ def Test_object_not_set() vim9script class Class - this.id: string + var id: string def Method1() echo 'Method1' .. this.id enddef @@ -469,11 +541,11 @@ def Test_object_not_set() vim9script class Background - this.background = 'dark' + var background = 'dark' endclass class Colorscheme - this._bg: Background + var _bg: Background def GetBackground(): string return this._bg.background @@ -490,7 +562,7 @@ def Test_object_not_set() vim9script class Class - this.id: string + var id: string def Method1() echo 'Method1' .. this.id enddef @@ -552,8 +624,8 @@ def Test_class_member_initializer() vim9script class TextPosition - this.lnum: number = 1 - this.col: number = 1 + var lnum: number = 1 + var col: number = 1 # constructor with only the line number def new(lnum: number) @@ -588,11 +660,11 @@ def Test_member_any_used_as_object() vim9script class Inner - this.value: number = 0 + var value: number = 0 endclass class Outer - this.inner: any + var inner: any endclass def F(outer: Outer) @@ -611,11 +683,11 @@ def Test_member_any_used_as_object() vim9script class Inner - this._value: string = '' + var _value: string = '' endclass class Outer - this.inner: any + var inner: any endclass def F(outer: Outer) @@ -633,11 +705,11 @@ def Test_member_any_used_as_object() vim9script class Inner - this.value: string = '' + var value: string = '' endclass class Outer - this.inner: any + var inner: any endclass def F(outer: Outer) @@ -657,11 +729,11 @@ def Test_assignment_nested_type() vim9script class Inner - public this.value: number = 0 + public var value: number = 0 endclass class Outer - this.inner: Inner + var inner: Inner endclass def F(outer: Outer) @@ -689,11 +761,11 @@ def Test_assignment_nested_type() vim9script class Inner - this.value: number = 0 + var value: number = 0 endclass class Outer - this.inner: Inner + var inner: Inner endclass def F(outer: Outer) @@ -716,11 +788,11 @@ def Test_assignment_nested_type() vim9script class Inner - this.value: number = 0 + var value: number = 0 endclass class Outer - this.inner: Inner + var inner: Inner endclass def F(outer: Outer) @@ -741,7 +813,7 @@ def Test_assignment_with_operator() vim9script class Foo - public this.x: number + public var x: number def Add(n: number) this.x += n @@ -788,7 +860,7 @@ def Test_expr_after_using_object() vim9script class Something - this.label: string = '' + var label: string = '' endclass def Foo(): Something @@ -807,8 +879,8 @@ def Test_class_default_new() vim9script class TextPosition - this.lnum: number = 1 - this.col: number = 1 + var lnum: number = 1 + var col: number = 1 endclass var pos = TextPosition.new() @@ -832,9 +904,9 @@ def Test_class_default_new() lines =<< trim END vim9script class Person - this.name: string - this.age: number = 42 - this.education: string = "unknown" + var name: string + var age: number = 42 + var education: string = "unknown" def new(this.name, this.age = v:none, this.education = v:none) enddef @@ -855,9 +927,9 @@ def Test_class_default_new() lines =<< trim END vim9script class Person - this.name: string - this.age: number = 42 - this.education: string = "unknown" + var name: string + var age: number = 42 + var education: string = "unknown" def new(this.name, this.age = v:none, this.education = v:none) enddef @@ -872,7 +944,7 @@ def Test_class_default_new() lines =<< trim END vim9script class A - this.val: string + var val: string def new(this.val = 'a') enddef endclass @@ -885,8 +957,8 @@ def Test_class_new_with_object_member() vim9script class C - this.str: string - this.num: number + var str: string + var num: number def new(this.str, this.num) enddef def newVals(this.str, this.num) @@ -915,8 +987,8 @@ def Test_class_new_with_object_member() vim9script class C - this.str: string - this.num: number + var str: string + var num: number def new(this.str, this.num) enddef endclass @@ -937,8 +1009,8 @@ def Test_class_new_with_object_member() vim9script class C - this.str: string - this.num: number + var str: string + var num: number def newVals(this.str, this.num) enddef endclass @@ -959,7 +1031,7 @@ def Test_class_new_with_object_member() vim9script class C - this.str: string + var str: string def new(str: any) enddef endclass @@ -980,7 +1052,7 @@ def Test_class_new_with_object_member() lines =<< trim END vim9script class A - this.val = 10 + var val = 10 static def Foo(this.val: number) enddef endclass @@ -991,7 +1063,7 @@ def Test_class_new_with_object_member() lines =<< trim END vim9script class A - this.val = 10 + var val = 10 def Foo(this.val: number) enddef endclass @@ -1003,9 +1075,9 @@ def Test_class_object_member_inits() var lines =<< trim END vim9script class TextPosition - this.lnum: number - this.col = 1 - this.addcol: number = 2 + var lnum: number + var col = 1 + var addcol: number = 2 endclass var pos = TextPosition.new() @@ -1018,8 +1090,8 @@ def Test_class_object_member_inits() lines =<< trim END vim9script class TextPosition - this.lnum - this.col = 1 + var lnum + var col = 1 endclass END v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) @@ -1036,9 +1108,9 @@ def Test_class_object_member_inits() enddef class A - this.str1 = Init() - this.str2: string = Init() - this.col = 1 + var str1 = Init() + var str2: string = Init() + var col = 1 endclass assert_equal(init_count, 0) @@ -1051,7 +1123,7 @@ def Test_class_object_member_inits() lines =<< trim END vim9script class A - this.value = init_val + var value = init_val endclass var a = A.new() END @@ -1061,7 +1133,7 @@ def Test_class_object_member_inits() lines =<< trim END vim9script class A - this.value: void + var value: void endclass END v9.CheckSourceFailure(lines, 'E1330: Invalid type for object variable: void', 3) @@ -1072,9 +1144,9 @@ def Test_instance_variable_access() var lines =<< trim END vim9script class Triple - this._one = 1 - this.two = 2 - public this.three = 3 + var _one = 1 + var two = 2 + public var three = 3 def GetOne(): number return this._one @@ -1100,17 +1172,17 @@ def Test_instance_variable_access() lines =<< trim END vim9script class A - public this._val = 10 + public var _val = 10 endclass END - v9.CheckSourceFailure(lines, 'E1332: Public variable name cannot start with underscore: public this._val = 10', 3) + v9.CheckSourceFailure(lines, 'E1332: Public variable name cannot start with underscore: public var _val = 10', 3) lines =<< trim END vim9script class MyCar - this.make: string - this.age = 5 + var make: string + var age = 5 def new(make_arg: string) this.make = make_arg @@ -1145,7 +1217,7 @@ def Test_instance_variable_access() vim9script class MyCar - this.make: string + var make: string def new(make_arg: string) this.make = make_arg @@ -1161,7 +1233,7 @@ def Test_instance_variable_access() vim9script class Foo - this.x: list = [] + var x: list = [] def Add(n: number): any this.x->add(n) @@ -1187,25 +1259,25 @@ def Test_instance_variable_access() lines =<< trim END vim9script class Something - pub this.val = 1 + pub var val = 1 endclass END - v9.CheckSourceFailure(lines, 'E1065: Command cannot be shortened: pub this.val = 1', 3) + v9.CheckSourceFailure(lines, 'E1065: Command cannot be shortened: pub var val = 1', 3) - # Test for "public" keyword must be followed by "this" or "static". + # Test for "public" keyword must be followed by "var" or "static". lines =<< trim END vim9script class Something public val = 1 endclass END - v9.CheckSourceFailure(lines, 'E1331: Public must be followed by "this" or "static"', 3) + v9.CheckSourceFailure(lines, 'E1331: Public must be followed by "var" or "static"', 3) # Modify a instance variable using the class name in the script context lines =<< trim END vim9script class A - public this.val = 1 + public var val = 1 endclass A.val = 1 END @@ -1215,7 +1287,7 @@ def Test_instance_variable_access() lines =<< trim END vim9script class A - public this.val = 1 + public var val = 1 endclass var i = A.val END @@ -1225,7 +1297,7 @@ def Test_instance_variable_access() lines =<< trim END vim9script class A - public this.val = 1 + public var val = 1 endclass def T() A.val = 1 @@ -1238,7 +1310,7 @@ def Test_instance_variable_access() lines =<< trim END vim9script class A - public this.val = 1 + public var val = 1 endclass def T() var i = A.val @@ -1251,9 +1323,9 @@ def Test_instance_variable_access() lines =<< trim END vim9script class A - this.ro_obj_var = 10 - public this.rw_obj_var = 20 - this._priv_obj_var = 30 + var ro_obj_var = 10 + public var rw_obj_var = 20 + var _priv_obj_var = 30 endclass class B extends A @@ -1280,34 +1352,25 @@ def Test_class_variable_access() var lines =<< trim END vim9script class Something - stat this.val = 1 + stat var val = 1 endclass END - v9.CheckSourceFailure(lines, 'E1065: Command cannot be shortened: stat this.val = 1', 3) - - # Test for "static" cannot be followed by "this". - lines =<< trim END - vim9script - class Something - static this.val = 1 - endclass - END - v9.CheckSourceFailure(lines, 'E1368: Static cannot be followed by "this" in a variable name', 3) + v9.CheckSourceFailure(lines, 'E1065: Command cannot be shortened: stat var val = 1', 3) # Test for "static" cannot be followed by "public". lines =<< trim END vim9script class Something - static public val = 1 + static public var val = 1 endclass END - v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) + v9.CheckSourceFailure(lines, 'E1368: Static must be followed by "var" or "def"', 3) # A readonly class variable cannot be modified from a child class lines =<< trim END vim9script class A - static ro_class_var = 40 + static var ro_class_var = 40 endclass class B extends A @@ -1325,7 +1388,7 @@ def Test_class_variable_access() lines =<< trim END vim9script class A - static _priv_class_var = 60 + static var _priv_class_var = 60 endclass class B extends A @@ -1343,7 +1406,7 @@ def Test_class_variable_access() lines =<< trim END vim9script class A - static _priv_class_var = 60 + static var _priv_class_var = 60 endclass class B extends A @@ -1361,9 +1424,9 @@ def Test_class_variable_access() lines =<< trim END vim9script class A - static ro_class_var = 10 - public static rw_class_var = 20 - static _priv_class_var = 30 + static var ro_class_var = 10 + public static var rw_class_var = 20 + static var _priv_class_var = 30 endclass class B extends A @@ -1392,8 +1455,8 @@ def Test_class_object_compare() var class_lines =<< trim END vim9script class Item - this.nr = 0 - this.name = 'xx' + var nr = 0 + var name = 'xx' endclass END @@ -1435,13 +1498,13 @@ def Test_object_type() vim9script class One - this.one = 1 + var one = 1 endclass class Two - this.two = 2 + var two = 2 endclass class TwoMore extends Two - this.more = 9 + var more = 9 endclass var o: One = One.new() @@ -1457,10 +1520,10 @@ def Test_object_type() vim9script class One - this.one = 1 + var one = 1 endclass class Two - this.two = 2 + var two = 2 endclass var o: One = Two.new() @@ -1474,7 +1537,7 @@ def Test_object_type() def GetMember(): number endinterface class Two implements One - this.one = 1 + var one = 1 def GetMember(): number return this.one enddef @@ -1489,7 +1552,7 @@ def Test_object_type() vim9script class Num - this.n: number = 0 + var n: number = 0 endclass def Ref(name: string): func(Num): Num @@ -1511,11 +1574,11 @@ def Test_class_member() var lines =<< trim END vim9script class TextPos - this.lnum = 1 - this.col = 1 - static counter = 0 - static _secret = 7 - public static anybody = 42 + var lnum = 1 + var col = 1 + static var counter = 0 + static var _secret = 7 + public static var anybody = 42 static def AddToCounter(nr: number) counter += nr @@ -1551,8 +1614,8 @@ def Test_class_member() lines =<< trim END vim9script class OtherThing - this.size: number - static totalSize: number + var size: number + static var totalSize: number def new(this.size) totalSize += this.size @@ -1571,7 +1634,7 @@ def Test_class_member() vim9script class HTML - static author: string = 'John Doe' + static var author: string = 'John Doe' static def MacroSubstitute(s: string): string return substitute(s, '{{author}}', author, 'gi') @@ -1588,7 +1651,7 @@ def Test_class_member() vim9script class Foo - this._x: number = 0 + var _x: number = 0 def Add(n: number): number const F = (): number => this._x + n @@ -1606,7 +1669,7 @@ def Test_class_member() vim9script class Foo - this._x: number = 6 + var _x: number = 6 def Add(n: number): number var Lam = () => { @@ -1627,7 +1690,7 @@ def Test_class_member() vim9script class Some - static count = 0 + static var count = 0 def Method(count: number) echo count enddef @@ -1643,7 +1706,7 @@ def Test_class_member() vim9script class Some - static count = 0 + static var count = 0 def Method(arg: number) var count = 3 echo arg count @@ -1659,7 +1722,7 @@ def Test_class_member() lines =<< trim END vim9script class A - this.val: xxx + var val: xxx endclass END v9.CheckSourceFailure(lines, 'E1010: Type not recognized: xxx', 3) @@ -1668,7 +1731,7 @@ def Test_class_member() lines =<< trim END vim9script class A - public this.val: string + public var val: string endclass def F() @@ -1683,7 +1746,7 @@ def Test_class_member() lines =<< trim END vim9script class A - this.val: string + var val: string endclass def F() @@ -1698,7 +1761,7 @@ def Test_class_member() lines =<< trim END vim9script class A - public this.val: string + public var val: string endclass var obj: A @@ -1710,7 +1773,7 @@ def Test_class_member() lines =<< trim END vim9script class A - this.val: string + var val: string endclass var obj: A @@ -1723,14 +1786,14 @@ def Test_class_member() lines =<< trim END vim9script class A - this.val: number= 10 + var val: number= 10 endclass END v9.CheckSourceFailure(lines, "E1004: White space required before and after '='", 3) lines =<< trim END vim9script class A - this.val: number =10 + var val: number =10 endclass END v9.CheckSourceFailure(lines, "E1004: White space required before and after '='", 3) @@ -1753,7 +1816,7 @@ def Test_defining_class_message() vim9script class Base - this._v1: list> + var _v1: list> endclass class Child extends Base @@ -1767,7 +1830,7 @@ def Test_defining_class_message() vim9script class Base - this._v1: list> + var _v1: list> endclass class Child extends Base @@ -1784,7 +1847,7 @@ def Test_defining_class_message() vim9script class Base - this.v1: list> + var v1: list> endclass class Child extends Base @@ -1798,7 +1861,7 @@ def Test_defining_class_message() vim9script class Base - this.v1: list> + var v1: list> endclass class Child extends Base @@ -1821,7 +1884,7 @@ def Test_defining_class_message() endclass class Base extends Base0 - this._v1: list> + var _v1: list> endclass class Child extends Base @@ -1847,7 +1910,7 @@ def Test_defining_class_message() endclass class Child extends Base - this._v1: list> + var _v1: list> endclass def F() @@ -1864,9 +1927,9 @@ func Test_class_garbagecollect() vim9script class Point - this.p = [2, 3] - static pl = ['a', 'b'] - static pd = {a: 'a', b: 'b'} + var p = [2, 3] + static var pl = ['a', 'b'] + static var pd = {a: 'a', b: 'b'} endclass echo Point.pl Point.pd @@ -1882,15 +1945,15 @@ func Test_class_garbagecollect() endinterface class Widget - this.view: View + var view: View endclass class MyView implements View - this.widget: Widget + var widget: Widget def new() # this will result in a circular reference to this object - this.widget = Widget.new(this) + var widget = Widget.new(this) enddef endclass @@ -1909,17 +1972,17 @@ func Test_interface_garbagecollect() vim9script interface I - this.ro_obj_var: number + var ro_obj_var: number def ObjFoo(): number endinterface class A implements I - static ro_class_var: number = 10 - public static rw_class_var: number = 20 - static _priv_class_var: number = 30 - this.ro_obj_var: number = 40 - this._priv_obj_var: number = 60 + static var ro_class_var: number = 10 + public static var rw_class_var: number = 20 + static var _priv_class_var: number = 30 + var ro_obj_var: number = 40 + var _priv_obj_var: number = 60 static def _ClassBar(): number return _priv_class_var @@ -1952,8 +2015,8 @@ def Test_class_method() var lines =<< trim END vim9script class Value - this.value = 0 - static objects = 0 + var value = 0 + static var objects = 0 def new(v: number) this.value = v @@ -1990,7 +2053,7 @@ def Test_class_method() lines =<< trim END vim9script class A - static myList: list = [1] + static var myList: list = [1] static def Foo(n: number) myList->add(n) enddef @@ -2087,8 +2150,8 @@ def Test_class_object_to_string() var lines =<< trim END vim9script class TextPosition - this.lnum = 1 - this.col = 22 + var lnum = 1 + var col = 22 endclass assert_equal("class TextPosition", string(TextPosition)) @@ -2103,7 +2166,7 @@ def Test_interface_basics() var lines =<< trim END vim9script interface Something - this.ro_var: list + var ro_var: list def GetCount(): number endinterface END @@ -2111,7 +2174,7 @@ def Test_interface_basics() lines =<< trim END interface SomethingWrong - static count = 7 + static var count = 7 endinterface END v9.CheckSourceFailure(lines, 'E1342: Interface can only be defined in Vim9 script', 1) @@ -2120,7 +2183,7 @@ def Test_interface_basics() vim9script interface Some - this.value: number + var value: number def Method(value: number) endinterface END @@ -2131,7 +2194,7 @@ def Test_interface_basics() lines =<< trim END vim9script interface somethingWrong - static count = 7 + static var count = 7 endinterface END v9.CheckSourceFailure(lines, 'E1343: Interface name must start with an uppercase letter: somethingWrong', 2) @@ -2139,8 +2202,8 @@ def Test_interface_basics() lines =<< trim END vim9script interface SomethingWrong - this.value: string - this.count = 7 + var value: string + var count = 7 def GetCount(): number endinterface END @@ -2149,8 +2212,8 @@ def Test_interface_basics() lines =<< trim END vim9script interface SomethingWrong - this.value: string - this.count: number + var value: string + var count: number def GetCount(): number return 5 enddef @@ -2201,24 +2264,24 @@ def Test_class_implements_interface() vim9script interface Some - this.count: number + var count: number def Method(nr: number) endinterface class SomeImpl implements Some - this.count: number + var count: number def Method(nr: number) echo nr enddef endclass interface Another - this.member: string + var member: string endinterface class AnotherImpl implements Some, Another - this.member = 'abc' - this.count = 20 + var member = 'abc' + var count = 20 def Method(nr: number) echo nr enddef @@ -2230,11 +2293,11 @@ def Test_class_implements_interface() vim9script interface Some - this.count: number + var count: number endinterface class SomeImpl implements Some implements Some - this.count: number + var count: number endclass END v9.CheckSourceFailure(lines, 'E1350: Duplicate "implements"', 7) @@ -2243,11 +2306,11 @@ def Test_class_implements_interface() vim9script interface Some - this.count: number + var count: number endinterface class SomeImpl implements Some, Some - this.count: number + var count: number endclass END v9.CheckSourceFailure(lines, 'E1351: Duplicate interface after "implements": Some', 7) @@ -2256,12 +2319,12 @@ def Test_class_implements_interface() vim9script interface Some - this.counter: number + var counter: number def Method(nr: number) endinterface class SomeImpl implements Some - this.count: number + var count: number def Method(nr: number) echo nr enddef @@ -2273,12 +2336,12 @@ def Test_class_implements_interface() vim9script interface Some - this.count: number + var count: number def Methods(nr: number) endinterface class SomeImpl implements Some - this.count: number + var count: number def Method(nr: number) echo nr enddef @@ -2291,15 +2354,15 @@ def Test_class_implements_interface() vim9script interface Result - this.label: string - this.errpos: number + var label: string + var errpos: number endinterface # order of members is opposite of interface class Failure implements Result - public this.lnum: number = 5 - this.errpos: number = 42 - this.label: string = 'label' + public var lnum: number = 5 + var errpos: number = 42 + var label: string = 'label' endclass def Test() @@ -2412,16 +2475,16 @@ def Test_class_implements_interface() vim9script interface I1 - this.mvar1: number - this.mvar2: number + var mvar1: number + var mvar2: number endinterface # NOTE: the order is swapped class A implements I1 - this.mvar2: number - this.mvar1: number - public static svar2: number - public static svar1: number + var mvar2: number + var mvar1: number + public static var svar2: number + public static var svar1: number def new() svar1 = 11 svar2 = 12 @@ -2464,20 +2527,20 @@ def Test_class_implements_interface() vim9script interface I1 - this.mvar1: number - this.mvar2: number + var mvar1: number + var mvar2: number endinterface interface I2 - this.mvar3: number - this.mvar4: number + var mvar3: number + var mvar4: number endinterface class A implements I1 - public static svar1: number - public static svar2: number - this.mvar1: number - this.mvar2: number + public static var svar1: number + public static var svar2: number + var mvar1: number + var mvar2: number def new() svar1 = 11 svar2 = 12 @@ -2487,10 +2550,10 @@ def Test_class_implements_interface() endclass class B extends A implements I2 - static svar3: number - static svar4: number - this.mvar3: number - this.mvar4: number + static var svar3: number + static var svar4: number + var mvar3: number + var mvar4: number def new() svar3 = 23 svar4 = 24 @@ -2502,7 +2565,7 @@ def Test_class_implements_interface() endclass class C extends B - public static svar5: number + public static var svar5: number def new() svar5 = 1001 this.mvar1 = 131 @@ -2686,8 +2749,8 @@ def Test_class_used_as_type() vim9script class Point - this.x = 0 - this.y = 0 + var x = 0 + var y = 0 endclass var p: Point @@ -2701,12 +2764,12 @@ def Test_class_used_as_type() vim9script interface HasX - this.x: number + var x: number endinterface class Point implements HasX - this.x = 0 - this.y = 0 + var x = 0 + var y = 0 endclass var p: Point @@ -2720,8 +2783,8 @@ def Test_class_used_as_type() vim9script class Point - this.x = 0 - this.y = 0 + var x = 0 + var y = 0 endclass var p: Point @@ -2734,13 +2797,13 @@ def Test_class_extends() var lines =<< trim END vim9script class Base - this.one = 1 + var one = 1 def GetOne(): number return this.one enddef endclass class Child extends Base - this.two = 2 + var two = 2 def GetTotal(): number return this.one + this.two enddef @@ -2756,10 +2819,10 @@ def Test_class_extends() lines =<< trim END vim9script class Base - this.one = 1 + var one = 1 endclass class Child extends Base - this.two = 2 + var two = 2 endclass var o = Child.new(3, 44) assert_equal(3, o.one) @@ -2770,10 +2833,10 @@ def Test_class_extends() lines =<< trim END vim9script class Base - this.one = 1 + var one = 1 endclass class Child extends Base extends Base - this.two = 2 + var two = 2 endclass END v9.CheckSourceFailure(lines, 'E1352: Duplicate "extends"', 5) @@ -2781,7 +2844,7 @@ def Test_class_extends() lines =<< trim END vim9script class Child extends BaseClass - this.two = 2 + var two = 2 endclass END v9.CheckSourceFailure(lines, 'E1353: Class name not found: BaseClass', 4) @@ -2790,7 +2853,7 @@ def Test_class_extends() vim9script var SomeVar = 99 class Child extends SomeVar - this.two = 2 + var two = 2 endclass END v9.CheckSourceFailure(lines, 'E1354: Cannot extend SomeVar', 5) @@ -2798,14 +2861,14 @@ def Test_class_extends() lines =<< trim END vim9script class Base - this.name: string + var name: string def ToString(): string return this.name enddef endclass class Child extends Base - this.age: number + var age: number def ToString(): string return super.ToString() .. ': ' .. this.age enddef @@ -2819,7 +2882,7 @@ def Test_class_extends() lines =<< trim END vim9script class Child - this.age: number + var age: number def ToString(): number return this.age enddef @@ -2833,7 +2896,7 @@ def Test_class_extends() lines =<< trim END vim9script class Child - this.age: number + var age: number def ToString(): string return super .ToString() .. ': ' .. this.age enddef @@ -2846,7 +2909,7 @@ def Test_class_extends() lines =<< trim END vim9script class Base - this.name: string + var name: string def ToString(): string return this.name enddef @@ -2863,7 +2926,7 @@ def Test_class_extends() lines =<< trim END vim9script class Child - this.age: number + var age: number def ToString(): string return super.ToString() .. ': ' .. this.age enddef @@ -2876,14 +2939,14 @@ def Test_class_extends() lines =<< trim END vim9script class Base - this.name: string + var name: string static def ToString(): string return 'Base class' enddef endclass class Child extends Base - this.age: number + var age: number def ToString(): string return Base.ToString() .. ': ' .. this.age enddef @@ -2897,7 +2960,7 @@ def Test_class_extends() lines =<< trim END vim9script class Base - this.value = 1 + var value = 1 def new(init: number) this.value = number + 1 enddef @@ -2916,8 +2979,8 @@ def Test_class_extends() vim9script class Result - this.success: bool - this.value: any = null + var success: bool + var value: any = null endclass class Success extends Result @@ -2986,7 +3049,7 @@ def Test_using_base_class() vim9script class Base - this.success: bool = false + var success: bool = false def Method(arg = 0) this.success = true enddef @@ -3008,8 +3071,8 @@ def Test_class_import() var lines =<< trim END vim9script export class Animal - this.kind: string - this.name: string + var kind: string + var name: string endclass END writefile(lines, 'Xanimal.vim', 'D') @@ -3090,10 +3153,10 @@ def Test_abstract_class() var lines =<< trim END vim9script abstract class Base - this.name: string + var name: string endclass class Person extends Base - this.age: number + var age: number endclass var p: Base = Person.new('Peter', 42) assert_equal('Peter', p.name) @@ -3104,10 +3167,10 @@ def Test_abstract_class() lines =<< trim END vim9script abstract class Base - this.name: string + var name: string endclass class Person extends Base - this.age: number + var age: number endclass var p = Base.new('Peter') END @@ -3115,7 +3178,7 @@ def Test_abstract_class() lines =<< trim END abstract class Base - this.name: string + var name: string endclass END v9.CheckSourceFailure(lines, 'E1316: Class can only be defined in Vim9 script', 1) @@ -3136,7 +3199,7 @@ def Test_closure_in_class() vim9script class Foo - this.y: list = ['B'] + var y: list = ['B'] def new() g:result = filter(['A', 'B'], (_, v) => index(this.y, v) == -1) @@ -3201,8 +3264,8 @@ def Test_construct_object_from_legacy() var createdObject: any class A - this.val1: number - this.val2: number + var val1: number + var val2: number static def CreateA(...args: list): any createdObject = call(A.new, args) return createdObject @@ -3300,7 +3363,7 @@ def Test_extends_method_crashes_vim() endclass class Property - this.value: any + var value: any def Set(v: any) if v != this.value @@ -3313,7 +3376,7 @@ def Test_extends_method_crashes_vim() endclass class Bool extends Property - this.value2: bool + var value2: bool endclass def Observe(obj: Property, who: Observer) @@ -3491,7 +3554,7 @@ def Test_call_method_in_parent_class() vim9script class Widget - this._lnum: number = 1 + var _lnum: number = 1 def SetY(lnum: number) this._lnum = lnum @@ -3601,15 +3664,15 @@ def Test_multi_level_member_access() vim9script class A - public this.val1: number = 0 + public var val1: number = 0 endclass class B extends A - public this.val2: number = 0 + public var val2: number = 0 endclass class C extends B - public this.val3: number = 0 + public var val3: number = 0 endclass def A_members(a: A) @@ -3669,7 +3732,7 @@ def Test_new_return_type() vim9script class C - this._bufnr: number + var _bufnr: number def new(this._bufnr) if !bufexists(this._bufnr) @@ -3699,7 +3762,7 @@ def Test_new_return_type() vim9script class C - this._bufnr: number + var _bufnr: number def new(this._bufnr) if !bufexists(this._bufnr) @@ -3730,7 +3793,7 @@ def Test_new_return_type() vim9script class C - this._bufnr: number + var _bufnr: number def new(this._bufnr): any if !bufexists(this._bufnr) @@ -3747,7 +3810,7 @@ def Test_new_return_type() vim9script class C - this._state: dict + var _state: dict def new(): dict this._state = {} @@ -3778,7 +3841,7 @@ def Test_runtime_type_check_for_member_init() enddef class C - this._foo: bool = F() + var _foo: bool = F() endclass var c1 = C.new() @@ -3794,7 +3857,7 @@ def Test_lockvar_object() vim9script class C - this.val: number + var val: number def new(this.val) enddef endclass @@ -3840,7 +3903,7 @@ def Test_lockvar_object_variable() vim9script class C - this.val1: number + var val1: number def Lock() lockvar this.val1 enddef @@ -3855,7 +3918,7 @@ def Test_lockvar_object_variable() vim9script class C - this.val2: number + var val2: number endclass var o = C.new(3) lockvar o.val2 @@ -3867,7 +3930,7 @@ def Test_lockvar_object_variable() vim9script class C - this.val3: number + var val3: number endclass var o = C.new(3) def Lock() @@ -3882,7 +3945,7 @@ def Test_lockvar_object_variable() vim9script class C - this.val4: number + var val4: number endclass def Lock(o: C) lockvar o.val4 @@ -3899,7 +3962,7 @@ def Test_lockvar_object_variable() vim9script class C - this.val5: number + var val5: number def Lock(o_any: any) lockvar o_any.val5 enddef @@ -3914,7 +3977,7 @@ def Test_lockvar_object_variable() vim9script class C - this.val6: number + var val6: number static def Lock(o_any: any) lockvar o_any.val6 enddef @@ -3933,7 +3996,7 @@ def Test_lockvar_object_variable() vim9script class C - public this.val1: number + public var val1: number def Lock() lockvar this.val1 enddef @@ -3948,7 +4011,7 @@ def Test_lockvar_object_variable() vim9script class C - public this.val2: number + public var val2: number endclass var o = C.new(3) lockvar o.val2 @@ -3960,7 +4023,7 @@ def Test_lockvar_object_variable() vim9script class C - public this.val3: number + public var val3: number endclass var o = C.new(3) def Lock() @@ -3975,7 +4038,7 @@ def Test_lockvar_object_variable() vim9script class C - public this.val4: number + public var val4: number endclass def Lock(o: C) lockvar o.val4 @@ -3989,7 +4052,7 @@ def Test_lockvar_object_variable() vim9script class C - public this.val5: number + public var val5: number def Lock(o_any: any) lockvar o_any.val5 enddef @@ -4004,7 +4067,7 @@ def Test_lockvar_object_variable() vim9script class C - public this.val6: number + public var val6: number static def Lock(o_any: any) lockvar o_any.val6 enddef @@ -4023,7 +4086,7 @@ def Test_lockvar_class_variable() vim9script class C - public static sval1: number + public static var sval1: number def Lock() lockvar sval1 enddef @@ -4038,7 +4101,7 @@ def Test_lockvar_class_variable() vim9script class C - public static sval2: number + public static var sval2: number def Lock() lockvar C.sval2 enddef @@ -4053,7 +4116,7 @@ def Test_lockvar_class_variable() vim9script class C - public static sval3: number + public static var sval3: number static def Lock() lockvar sval3 enddef @@ -4067,7 +4130,7 @@ def Test_lockvar_class_variable() vim9script class C - public static sval4: number + public static var sval4: number static def Lock() lockvar C.sval4 enddef @@ -4081,7 +4144,7 @@ def Test_lockvar_class_variable() vim9script class C - public static sval5: number + public static var sval5: number endclass lockvar C.sval5 END @@ -4092,7 +4155,7 @@ def Test_lockvar_class_variable() vim9script class C - public static sval6: number + public static var sval6: number endclass var o = C.new() lockvar o.sval6 @@ -4123,7 +4186,7 @@ def Test_lockvar_argument() vim9script class C - public static sval: list + public static var sval: list endclass def Lock2(sval: any) @@ -4140,7 +4203,7 @@ def Test_lockvar_argument() vim9script class C - public static sval: list + public static var sval: list endclass def Lock2(sval: any) @@ -4156,7 +4219,7 @@ def Test_lockvar_argument() vim9script class C - public static sval: list + public static var sval: list endclass def Lock2(sval: any) @@ -4172,7 +4235,7 @@ def Test_lockvar_argument() vim9script class C - public static sval: list + public static var sval: list def Lock2() lockvar sval enddef @@ -4247,7 +4310,7 @@ def Test_lockvar_general() vim9script class C - public this.val: list> = [ [1], [2], [3] ] + public var val: list> = [ [1], [2], [3] ] endclass def Lock2(obj: any) lockvar obj.val[1] @@ -4273,7 +4336,7 @@ def Test_lockvar_general() vim9script class C - public this.val: list> = [ [1], [2], [3] ] + public var val: list> = [ [1], [2], [3] ] endclass var o = C.new() @@ -4313,7 +4376,7 @@ def Test_lockvar_general() vim9script class C - this._v1: list> + var _v1: list> def Lock() lockvar lc[0]._v1[1] enddef @@ -4337,14 +4400,14 @@ def Test_lockvar_general() vim9script class C2 - this._v1: list> + var _v1: list> def Lock(obj: any) lockvar lc[0]._v1[1] enddef endclass class C - this._v1: list> + var _v1: list> endclass var l = [[1], [2], [3]] @@ -4367,10 +4430,10 @@ def Test_lockvar_islocked() vim9script class C - this.o0: list> = [ [0], [1], [2]] - this.o1: list> = [[10], [11], [12]] - static c0: list> = [[20], [21], [22]] - static c1: list> = [[30], [31], [32]] + var o0: list> = [ [0], [1], [2]] + var o1: list> = [[10], [11], [12]] + static var c0: list> = [[20], [21], [22]] + static var c1: list> = [[30], [31], [32]] endclass def LockIt(arg: any) @@ -4445,10 +4508,10 @@ def Test_lockvar_islocked() var l0c1 = [[130], [131], [132]] class C0 - this.o0: list> = l0o0 - this.o1: list> = l0o1 - static c0: list> = l0c0 - static c1: list> = l0c1 + var o0: list> = l0o0 + var o1: list> = l0o1 + static var c0: list> = l0c0 + static var c1: list> = l0c1 def Islocked(arg: string): number return islocked(arg) enddef @@ -4463,10 +4526,10 @@ def Test_lockvar_islocked() var l2c1 = [[20130], [20131], [20132]] class C2 - this.o0: list> = l2o0 - this.o1: list> = l2o1 - static c0: list> = l2c0 - static c1: list> = l2c1 + var o0: list> = l2o0 + var o1: list> = l2o1 + static var c0: list> = l2c0 + static var c1: list> = l2c1 def Islocked(arg: string): number return islocked(arg) enddef @@ -4632,7 +4695,7 @@ def Test_lockvar_islocked_notfound() vim9script class C - this.val = { key: "value" } + var val = { key: "value" } def Islocked(arg: string): number return islocked(arg) enddef @@ -5169,8 +5232,8 @@ def Test_static_inheritence() vim9script class A - static _svar: number - this._mvar: number + static var _svar: number + var _mvar: number def new() _svar = 1 this._mvar = 101 @@ -5223,8 +5286,8 @@ def Test_dup_member_variable() var lines =<< trim END vim9script class C - this.val = 10 - this.val = 20 + var val = 10 + var val = 20 endclass END v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: val', 4) @@ -5233,8 +5296,8 @@ def Test_dup_member_variable() lines =<< trim END vim9script class C - this._val = 10 - this._val = 20 + var _val = 10 + var _val = 20 endclass END v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: _val', 4) @@ -5243,8 +5306,8 @@ def Test_dup_member_variable() lines =<< trim END vim9script class C - public this.val = 10 - public this.val = 20 + public var val = 10 + public var val = 20 endclass END v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: val', 4) @@ -5253,8 +5316,8 @@ def Test_dup_member_variable() lines =<< trim END vim9script class C - this.val = 10 - this._val = 20 + var val = 10 + var _val = 20 endclass END v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: _val', 4) @@ -5263,8 +5326,8 @@ def Test_dup_member_variable() lines =<< trim END vim9script class C - this._val = 20 - public this.val = 10 + var _val = 20 + public var val = 10 endclass END v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: val', 4) @@ -5273,8 +5336,8 @@ def Test_dup_member_variable() lines =<< trim END vim9script class C - static s: string = "abc" - static _s: string = "def" + static var s: string = "abc" + static var _s: string = "def" endclass END v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: _s', 4) @@ -5283,8 +5346,8 @@ def Test_dup_member_variable() lines =<< trim END vim9script class C - public static s: string = "abc" - static _s: string = "def" + public static var s: string = "abc" + static var _s: string = "def" endclass END v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: _s', 4) @@ -5293,8 +5356,8 @@ def Test_dup_member_variable() lines =<< trim END vim9script class C - static val = 10 - this.val = 20 + static var val = 10 + var val = 20 def new() enddef endclass @@ -5308,12 +5371,12 @@ def Test_dup_member_variable() lines =<< trim END vim9script class A - this.val = 10 + var val = 10 endclass class B extends A endclass class C extends B - this.val = 20 + var val = 20 endclass END v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: val', 9) @@ -5322,12 +5385,12 @@ def Test_dup_member_variable() lines =<< trim END vim9script class A - this._val = 10 + var _val = 10 endclass class B extends A endclass class C extends B - this._val = 20 + var _val = 20 endclass END v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: _val', 9) @@ -5336,12 +5399,12 @@ def Test_dup_member_variable() lines =<< trim END vim9script class A - this.val = 10 + var val = 10 endclass class B extends A endclass class C extends B - this._val = 20 + var _val = 20 endclass END v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: _val', 9) @@ -5350,12 +5413,12 @@ def Test_dup_member_variable() lines =<< trim END vim9script class A - this._val = 10 + var _val = 10 endclass class B extends A endclass class C extends B - this.val = 20 + var val = 20 endclass END v9.CheckSourceFailure(lines, 'E1369: Duplicate variable: val', 9) @@ -5364,8 +5427,8 @@ def Test_dup_member_variable() lines =<< trim END vim9script class A - public static svar2: number - public static svar: number + public static var svar2: number + public static var svar: number endclass END v9.CheckSourceSuccess(lines) @@ -5377,7 +5440,7 @@ def Test_private_member_access_outside_class() var lines =<< trim END vim9script class A - this._val = 10 + var _val = 10 def GetVal(): number return this._val enddef @@ -5394,7 +5457,7 @@ def Test_private_member_access_outside_class() lines =<< trim END vim9script class A - this._val = 10 + var _val = 10 endclass def T() var a = A.new() @@ -5408,7 +5471,7 @@ def Test_private_member_access_outside_class() lines =<< trim END vim9script class A - static _val = 10 + static var _val = 10 endclass def T() var a = A.new() @@ -5422,7 +5485,7 @@ def Test_private_member_access_outside_class() lines =<< trim END vim9script class A - static _val = 10 + static var _val = 10 endclass def T() var a = A.new() @@ -5436,7 +5499,7 @@ def Test_private_member_access_outside_class() lines =<< trim END vim9script class A - static _val = 10 + static var _val = 10 endclass def T() var x = A._val @@ -5449,7 +5512,7 @@ def Test_private_member_access_outside_class() lines =<< trim END vim9script class A - static _val = 10 + static var _val = 10 endclass def T() A._val = 3 @@ -5464,10 +5527,10 @@ def Test_change_interface_member_access() var lines =<< trim END vim9script interface A - this.val: number + var val: number endinterface class B implements A - public this.val = 10 + public var val = 10 endclass END v9.CheckSourceFailure(lines, 'E1367: Access level of variable "val" of interface "A" is different', 7) @@ -5475,10 +5538,10 @@ def Test_change_interface_member_access() lines =<< trim END vim9script interface A - this.val: number + var val: number endinterface class B implements A - public this.val = 10 + public var val = 10 endclass END v9.CheckSourceFailure(lines, 'E1367: Access level of variable "val" of interface "A" is different', 7) @@ -5489,7 +5552,7 @@ def Test_readonly_member_change_in_def_func() var lines =<< trim END vim9script class A - this.val: number + var val: number endclass def T() var a = A.new() @@ -5505,10 +5568,10 @@ def Test_modify_class_member_from_def_function() var lines =<< trim END vim9script class A - this.var1: number = 10 - public static var2: list = [1, 2] - public static var3: dict = {a: 1, b: 2} - static _priv_var4: number = 40 + var var1: number = 10 + public static var var2: list = [1, 2] + public static var var3: dict = {a: 1, b: 2} + static var _priv_var4: number = 40 endclass def T() assert_equal([1, 2], A.var2) @@ -5529,8 +5592,8 @@ def Test_class_variable_access_using_object() var lines =<< trim END vim9script class A - public static svar1: list = [1] - public static svar2: list = [2] + public static var svar1: list = [1] + public static var svar2: list = [2] endclass A.svar1->add(3) @@ -5552,8 +5615,8 @@ def Test_class_variable_access_using_object() lines =<< trim END vim9script class A - public this.var1: number - public static svar2: list = [1] + public var var1: number + public static var svar2: list = [1] endclass var a = A.new() @@ -5565,8 +5628,8 @@ def Test_class_variable_access_using_object() lines =<< trim END vim9script class A - public this.var1: number - public static svar2: list = [1] + public var var1: number + public static var svar2: list = [1] endclass var a = A.new() @@ -5578,8 +5641,8 @@ def Test_class_variable_access_using_object() lines =<< trim END vim9script class A - public this.var1: number - public static svar2: list = [1] + public var var1: number + public static var svar2: list = [1] endclass def T() @@ -5594,8 +5657,8 @@ def Test_class_variable_access_using_object() lines =<< trim END vim9script class A - public this.var1: number - public static svar2: list = [1] + public var var1: number + public static var svar2: list = [1] endclass def T() @@ -5926,7 +5989,7 @@ def Test_class_variable() vim9script class A - public static val: number = 10 + public static var val: number = 10 static def ClassFunc() assert_equal(10, val) enddef @@ -5961,7 +6024,7 @@ def Test_class_variable() vim9script class A - static val: number = 10 + static var val: number = 10 endclass class B extends A @@ -5978,7 +6041,7 @@ def Test_class_variable() vim9script class A - static val: number = 10 + static var val: number = 10 endclass class B extends A @@ -5995,7 +6058,7 @@ def Test_class_variable() vim9script class A - static val: number = 10 + static var val: number = 10 endclass class B extends A @@ -6013,7 +6076,7 @@ def Test_class_variable() vim9script class A - static val: number = 10 + static var val: number = 10 endclass class B extends A @@ -6031,7 +6094,7 @@ def Test_class_variable() vim9script class A - static val: number = 10 + static var val: number = 10 endclass var a = A.new() a.val = 20 @@ -6043,7 +6106,7 @@ def Test_class_variable() vim9script class A - static val: number = 10 + static var val: number = 10 endclass var a = A.new() var i = a.val @@ -6055,7 +6118,7 @@ def Test_class_variable() vim9script class A - static val: number = 10 + static var val: number = 10 endclass def T() @@ -6071,7 +6134,7 @@ def Test_class_variable() vim9script class A - static val: number = 10 + static var val: number = 10 endclass def T() var a = A.new() @@ -6080,6 +6143,67 @@ def Test_class_variable() T() END v9.CheckSourceFailure(lines, 'E1375: Class variable "val" accessible only using class "A"', 2) + + # Use old implicit var declaration syntax (without initialization) + lines =<< trim END + vim9script + + class A + static val: number + endclass + END + v9.CheckSourceFailure(lines, 'E1368: Static must be followed by "var" or "def"', 4) + + # Use old implicit var declaration syntax (with initialization) + lines =<< trim END + vim9script + + class A + static val: number = 10 + endclass + END + v9.CheckSourceFailure(lines, 'E1368: Static must be followed by "var" or "def"', 4) + + # Use old implicit var declaration syntax (type inferred) + lines =<< trim END + vim9script + + class A + static val = 10 + endclass + END + v9.CheckSourceFailure(lines, 'E1368: Static must be followed by "var" or "def"', 4) + + # Missing ":var" in "var" class variable declaration (without initialization) + lines =<< trim END + vim9script + + class A + static var: number + endclass + END + v9.CheckSourceFailure(lines, 'E1329: Invalid class variable declaration: static var: number', 4) + + # Missing ":var" in "var" class variable declaration (with initialization) + lines =<< trim END + vim9script + + class A + static var: number = 10 + endclass + END + v9.CheckSourceFailure(lines, 'E1329: Invalid class variable declaration: static var: number = 10', 4) + + # Missing ":var" in "var" class variable declaration (type inferred) + lines =<< trim END + vim9script + + class A + static var = 10 + endclass + END + v9.CheckSourceFailure(lines, 'E1329: Invalid class variable declaration: static var = 10', 4) + enddef " Test for using a duplicate class method and class variable in a child class @@ -6088,7 +6212,7 @@ def Test_dup_class_member() var lines =<< trim END vim9script class A - static sval = 100 + static var sval = 100 static def Check() assert_equal(100, sval) enddef @@ -6098,7 +6222,7 @@ def Test_dup_class_member() endclass class B extends A - static sval = 200 + static var sval = 200 static def Check() assert_equal(200, sval) enddef @@ -6130,7 +6254,7 @@ def Test_dup_class_member() lines =<< trim END vim9script class A - static sval = 100 + static var sval = 100 static def Check() assert_equal(100, sval) enddef @@ -6140,7 +6264,7 @@ def Test_dup_class_member() endclass class B extends A - static sval = 200 + static var sval = 200 static def Check() assert_equal(200, sval) enddef @@ -6303,8 +6427,8 @@ def Test_extend_empty_class() class B extends A endclass class C extends B - public static rw_class_var = 1 - public this.rw_obj_var = 2 + public static var rw_class_var = 1 + public var rw_obj_var = 2 static def ClassMethod(): number return 3 enddef @@ -6327,7 +6451,7 @@ def Test_interface_with_unsupported_members() var lines =<< trim END vim9script interface A - static num: number + static var num: number endinterface END v9.CheckSourceFailure(lines, 'E1378: Static member not supported in an interface', 3) @@ -6335,7 +6459,7 @@ def Test_interface_with_unsupported_members() lines =<< trim END vim9script interface A - static _num: number + static var _num: number endinterface END v9.CheckSourceFailure(lines, 'E1378: Static member not supported in an interface', 3) @@ -6343,7 +6467,7 @@ def Test_interface_with_unsupported_members() lines =<< trim END vim9script interface A - public static num: number + public static var num: number endinterface END v9.CheckSourceFailure(lines, 'E1387: Public variable not supported in an interface', 3) @@ -6351,7 +6475,7 @@ def Test_interface_with_unsupported_members() lines =<< trim END vim9script interface A - public static num: number + public static var num: number endinterface END v9.CheckSourceFailure(lines, 'E1387: Public variable not supported in an interface', 3) @@ -6359,7 +6483,7 @@ def Test_interface_with_unsupported_members() lines =<< trim END vim9script interface A - static _num: number + static var _num: number endinterface END v9.CheckSourceFailure(lines, 'E1378: Static member not supported in an interface', 3) @@ -6383,7 +6507,7 @@ def Test_interface_with_unsupported_members() lines =<< trim END vim9script interface A - this._Foo: list + var _Foo: list endinterface END v9.CheckSourceFailure(lines, 'E1379: Protected variable not supported in an interface', 3) @@ -6402,18 +6526,18 @@ def Test_extend_interface() var lines =<< trim END vim9script interface A - this.var1: list + var var1: list def Foo() endinterface interface B extends A - this.var2: dict + var var2: dict def Bar() endinterface class C implements A, B - this.var1 = [1, 2] + var var1 = [1, 2] def Foo() enddef - this.var2 = {a: '1'} + var var2 = {a: '1'} def Bar() enddef endclass @@ -6438,10 +6562,10 @@ def Test_extend_interface() def Foo() endinterface interface B extends A - this.var2: dict + var var2: dict endinterface class C implements A, B - this.var2 = {a: '1'} + var var2 = {a: '1'} endclass END v9.CheckSourceFailure(lines, 'E1349: Method "Foo" of interface "A" is not implemented', 10) @@ -6452,7 +6576,7 @@ def Test_extend_interface() def Foo() endinterface interface B extends A - this.var2: dict + var var2: dict endinterface class C implements A, B def Foo() @@ -6507,14 +6631,14 @@ def Test_extend_interface() lines =<< trim END vim9script interface A - this.val1: number + var val1: number endinterface interface B extends A - this.val2: string + var val2: string endinterface interface C extends B - this.val1: string - this.val2: number + var val1: string + var val2: number endinterface END v9.CheckSourceFailure(lines, 'E1382: Variable "val1": type mismatch, expected number but got string', 11) @@ -6530,9 +6654,9 @@ def Test_child_class_implements_interface() def F1(): list> def F2(): list> def F3(): list> - this.var1: list> - this.var2: list> - this.var3: list> + var var1: list> + var var2: list> + var var3: list> endinterface class A @@ -6541,8 +6665,8 @@ def Test_child_class_implements_interface() def F3(): list> return [[3]] enddef - this.v1: list> = [[0]] - this.var3 = [{c: 30}] + var v1: list> = [[0]] + var var3 = [{c: 30}] endclass class B extends A @@ -6551,8 +6675,8 @@ def Test_child_class_implements_interface() def F2(): list> return [[2]] enddef - this.v2: list> = [[0]] - this.var2 = [{b: 20}] + var v2: list> = [[0]] + var var2 = [{b: 20}] endclass class C extends B implements Intf @@ -6561,8 +6685,8 @@ def Test_child_class_implements_interface() def F1(): list> return [[1]] enddef - this.v3: list> = [[0]] - this.var1 = [{a: 10}] + var v3: list> = [[0]] + var var1 = [{a: 10}] endclass def T(if: Intf) @@ -6655,23 +6779,23 @@ def Test_child_class_implements_interface() vim9script interface Intf - this.var1: list> - this.var2: list> - this.var3: list> + var var1: list> + var var2: list> + var var3: list> endinterface class A - this.v1: list> = [[0]] + var v1: list> = [[0]] endclass class B extends A - this.v2: list> = [[0]] - this.var2 = [{b: 20}] + var v2: list> = [[0]] + var var2 = [{b: 20}] endclass class C extends B implements Intf - this.v3: list> = [[0]] - this.var1 = [{a: 10}] + var v3: list> = [[0]] + var var1 = [{a: 10}] endclass END v9.CheckSourceFailure(lines, 'E1348: Variable "var3" of interface "Intf" is not implemented', 21) @@ -6681,24 +6805,24 @@ def Test_child_class_implements_interface() vim9script interface Intf - this.var1: list> - this.var2: list> - this.var3: list> + var var1: list> + var var2: list> + var var3: list> endinterface class A - this.v1: list> = [[0]] - this.var3: list> + var v1: list> = [[0]] + var var3: list> endclass class B extends A - this.v2: list> = [[0]] - this.var2 = [{b: 20}] + var v2: list> = [[0]] + var var2 = [{b: 20}] endclass class C extends B implements Intf - this.v3: list> = [[0]] - this.var1 = [{a: 10}] + var v3: list> = [[0]] + var var1 = [{a: 10}] endclass END v9.CheckSourceFailure(lines, 'E1382: Variable "var3": type mismatch, expected list> but got list>', 22) @@ -6709,18 +6833,18 @@ def Test_interface_extends_with_dup_members() var lines =<< trim END vim9script interface A - this.n1: number + var n1: number def Foo1(): number endinterface interface B extends A - this.n2: number - this.n1: number + var n2: number + var n1: number def Foo2(): number def Foo1(): number endinterface class C implements B - this.n1 = 10 - this.n2 = 20 + var n1 = 10 + var n2 = 20 def Foo1(): number return 30 enddef @@ -6751,10 +6875,10 @@ def Test_implements_using_var_type_any() var lines =<< trim END vim9script interface A - this.val: list> + var val: list> endinterface class B implements A - this.val = [{a: '1'}, {b: '2'}] + var val = [{a: '1'}, {b: '2'}] endclass var b = B.new() assert_equal([{a: '1'}, {b: '2'}], b.val) @@ -6765,10 +6889,10 @@ def Test_implements_using_var_type_any() lines =<< trim END vim9script interface A - this.val: list> + var val: list> endinterface class B implements A - this.val = {a: 1, b: 2} + var val = {a: 1, b: 2} endclass var b = B.new() END @@ -6781,19 +6905,19 @@ def Test_nested_object_assignment() vim9script class A - this.value: number + var value: number endclass class B - this.a: A = A.new() + var a: A = A.new() endclass class C - this.b: B = B.new() + var b: B = B.new() endclass class D - this.c: C = C.new() + var c: C = C.new() endclass def T(da: D) @@ -6893,7 +7017,7 @@ def Test_dict_object_member() vim9script class Context - public this.state: dict = {} + public var state: dict = {} def GetState(): dict return this.state enddef @@ -6952,8 +7076,8 @@ def Test_duplicate_variable() var lines =<< trim END vim9script class A - public static sval: number - public this.sval: number + public static var sval: number + public var sval: number endclass var a = A.new() END @@ -6963,8 +7087,8 @@ def Test_duplicate_variable() lines =<< trim END vim9script class A - public static sval: number - public this.sval: number + public static var sval: number + public var sval: number def F1() echo this.sval enddef @@ -6980,8 +7104,8 @@ def Test_duplicate_variable() lines =<< trim END vim9script class A - public static sval: number - public this.sval: number + public static var sval: number + public var sval: number def new() enddef endclass @@ -6999,7 +7123,7 @@ def Test_reserved_varname() var lines =<< trim eval END vim9script class C - public this.{kword}: list = [1, 2, 3] + public var {kword}: list = [1, 2, 3] endclass var o = C.new() END @@ -7008,7 +7132,7 @@ def Test_reserved_varname() lines =<< trim eval END vim9script class C - public this.{kword}: list = [1, 2, 3] + public var {kword}: list = [1, 2, 3] def new() enddef endclass @@ -7019,7 +7143,7 @@ def Test_reserved_varname() lines =<< trim eval END vim9script class C - public this.{kword}: list = [1, 2, 3] + public var {kword}: list = [1, 2, 3] def new() enddef def F() @@ -7036,7 +7160,7 @@ def Test_reserved_varname() lines =<< trim eval END vim9script class C - public static {kword}: list = [1, 2, 3] + public static var {kword}: list = [1, 2, 3] endclass END v9.CheckSourceFailure(lines, $'E1034: Cannot use reserved name {kword}', 3) @@ -7169,7 +7293,7 @@ func Test_class_variable_complex_type_check() return {} enddef class A - public static Fn: func(list>): dict> = Foo + public static var Fn: func(list>): dict> = Foo endclass test_garbagecollect_now() A.Fn = "abc" @@ -7184,7 +7308,7 @@ func Test_class_variable_complex_type_check() return {} enddef class A - public static Fn: func(list>): dict> = Foo + public static var Fn: func(list>): dict> = Foo def Bar() Fn = "abc" enddef @@ -7203,7 +7327,7 @@ func Test_class_variable_complex_type_check() return {} enddef class A - public static Fn: func(list>): dict> = Foo + public static var Fn: func(list>): dict> = Foo endclass def Bar() A.Fn = "abc" @@ -7221,7 +7345,7 @@ func Test_class_variable_complex_type_check() return {} enddef class A - public static Fn = Foo + public static var Fn = Foo endclass test_garbagecollect_now() A.Fn = "abc" @@ -7236,7 +7360,7 @@ func Test_class_variable_complex_type_check() return {} enddef class A - public static Fn = Foo + public static var Fn = Foo def Bar() Fn = "abc" enddef @@ -7255,7 +7379,7 @@ func Test_class_variable_complex_type_check() return {} enddef class A - public static Fn = Foo + public static var Fn = Foo endclass def Bar() A.Fn = "abc" @@ -7272,8 +7396,8 @@ func Test_class_variable_complex_type_check() return {} enddef class A - public static Fn: any = Foo - public static Fn2: any + public static var Fn: any = Foo + public static var Fn2: any endclass test_garbagecollect_now() assert_equal('func(list>): dict>', typename(A.Fn)) @@ -7296,8 +7420,8 @@ func Test_class_variable_complex_type_check() return {} enddef class A - public static Fn: any = Foo - public static Fn2: any + public static var Fn: any = Foo + public static var Fn2: any def Bar() assert_equal('func(list>): dict>', typename(Fn)) @@ -7325,8 +7449,8 @@ func Test_class_variable_complex_type_check() return {} enddef class A - public static Fn: any = Foo - public static Fn2: any + public static var Fn: any = Foo + public static var Fn2: any endclass def Bar() @@ -7348,7 +7472,7 @@ func Test_class_variable_complex_type_check() let lines =<< trim END vim9script class A - public static foo = [0z10, 0z20] + public static var foo = [0z10, 0z20] endclass assert_equal([0z10, 0z20], A.foo) A.foo = [0z30] @@ -7369,7 +7493,7 @@ func Test_object_variable_complex_type_check() return {} enddef class A - public this.Fn: func(list>): dict> = Foo + public var Fn: func(list>): dict> = Foo endclass var a = A.new() test_garbagecollect_now() @@ -7385,7 +7509,7 @@ func Test_object_variable_complex_type_check() return {} enddef class A - public this.Fn: func(list>): dict> = Foo + public var Fn: func(list>): dict> = Foo def Bar() this.Fn = "abc" this.Fn = Foo @@ -7405,7 +7529,7 @@ func Test_object_variable_complex_type_check() return {} enddef class A - public this.Fn: func(list>): dict> = Foo + public var Fn: func(list>): dict> = Foo endclass def Bar() var a = A.new() @@ -7425,7 +7549,7 @@ func Test_object_variable_complex_type_check() return {} enddef class A - public this.Fn = Foo + public var Fn = Foo endclass var a = A.new() test_garbagecollect_now() @@ -7441,7 +7565,7 @@ func Test_object_variable_complex_type_check() return {} enddef class A - public this.Fn = Foo + public var Fn = Foo def Bar() this.Fn = "abc" this.Fn = Foo @@ -7461,7 +7585,7 @@ func Test_object_variable_complex_type_check() return {} enddef class A - public this.Fn = Foo + public var Fn = Foo endclass def Bar() var a = A.new() @@ -7480,8 +7604,8 @@ func Test_object_variable_complex_type_check() return {} enddef class A - public this.Fn: any = Foo - public this.Fn2: any + public var Fn: any = Foo + public var Fn2: any endclass var a = A.new() @@ -7506,8 +7630,8 @@ func Test_object_variable_complex_type_check() return {} enddef class A - public this.Fn: any = Foo - public this.Fn2: any + public var Fn: any = Foo + public var Fn2: any def Bar() assert_equal('func(list>): dict>', typename(this.Fn)) @@ -7536,8 +7660,8 @@ func Test_object_variable_complex_type_check() return {} enddef class A - public this.Fn: any = Foo - public this.Fn2: any + public var Fn: any = Foo + public var Fn2: any endclass def Bar() @@ -7564,7 +7688,7 @@ def Test_recursive_object_method_call() var lines =<< trim END vim9script class A - this.val: number = 0 + var val: number = 0 def Foo(): number if this.val >= 90 return this.val @@ -7584,7 +7708,7 @@ def Test_recursive_class_method_call() var lines =<< trim END vim9script class A - static val: number = 0 + static var val: number = 0 static def Foo(): number if val >= 90 return val @@ -7689,7 +7813,7 @@ def Test_op_and_assignment() var lines =<< trim END vim9script class A - public static val: list = [] + public static var val: list = [] static def Foo(): list val += [1] return val @@ -7710,7 +7834,7 @@ def Test_op_and_assignment() lines =<< trim END vim9script class A - public this.val: list = [] + public var val: list = [] def Foo(): list this.val += [1] return this.val @@ -7766,7 +7890,7 @@ def Test_object_funcref() lines =<< trim END vim9script class A - this.val: number + var val: number def Foo(): number return this.val enddef @@ -7876,7 +8000,7 @@ def Test_object_funcref() lines =<< trim END vim9script class A - this.val: number + var val: number def Foo(): number return this.val enddef @@ -7928,7 +8052,7 @@ def Test_class_funcref() lines =<< trim END vim9script class A - public static val: number + public static var val: number static def Foo(): number return val enddef @@ -8032,7 +8156,7 @@ def Test_class_funcref() lines =<< trim END vim9script class A - public static val: number + public static var val: number static def Foo(): number return val enddef @@ -8058,7 +8182,7 @@ def Test_object_member_funcref() enddef class A - this.Cb: func(number): number = Foo + var Cb: func(number): number = Foo def Bar() assert_equal(200, this.Cb(20)) enddef @@ -8077,7 +8201,7 @@ def Test_object_member_funcref() enddef class A - this.Cb: func(number): number = Foo + var Cb: func(number): number = Foo endclass def Bar() @@ -8096,7 +8220,7 @@ def Test_object_member_funcref() enddef class A - this.Cb: func(number): number = Foo + var Cb: func(number): number = Foo endclass var a = A.new() @@ -8109,7 +8233,7 @@ def Test_object_member_funcref() lines =<< trim END vim9script class A - this.Cb: func(number): number = this.Foo + var Cb: func(number): number = this.Foo def Foo(n: number): number return n * 10 enddef @@ -8128,7 +8252,7 @@ def Test_object_member_funcref() lines =<< trim END vim9script class A - this.Cb: func(number): number = this.Foo + var Cb: func(number): number = this.Foo def Foo(n: number): number return n * 10 enddef @@ -8147,7 +8271,7 @@ def Test_object_member_funcref() lines =<< trim END vim9script class A - this.Cb = this.Foo + var Cb = this.Foo def Foo(n: number): number return n * 10 enddef @@ -8169,7 +8293,7 @@ def Test_class_member_funcref() enddef class A - static Cb = Foo + static var Cb = Foo static def Bar() assert_equal(200, Cb(20)) enddef @@ -8187,7 +8311,7 @@ def Test_class_member_funcref() enddef class A - public static Cb = Foo + public static var Cb = Foo endclass def Bar() @@ -8205,7 +8329,7 @@ def Test_class_member_funcref() enddef class A - public static Cb = Foo + public static var Cb = Foo endclass assert_equal(200, A.Cb(20)) @@ -8217,7 +8341,7 @@ def Test_class_member_funcref() lines =<< trim END vim9script class A - static Cb: func(number): number + static var Cb: func(number): number static def Foo(n: number): number return n * 10 enddef @@ -8238,7 +8362,7 @@ def Test_class_member_funcref() lines =<< trim END vim9script class A - static Cb: func(number): number + static var Cb: func(number): number static def Foo(n: number): number return n * 10 enddef @@ -8259,7 +8383,7 @@ def Test_class_member_funcref() lines =<< trim END vim9script class A - static Cb: func(number): number + static var Cb: func(number): number static def Foo(n: number): number return n * 10 enddef @@ -8281,8 +8405,8 @@ def Test_objmethod_popup_callback() vim9script class A - this.selection: number = -1 - this.filterkeys: list = [] + var selection: number = -1 + var filterkeys: list = [] def PopupFilter(id: number, key: string): bool add(this.filterkeys, key) @@ -8317,8 +8441,8 @@ def Test_objmethod_popup_callback() vim9script class A - this.selection: number = -1 - this.filterkeys: list = [] + var selection: number = -1 + var filterkeys: list = [] def PopupFilter(id: number, key: string): bool add(this.filterkeys, key) @@ -8359,8 +8483,8 @@ def Test_classmethod_popup_callback() vim9script class A - static selection: number = -1 - static filterkeys: list = [] + static var selection: number = -1 + static var filterkeys: list = [] static def PopupFilter(id: number, key: string): bool add(filterkeys, key) @@ -8394,8 +8518,8 @@ def Test_classmethod_popup_callback() vim9script class A - static selection: number = -1 - static filterkeys: list = [] + static var selection: number = -1 + static var filterkeys: list = [] static def PopupFilter(id: number, key: string): bool add(filterkeys, key) @@ -8435,7 +8559,7 @@ def Test_objmethod_timer_callback() vim9script class A - this.timerTick: number = -1 + var timerTick: number = -1 def TimerCb(timerID: number) this.timerTick = 6 enddef @@ -8457,7 +8581,7 @@ def Test_objmethod_timer_callback() vim9script class A - this.timerTick: number = -1 + var timerTick: number = -1 def TimerCb(timerID: number) this.timerTick = 6 enddef @@ -8485,7 +8609,7 @@ def Test_classmethod_timer_callback() vim9script class A - static timerTick: number = -1 + static var timerTick: number = -1 static def TimerCb(timerID: number) timerTick = 6 enddef @@ -8506,7 +8630,7 @@ def Test_classmethod_timer_callback() vim9script class A - static timerTick: number = -1 + static var timerTick: number = -1 static def TimerCb(timerID: number) timerTick = 6 enddef @@ -8532,11 +8656,11 @@ def Test_class_variable_as_operands() var lines =<< trim END vim9script class Tests - static truthy: bool = true - public static TruthyFn: func - static list: list = [] - static four: number = 4 - static str: string = 'hello' + static var truthy: bool = true + public static var TruthyFn: func + static var list: list = [] + static var four: number = 4 + static var str: string = 'hello' static def Str(): string return str @@ -8637,7 +8761,7 @@ def Test_dict_member_key_type_check() vim9script abstract class State - this.numbers: dict = {0: 'nil', 1: 'unity'} + var numbers: dict = {0: 'nil', 1: 'unity'} endclass class Test extends State @@ -8722,7 +8846,7 @@ def Test_dict_member_key_type_check() vim9script class A - this.numbers: dict = {a: '1', b: '2'} + var numbers: dict = {a: '1', b: '2'} def new() enddef @@ -8742,7 +8866,7 @@ def Test_dict_member_key_type_check() vim9script class A - this.numbers: dict = {a: 1, b: 2} + var numbers: dict = {a: 1, b: 2} def new() enddef diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim index 62da8c7ed8..4e8112244b 100644 --- a/src/testdir/test_vim9_disassemble.vim +++ b/src/testdir/test_vim9_disassemble.vim @@ -3062,15 +3062,15 @@ def Test_disassemble_interface_static_member() var lines =<< trim END vim9script interface I - this.o_var: number - this.o_var2: number + var o_var: number + var o_var2: number endinterface class C implements I - public static s_var: number - this.o_var: number - public static s_var2: number - this.o_var2: number + public static var s_var: number + var o_var: number + public static var s_var2: number + var o_var2: number endclass def F1(i: I) @@ -3124,7 +3124,7 @@ def Test_disassemble_class_variable() vim9script class A - public static val = 10 + public static var val = 10 def Foo(): number val = 20 return val @@ -3173,7 +3173,7 @@ def Test_disassemble_ifargnotset() var lines =<< trim END vim9script class A - this.val: number = 10 + var val: number = 10 endclass g:instr = execute('disassemble A.new') END diff --git a/src/testdir/test_vim9_typealias.vim b/src/testdir/test_vim9_typealias.vim index 8843cb5d1a..e735e7980f 100644 --- a/src/testdir/test_vim9_typealias.vim +++ b/src/testdir/test_vim9_typealias.vim @@ -393,7 +393,7 @@ def Test_typealias_import() lines =<< trim END vim9script export class MyClass - this.val = 10 + var val = 10 endclass END writefile(lines, 'Xtypeexport4.vim', 'D') @@ -537,7 +537,7 @@ def Test_typealias_class() var lines =<< trim END vim9script class C - this.color = 'green' + var color = 'green' endclass type MyClass = C var o: MyClass = MyClass.new() diff --git a/src/version.c b/src/version.c index a2623b8c43..a81665af11 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2167, /**/ 2166, /**/ diff --git a/src/vim9class.c b/src/vim9class.c index b19f8c96f2..9d17140fd1 100644 --- a/src/vim9class.c +++ b/src/vim9class.c @@ -1558,9 +1558,9 @@ early_ret: has_public = TRUE; p = skipwhite(line + 6); - if (STRNCMP(p, "this", 4) != 0 && STRNCMP(p, "static", 6) != 0) + if (STRNCMP(p, "var", 3) != 0 && STRNCMP(p, "static", 6) != 0) { - emsg(_(e_public_must_be_followed_by_this_or_static)); + emsg(_(e_public_must_be_followed_by_var_or_static)); break; } } @@ -1615,30 +1615,39 @@ early_ret: } has_static = TRUE; p = skipwhite(ps + 6); + + if (STRNCMP(p, "var", 3) != 0 && STRNCMP(p, "def", 3) != 0) + { + emsg(_(e_static_must_be_followed_by_var_or_def)); + break; + } } // object members (public, read access, private): - // "this._varname" - // "this.varname" - // "public this.varname" - if (STRNCMP(p, "this", 4) == 0) + // "var _varname" + // "var varname" + // "public var varname" + // class members (public, read access, private): + // "static var _varname" + // "static var varname" + // "public static var varname" + if (checkforcmd(&p, "var", 3)) { - if (p[4] != '.' || !eval_isnamec1(p[5])) - { - semsg(_(e_invalid_object_variable_declaration_str), p); - break; - } - if (has_static) - { - emsg(_(e_static_cannot_be_followed_by_this)); - break; - } - char_u *varname = p + 5; + char_u *varname = p; char_u *varname_end = NULL; type_T *type = NULL; char_u *init_expr = NULL; int has_type = FALSE; + if (!eval_isnamec1(*p)) + { + if (has_static) + semsg(_(e_invalid_class_variable_declaration_str), line); + else + semsg(_(e_invalid_object_variable_declaration_str), line); + break; + } + if (!is_class && *varname == '_') { // private variables are not supported in an interface @@ -1662,7 +1671,7 @@ early_ret: vim_free(init_expr); break; } - if (add_member(&objmembers, varname, varname_end, + if (add_member(has_static ? &classmembers : &objmembers, varname, varname_end, has_public, has_type, type, init_expr) == FAIL) { vim_free(init_expr); @@ -1764,42 +1773,6 @@ early_ret: } } - // class members - else if (has_static) - { - // class members (public, read access, private): - // "static _varname" - // "static varname" - // "public static varname" - char_u *varname = p; - char_u *varname_end = NULL; - int has_type = FALSE; - type_T *type = NULL; - char_u *init_expr = NULL; - - if (parse_member(eap, line, varname, has_public, - &varname_end, &has_type, &type_list, &type, - &init_expr) == FAIL) - break; - if (is_reserved_varname(varname, varname_end)) - { - vim_free(init_expr); - break; - } - if (is_duplicate_variable(&classmembers, &objmembers, varname, - varname_end)) - { - vim_free(init_expr); - break; - } - if (add_member(&classmembers, varname, varname_end, - has_public, has_type, type, init_expr) == FAIL) - { - vim_free(init_expr); - break; - } - } - else { if (is_class) From 323dda1484d95ee5c8a1b2205f8c495446df75ee Mon Sep 17 00:00:00 2001 From: iam28th Date: Thu, 14 Dec 2023 20:30:26 +0100 Subject: [PATCH 033/120] runtime(termdebug): add Tbreak command closes: #13656 Signed-off-by: iam28th Signed-off-by: Christian Brabandt --- runtime/doc/tags | 1 + runtime/doc/terminal.txt | 3 + .../dist/opt/termdebug/plugin/termdebug.vim | 11 ++- src/testdir/test_termdebug.vim | 88 +++++++++++++++++-- 4 files changed, 95 insertions(+), 8 deletions(-) diff --git a/runtime/doc/tags b/runtime/doc/tags index fdda06b7e1..964789c316 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -2159,6 +2159,7 @@ $quote eval.txt /*$quote* :Stop terminal.txt /*:Stop* :TOhtml syntax.txt /*:TOhtml* :TarDiff pi_tar.txt /*:TarDiff* +:Tbreak terminal.txt /*:Tbreak* :Termdebug terminal.txt /*:Termdebug* :TermdebugCommand terminal.txt /*:TermdebugCommand* :Texplore pi_netrw.txt /*:Texplore* diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt index 3869bcdfba..5647ff49b0 100644 --- a/runtime/doc/terminal.txt +++ b/runtime/doc/terminal.txt @@ -1331,6 +1331,9 @@ gdb: *:Break* set a breakpoint at the cursor position :Break {position} set a breakpoint at the specified position + *:Tbreak* set a temporary breakpoint at the cursor position + :Tbreak {position} + set a temporary breakpoint at the specified position *:Clear* delete the breakpoint at the cursor position *:Step* execute the gdb "step" command diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim index e764c2353a..1dce91b508 100644 --- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim +++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim @@ -953,6 +953,7 @@ func s:InstallCommands() set cpo&vim command -nargs=? Break call s:SetBreakpoint() + command -nargs=? Tbreak call s:SetBreakpoint(, v:true) command Clear call s:ClearBreakpoint() command Step call s:SendResumingCommand('-exec-step') command Over call s:SendResumingCommand('-exec-next') @@ -1067,6 +1068,7 @@ endfunc " Delete installed debugger commands in the current window. func s:DeleteCommands() delcommand Break + delcommand Tbreak delcommand Clear delcommand Step delcommand Over @@ -1167,7 +1169,7 @@ func s:Until(at) endfunc " :Break - Set a breakpoint at the cursor position. -func s:SetBreakpoint(at) +func s:SetBreakpoint(at, tbreak=v:false) " Setting a breakpoint may not work while the program is running. " Interrupt to make it work. let do_continue = 0 @@ -1180,7 +1182,12 @@ func s:SetBreakpoint(at) " Use the fname:lnum format, older gdb can't handle --source. let at = empty(a:at) ? \ fnameescape(expand('%:p')) . ':' . line('.') : a:at - call s:SendCommand('-break-insert ' . at) + if a:tbreak + let cmd = '-break-insert -t ' . at + else + let cmd = '-break-insert ' . at + endif + call s:SendCommand(cmd) if do_continue Continue endif diff --git a/src/testdir/test_termdebug.vim b/src/testdir/test_termdebug.vim index 70e11873f9..68bffd4b28 100644 --- a/src/testdir/test_termdebug.vim +++ b/src/testdir/test_termdebug.vim @@ -18,9 +18,8 @@ if g:GCC->empty() throw 'Skipped: gcc is not found in $PATH' endif -packadd termdebug - -func Test_termdebug_basic() +function s:generate_files(bin_name) + let src_name = a:bin_name .. '.c' let lines =<< trim END #include #include @@ -46,8 +45,21 @@ func Test_termdebug_basic() return 0; } END - call writefile(lines, 'XTD_basic.c', 'D') - call system($'{g:GCC} -g -o XTD_basic XTD_basic.c') + call writefile(lines, src_name) + call system($'{g:GCC} -g -o {a:bin_name} {src_name}') +endfunction + +function s:cleanup_files(bin_name) + call delete(a:bin_name) + call delete(a:bin_name .. '.c') +endfunction + +packadd termdebug + +func Test_termdebug_basic() + let bin_name = 'XTD_basic' + let src_name = bin_name .. '.c' + call s:generate_files(bin_name) edit XTD_basic.c Termdebug ./XTD_basic @@ -148,7 +160,71 @@ func Test_termdebug_basic() call WaitForAssert({-> assert_equal(1, winnr('$'))}) call assert_equal([], sign_getplaced('', #{group: 'TermDebug'})[0].signs) - call delete('XTD_basic') + call s:cleanup_files(bin_name) + %bw! +endfunc + +func Test_termdebug_tbreak() + let g:test_is_flaky = 1 + let bin_name = 'XTD_tbreak' + let src_name = bin_name .. '.c' + + eval s:generate_files(bin_name) + + execute 'edit ' .. src_name + execute 'Termdebug ./' .. bin_name + + call WaitForAssert({-> assert_equal(3, winnr('$'))}) + let gdb_buf = winbufnr(1) + wincmd b + + let bp_line = 22 " 'return' statement in main + let temp_bp_line = 10 " 'if' statement in 'for' loop body + execute "Tbreak " .. temp_bp_line + execute "Break " .. bp_line + + call term_wait(gdb_buf) + redraw! + " both temporary and normal breakpoint signs were displayed... + call assert_equal([ + \ {'lnum': temp_bp_line, 'id': 1014, 'name': 'debugBreakpoint1.0', + \ 'priority': 110, 'group': 'TermDebug'}, + \ {'lnum': bp_line, 'id': 2014, 'name': 'debugBreakpoint2.0', + \ 'priority': 110, 'group': 'TermDebug'}], + \ sign_getplaced('', #{group: 'TermDebug'})[0].signs) + + Run + call term_wait(gdb_buf, 400) + redraw! + " debugPC sign is on the line where the temp. bp was set; + " temp. bp sign was removed after hit; + " normal bp sign is still present + call WaitForAssert({-> assert_equal([ + \ {'lnum': temp_bp_line, 'id': 12, 'name': 'debugPC', 'priority': 110, + \ 'group': 'TermDebug'}, + \ {'lnum': bp_line, 'id': 2014, 'name': 'debugBreakpoint2.0', + \ 'priority': 110, 'group': 'TermDebug'}], + \ sign_getplaced('', #{group: 'TermDebug'})[0].signs)}) + + Continue + call term_wait(gdb_buf) + redraw! + " debugPC is on the normal breakpoint, + " temp. bp on line 10 was only hit once + call WaitForAssert({-> assert_equal([ + \ {'lnum': bp_line, 'id': 12, 'name': 'debugPC', 'priority': 110, + \ 'group': 'TermDebug'}, + \ {'lnum': bp_line, 'id': 2014, 'name': 'debugBreakpoint2.0', + \ 'priority': 110, 'group': 'TermDebug'}], + \ sign_getplaced('', #{group: 'TermDebug'})[0].signs)}) + + wincmd t + quit! + redraw! + call WaitForAssert({-> assert_equal(1, winnr('$'))}) + call assert_equal([], sign_getplaced('', #{group: 'TermDebug'})[0].signs) + + eval s:cleanup_files(bin_name) %bw! endfunc From 17dca3cb97cdd7835e334b990565c8c0b93b1284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Pell=C3=A9?= Date: Thu, 14 Dec 2023 20:36:32 +0100 Subject: [PATCH 034/120] runtime(doc): grammar & typo fixes closes: #13654 --- runtime/doc/builtin.txt | 8 ++++---- runtime/doc/os_vms.txt | 4 ++-- runtime/doc/vim9class.txt | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index 657fe8dbd6..6f05055c38 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -1,4 +1,4 @@ -*builtin.txt* For Vim version 9.0. Last change: 2023 Nov 20 +*builtin.txt* For Vim version 9.0. Last change: 2023 Dec 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -6688,9 +6688,9 @@ printf({fmt}, {expr1} ...) *printf()* < This limits the length of the text used from "line" to "width" bytes. - If the argument to be formatted is specified using a posional - argument specifier, and a '*' is used to indicate that a - number argument is to be used to specify the width or + If the argument to be formatted is specified using a + positional argument specifier, and a '*' is used to indicate + that a number argument is to be used to specify the width or precision, the argument(s) to be used must also be specified using a {n$} positional argument specifier. See |printf-$|. diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt index 175bc7acd0..e7fa348afc 100644 --- a/runtime/doc/os_vms.txt +++ b/runtime/doc/os_vms.txt @@ -1,4 +1,4 @@ -*os_vms.txt* For Vim version 9.0. Last change: 2023 Dec 09 +*os_vms.txt* For Vim version 9.0. Last change: 2023 Dec 14 VIM REFERENCE MANUAL @@ -771,7 +771,7 @@ Version 9.0 (2023 Nov 27) on X86_64 the CRTL_VER is kept under 80500000 level. The proper solution would be to rename the getline function to something else in the struct (and in all places it is used) - and avoiding to use POSIX functions in structs, but this change would - impact on all other operating systems. (added the the VMS TODO list) + impact on all other operating systems. (added to the VMS TODO list) Read more about at https://forum.vmssoftware.com/viewtopic.php?f=38&t=8914&p=20049 - os_vms_conf.h includes have been reviewed for all architectures - added support for the MODIFIED_BY define diff --git a/runtime/doc/vim9class.txt b/runtime/doc/vim9class.txt index cb4dd9e217..97813f0ee2 100644 --- a/runtime/doc/vim9class.txt +++ b/runtime/doc/vim9class.txt @@ -1,4 +1,4 @@ -*vim9class.txt* For Vim version 9.0. Last change: 2023 Nov 20 +*vim9class.txt* For Vim version 9.0. Last change: 2023 Dec 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -220,7 +220,7 @@ see this pattern: > < *E1390* Not only is this text you need to write, it also has the type of each -variables twice. Since this is so common a shorter way to write new() is +variable twice. Since this is so common a shorter way to write new() is provided: > def new(this.lnum, this.col) @@ -265,7 +265,7 @@ always returns an object of the class. *E1386* When invoking an object method, the method name should be preceded by the -object variable name. A object method cannot be invoked using the class +object variable name. An object method cannot be invoked using the class name. ============================================================================== From 3afc9f2556faf2574d7950d879f2bf61612f3367 Mon Sep 17 00:00:00 2001 From: Eisuke Kawashima Date: Fri, 15 Dec 2023 04:38:29 +0900 Subject: [PATCH 035/120] runtime(cmake): sync runtime files with upstream (#13597) Signed-off-by: e-kwsm@users.noreply.github.com Signed-off-by: Christian Brabandt --- runtime/indent/cmake.vim | 49 +- runtime/syntax/cmake.vim | 4713 +++++++++++++++++++++++++++++++++++++- 2 files changed, 4637 insertions(+), 125 deletions(-) diff --git a/runtime/indent/cmake.vim b/runtime/indent/cmake.vim index af27c0d49b..c1aa3bff86 100644 --- a/runtime/indent/cmake.vim +++ b/runtime/indent/cmake.vim @@ -3,9 +3,9 @@ " Author: Andy Cedilnik " Maintainer: Dimitri Merejkowsky " Former Maintainer: Karthik Krishnan -" Last Change: 2022 Apr 06 +" Last Change: 2023 Dec 12 " -" Licence: The CMake license applies to this file. See +" License: The CMake license applies to this file. See " https://cmake.org/licensing " This implies that distribution with Vim is allowed @@ -55,32 +55,41 @@ fun! CMakeGetIndent(lnum) let cmake_indent_open_regex = '^\s*' . cmake_regex_identifier . \ '\s*(' . cmake_regex_arguments . \ '\(' . cmake_regex_comment . '\)\?$' - let cmake_indent_close_regex = '^' . cmake_regex_arguments . \ ')\s*' . \ '\(' . cmake_regex_comment . '\)\?$' - let cmake_indent_begin_regex = '^\s*\(IF\|MACRO\|FOREACH\|ELSE\|ELSEIF\|WHILE\|FUNCTION\)\s*(' - let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\|ELSEIF\|ENDWHILE\|ENDFUNCTION\)\s*(' + let cmake_closing_parens_line = '^\s*\()\+\)\s*$' - " Add - if previous_line =~? cmake_indent_comment_line " Handle comments - let ind = ind + let cmake_indent_begin_regex = '^\s*\(BLOCK\|IF\|MACRO\|FOREACH\|ELSE\|ELSEIF\|WHILE\|FUNCTION\)\s*(' + let cmake_indent_end_regex = '^\s*\(ENDBLOCK\|ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\|ELSEIF\|ENDWHILE\|ENDFUNCTION\)\s*(' + + if this_line =~? cmake_closing_parens_line + if previous_line !~? cmake_indent_open_regex + let ind = ind - shiftwidth() + endif else - if previous_line =~? cmake_indent_begin_regex - let ind = ind + shiftwidth() + " Add + if previous_line =~? cmake_indent_comment_line " Handle comments + let ind = ind + else + if previous_line =~? cmake_indent_begin_regex + let ind = ind + shiftwidth() + endif + if previous_line =~? cmake_indent_open_regex + let ind = ind + shiftwidth() + endif endif - if previous_line =~? cmake_indent_open_regex - let ind = ind + shiftwidth() - endif - endif - " Subtract - if this_line =~? cmake_indent_end_regex - let ind = ind - shiftwidth() - endif - if previous_line =~? cmake_indent_close_regex - let ind = ind - shiftwidth() + " Subtract + if this_line =~? cmake_indent_end_regex + let ind = ind - shiftwidth() + endif + if previous_line !~? cmake_closing_parens_line + if previous_line =~? cmake_indent_close_regex + let ind = ind - shiftwidth() + endif + endif endif return ind diff --git a/runtime/syntax/cmake.vim b/runtime/syntax/cmake.vim index 7340ac238e..c95503beb5 100644 --- a/runtime/syntax/cmake.vim +++ b/runtime/syntax/cmake.vim @@ -1,15 +1,15 @@ " Vim syntax file " Program: CMake - Cross-Platform Makefile Generator -" Version: cmake version 3.9.20170830-ge0713 +" Version: cmake version 3.27.20230713-gdc88dd5 " Language: CMake " Author: Andy Cedilnik , " Nicholas Hutchinson , " Patrick Boettcher " Maintainer: Dimitri Merejkowsky " Former Maintainer: Karthik Krishnan -" Last Change: 2017 Aug 30 +" Last Change: 2023 Jul 13 " -" Licence: The CMake license applies to this file. See +" License: The CMake license applies to this file. See " https://cmake.org/licensing " This implies that distribution with Vim is allowed @@ -19,335 +19,4799 @@ endif let s:keepcpo= &cpo set cpo&vim -syn region cmakeComment start="#" end="$" contains=cmakeTodo,cmakeLuaComment,@Spell -syn region cmakeLuaComment start="\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell +syn region cmakeBracketArgument start="\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell + +syn region cmakeComment start="#\(\[=*\[\)\@!" end="$" contains=cmakeTodo,@Spell +syn region cmakeBracketComment start="#\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained syn region cmakeRegistry start="\[" end="]" contained oneline contains=cmakeTodo,cmakeEscaped syn region cmakeGeneratorExpression start="$<" end=">" contained oneline contains=cmakeVariableValue,cmakeProperty,cmakeGeneratorExpressions,cmakeTodo -syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped +syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped,@Spell -syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo +syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo,cmakeVariableValue syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo -syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeArguments,cmakeTodo +syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeGeneratorExpressions,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo,@Spell syn case match syn keyword cmakeProperty contained - \ ABSTRACT ADDITIONAL_MAKE_CLEAN_FILES ADVANCED ALIASED_TARGET ALLOW_DUPLICATE_CUSTOM_TARGETS ANDROID_ANT_ADDITIONAL_OPTIONS ANDROID_API ANDROID_API_MIN ANDROID_ARCH ANDROID_ASSETS_DIRECTORIES ANDROID_GUI ANDROID_JAR_DEPENDENCIES ANDROID_JAR_DIRECTORIES ANDROID_JAVA_SOURCE_DIR ANDROID_NATIVE_LIB_DEPENDENCIES ANDROID_NATIVE_LIB_DIRECTORIES ANDROID_PROCESS_MAX ANDROID_PROGUARD ANDROID_PROGUARD_CONFIG_PATH ANDROID_SECURE_PROPS_PATH ANDROID_SKIP_ANT_STEP ANDROID_STL_TYPE ARCHIVE_OUTPUT_DIRECTORY ARCHIVE_OUTPUT_NAME ATTACHED_FILES ATTACHED_FILES_ON_FAIL AUTOGEN_BUILD_DIR AUTOGEN_SOURCE_GROUP AUTOGEN_TARGETS_FOLDER AUTOGEN_TARGET_DEPENDS AUTOMOC AUTOMOC_DEPEND_FILTERS AUTOMOC_MACRO_NAMES AUTOMOC_MOC_OPTIONS AUTOMOC_SOURCE_GROUP AUTOMOC_TARGETS_FOLDER AUTORCC AUTORCC_OPTIONS AUTORCC_SOURCE_GROUP AUTOUIC AUTOUIC_OPTIONS AUTOUIC_SEARCH_PATHS BINARY_DIR BUILDSYSTEM_TARGETS BUILD_RPATH BUILD_WITH_INSTALL_NAME_DIR BUILD_WITH_INSTALL_RPATH BUNDLE BUNDLE_EXTENSION CACHE_VARIABLES CLEAN_NO_CUSTOM CMAKE_CONFIGURE_DEPENDS CMAKE_CXX_KNOWN_FEATURES CMAKE_C_KNOWN_FEATURES COMPATIBLE_INTERFACE_BOOL COMPATIBLE_INTERFACE_NUMBER_MAX COMPATIBLE_INTERFACE_NUMBER_MIN COMPATIBLE_INTERFACE_STRING COMPILE_DEFINITIONS COMPILE_FEATURES COMPILE_FLAGS COMPILE_OPTIONS COMPILE_PDB_NAME COMPILE_PDB_OUTPUT_DIRECTORY COST CPACK_DESKTOP_SHORTCUTS CPACK_NEVER_OVERWRITE CPACK_PERMANENT CPACK_STARTUP_SHORTCUTS CPACK_START_MENU_SHORTCUTS CPACK_WIX_ACL CROSSCOMPILING_EMULATOR CUDA_EXTENSIONS CUDA_PTX_COMPILATION CUDA_RESOLVE_DEVICE_SYMBOLS CUDA_SEPARABLE_COMPILATION CUDA_STANDARD CUDA_STANDARD_REQUIRED CXX_EXTENSIONS CXX_STANDARD CXX_STANDARD_REQUIRED C_EXTENSIONS C_STANDARD C_STANDARD_REQUIRED DEBUG_CONFIGURATIONS DEBUG_POSTFIX DEFINE_SYMBOL DEFINITIONS DEPENDS DEPLOYMENT_REMOTE_DIRECTORY DISABLED DISABLED_FEATURES ECLIPSE_EXTRA_NATURES ENABLED_FEATURES ENABLED_LANGUAGES ENABLE_EXPORTS ENVIRONMENT EXCLUDE_FROM_ALL EXCLUDE_FROM_DEFAULT_BUILD EXPORT_NAME EXTERNAL_OBJECT EchoString FAIL_REGULAR_EXPRESSION FIND_LIBRARY_USE_LIB32_PATHS FIND_LIBRARY_USE_LIB64_PATHS FIND_LIBRARY_USE_LIBX32_PATHS FIND_LIBRARY_USE_OPENBSD_VERSIONING FIXTURES_CLEANUP FIXTURES_REQUIRED FIXTURES_SETUP FOLDER FRAMEWORK FRAMEWORK_VERSION Fortran_FORMAT Fortran_MODULE_DIRECTORY GENERATED GENERATOR_FILE_NAME GENERATOR_IS_MULTI_CONFIG GLOBAL_DEPENDS_DEBUG_MODE GLOBAL_DEPENDS_NO_CYCLES GNUtoMS HAS_CXX HEADER_FILE_ONLY HELPSTRING IMPLICIT_DEPENDS_INCLUDE_TRANSFORM IMPORTED IMPORTED_CONFIGURATIONS IMPORTED_IMPLIB IMPORTED_LIBNAME IMPORTED_LINK_DEPENDENT_LIBRARIES IMPORTED_LINK_INTERFACE_LANGUAGES IMPORTED_LINK_INTERFACE_LIBRARIES IMPORTED_LINK_INTERFACE_MULTIPLICITY IMPORTED_LOCATION IMPORTED_NO_SONAME IMPORTED_OBJECTS IMPORTED_SONAME IMPORT_PREFIX IMPORT_SUFFIX INCLUDE_DIRECTORIES INCLUDE_REGULAR_EXPRESSION INSTALL_NAME_DIR INSTALL_RPATH INSTALL_RPATH_USE_LINK_PATH INTERFACE_AUTOUIC_OPTIONS INTERFACE_COMPILE_DEFINITIONS INTERFACE_COMPILE_FEATURES INTERFACE_COMPILE_OPTIONS INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_POSITION_INDEPENDENT_CODE INTERFACE_SOURCES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES INTERPROCEDURAL_OPTIMIZATION IN_TRY_COMPILE IOS_INSTALL_COMBINED JOB_POOLS JOB_POOL_COMPILE JOB_POOL_LINK KEEP_EXTENSION LABELS LANGUAGE LIBRARY_OUTPUT_DIRECTORY LIBRARY_OUTPUT_NAME LINKER_LANGUAGE LINK_DEPENDS LINK_DEPENDS_NO_SHARED LINK_DIRECTORIES LINK_FLAGS LINK_INTERFACE_LIBRARIES LINK_INTERFACE_MULTIPLICITY LINK_LIBRARIES LINK_SEARCH_END_STATIC LINK_SEARCH_START_STATIC LINK_WHAT_YOU_USE LISTFILE_STACK LOCATION MACOSX_BUNDLE MACOSX_BUNDLE_INFO_PLIST MACOSX_FRAMEWORK_INFO_PLIST MACOSX_PACKAGE_LOCATION MACOSX_RPATH MACROS MANUALLY_ADDED_DEPENDENCIES MEASUREMENT MODIFIED NAME NO_SONAME NO_SYSTEM_FROM_IMPORTED OBJECT_DEPENDS OBJECT_OUTPUTS OSX_ARCHITECTURES OUTPUT_NAME PACKAGES_FOUND PACKAGES_NOT_FOUND PARENT_DIRECTORY PASS_REGULAR_EXPRESSION PDB_NAME PDB_OUTPUT_DIRECTORY POSITION_INDEPENDENT_CODE POST_INSTALL_SCRIPT PREDEFINED_TARGETS_FOLDER PREFIX PRE_INSTALL_SCRIPT PRIVATE_HEADER PROCESSORS PROJECT_LABEL PUBLIC_HEADER REPORT_UNDEFINED_PROPERTIES REQUIRED_FILES RESOURCE RESOURCE_LOCK RULE_LAUNCH_COMPILE RULE_LAUNCH_CUSTOM RULE_LAUNCH_LINK RULE_MESSAGES RUNTIME_OUTPUT_DIRECTORY RUNTIME_OUTPUT_NAME RUN_SERIAL SKIP_AUTOGEN SKIP_AUTOMOC SKIP_AUTORCC SKIP_AUTOUIC SKIP_BUILD_RPATH SKIP_RETURN_CODE SOURCES SOURCE_DIR SOVERSION STATIC_LIBRARY_FLAGS STRINGS SUBDIRECTORIES SUFFIX SYMBOLIC TARGET_ARCHIVES_MAY_BE_SHARED_LIBS TARGET_MESSAGES TARGET_SUPPORTS_SHARED_LIBS TEST_INCLUDE_FILE TEST_INCLUDE_FILES TIMEOUT TIMEOUT_AFTER_MATCH TYPE USE_FOLDERS VALUE VARIABLES VERSION VISIBILITY_INLINES_HIDDEN VS_CONFIGURATION_TYPE VS_COPY_TO_OUT_DIR VS_DEBUGGER_WORKING_DIRECTORY VS_DEPLOYMENT_CONTENT VS_DEPLOYMENT_LOCATION VS_DESKTOP_EXTENSIONS_VERSION VS_DOTNET_REFERENCES VS_DOTNET_REFERENCES_COPY_LOCAL VS_DOTNET_TARGET_FRAMEWORK_VERSION VS_GLOBAL_KEYWORD VS_GLOBAL_PROJECT_TYPES VS_GLOBAL_ROOTNAMESPACE VS_INCLUDE_IN_VSIX VS_IOT_EXTENSIONS_VERSION VS_IOT_STARTUP_TASK VS_KEYWORD VS_MOBILE_EXTENSIONS_VERSION VS_RESOURCE_GENERATOR VS_SCC_AUXPATH VS_SCC_LOCALPATH VS_SCC_PROJECTNAME VS_SCC_PROVIDER VS_SDK_REFERENCES VS_SHADER_ENTRYPOINT VS_SHADER_FLAGS VS_SHADER_MODEL VS_SHADER_TYPE VS_STARTUP_PROJECT VS_TOOL_OVERRIDE VS_USER_PROPS VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION VS_WINRT_COMPONENT VS_WINRT_EXTENSIONS VS_WINRT_REFERENCES VS_XAML_TYPE WILL_FAIL WIN32_EXECUTABLE WINDOWS_EXPORT_ALL_SYMBOLS WORKING_DIRECTORY WRAP_EXCLUDE XCODE_EMIT_EFFECTIVE_PLATFORM_NAME XCODE_EXPLICIT_FILE_TYPE XCODE_FILE_ATTRIBUTES XCODE_LAST_KNOWN_FILE_TYPE XCODE_PRODUCT_TYPE XCTEST + \ ABSTRACT + \ ADDITIONAL_CLEAN_FILES + \ ADDITIONAL_MAKE_CLEAN_FILES + \ ADVANCED + \ AIX_EXPORT_ALL_SYMBOLS + \ ALIASED_TARGET + \ ALIAS_GLOBAL + \ ALLOW_DUPLICATE_CUSTOM_TARGETS + \ ANDROID_ANT_ADDITIONAL_OPTIONS + \ ANDROID_API + \ ANDROID_API_MIN + \ ANDROID_ARCH + \ ANDROID_ASSETS_DIRECTORIES + \ ANDROID_GUI + \ ANDROID_JAR_DEPENDENCIES + \ ANDROID_JAR_DIRECTORIES + \ ANDROID_JAVA_SOURCE_DIR + \ ANDROID_NATIVE_LIB_DEPENDENCIES + \ ANDROID_NATIVE_LIB_DIRECTORIES + \ ANDROID_PROCESS_MAX + \ ANDROID_PROGUARD + \ ANDROID_PROGUARD_CONFIG_PATH + \ ANDROID_SECURE_PROPS_PATH + \ ANDROID_SKIP_ANT_STEP + \ ANDROID_STL_TYPE + \ ARCHIVE_OUTPUT_DIRECTORY + \ ARCHIVE_OUTPUT_NAME + \ ATTACHED_FILES + \ ATTACHED_FILES_ON_FAIL + \ AUTOGEN_BUILD_DIR + \ AUTOGEN_COMMAND_LINE_LENGTH_MAX + \ AUTOGEN_ORIGIN_DEPENDS + \ AUTOGEN_PARALLEL + \ AUTOGEN_SOURCE_GROUP + \ AUTOGEN_USE_SYSTEM_INCLUDE + \ AUTOGEN_TARGETS_FOLDER + \ AUTOGEN_TARGET_DEPENDS + \ AUTOGEN_USE_SYSTEM_INCLUDE + \ AUTOMOC + \ AUTOMOC_COMPILER_PREDEFINES + \ AUTOMOC_DEPEND_FILTERS + \ AUTOMOC_EXECUTABLE + \ AUTOMOC_MACRO_NAMES + \ AUTOMOC_MOC_OPTIONS + \ AUTOMOC_PATH_PREFIX + \ AUTOMOC_SOURCE_GROUP + \ AUTOMOC_TARGETS_FOLDER + \ AUTORCC + \ AUTORCC_EXECUTABLE + \ AUTORCC_OPTIONS + \ AUTORCC_SOURCE_GROUP + \ AUTOUIC + \ AUTOUIC_EXECUTABLE + \ AUTOUIC_OPTIONS + \ AUTOUIC_SEARCH_PATHS + \ AUTOUIC_SOURCE_GROUP + \ BINARY_DIR + \ BUILDSYSTEM_TARGETS + \ BUILD_RPATH + \ BUILD_RPATH_USE_ORIGIN + \ BUILD_WITH_INSTALL_NAME_DIR + \ BUILD_WITH_INSTALL_RPATH + \ BUNDLE + \ BUNDLE_EXTENSION + \ CACHE_VARIABLES + \ CLEAN_NO_CUSTOM + \ CMAKE_CONFIGURE_DEPENDS + \ CMAKE_CUDA_KNOWN_FEATURES + \ CMAKE_CXX_KNOWN_FEATURES + \ CMAKE_C_KNOWN_FEATURES + \ CMAKE_ROLE + \ COMMON_LANGUAGE_RUNTIME + \ COMPATIBLE_INTERFACE_BOOL + \ COMPATIBLE_INTERFACE_NUMBER_MAX + \ COMPATIBLE_INTERFACE_NUMBER_MIN + \ COMPATIBLE_INTERFACE_STRING + \ COMPILE_DEFINITIONS + \ COMPILE_FEATURES + \ COMPILE_FLAGS + \ COMPILE_OPTIONS + \ COMPILE_PDB_NAME + \ COMPILE_PDB_OUTPUT_DIRECTORY + \ COMPILE_WARNING_AS_ERROR + \ COST + \ CPACK_DESKTOP_SHORTCUTS + \ CPACK_NEVER_OVERWRITE + \ CPACK_PERMANENT + \ CPACK_STARTUP_SHORTCUTS + \ CPACK_START_MENU_SHORTCUTS + \ CPACK_WIX_ACL + \ CROSSCOMPILING_EMULATOR + \ CUDA_ARCHITECTURES + \ CUDA_CUBIN_COMPILATION + \ CUDA_EXTENSIONS + \ CUDA_FATBIN_COMPILATION + \ CUDA_OPTIX_COMPILATION + \ CUDA_PTX_COMPILATION + \ CUDA_RESOLVE_DEVICE_SYMBOLS + \ CUDA_RUNTIME_LIBRARY + \ CUDA_SEPARABLE_COMPILATION + \ CUDA_STANDARD + \ CUDA_STANDARD_REQUIRED + \ CXX_EXTENSIONS + \ CXX_MODULE_DIRS + \ CXX_MODULE_SET + \ CXX_MODULE_SETS + \ CXX_SCAN_FOR_MODULES + \ CXX_STANDARD + \ CXX_STANDARD_REQUIRED + \ C_EXTENSIONS + \ C_STANDARD + \ C_STANDARD_REQUIRED + \ DEBUG_CONFIGURATIONS + \ DEBUG_POSTFIX + \ DEFINE_SYMBOL + \ DEFINITIONS + \ DEPENDS + \ DEPLOYMENT_ADDITIONAL_FILES + \ DEPLOYMENT_REMOTE_DIRECTORY + \ DEPRECATION + \ DISABLED + \ DISABLED_FEATURES + \ DISABLE_PRECOMPILE_HEADERS + \ DLL_NAME_WITH_SOVERSION + \ DOTNET_SDK + \ DOTNET_TARGET_FRAMEWORK + \ DOTNET_TARGET_FRAMEWORK_VERSION + \ ECLIPSE_EXTRA_CPROJECT_CONTENTS + \ ECLIPSE_EXTRA_NATURES + \ ENABLED_FEATURES + \ ENABLED_LANGUAGES + \ ENABLE_EXPORTS + \ ENVIRONMENT + \ ENVIRONMENT_MODIFICATION + \ EXCLUDE_FROM_ALL + \ EXCLUDE_FROM_DEFAULT_BUILD + \ EXPORT_COMPILE_COMMANDS + \ EXPORT_NAME + \ EXPORT_NO_SYSTEM + \ EXPORT_PROPERTIES + \ EXTERNAL_OBJECT + \ EchoString + \ FAIL_REGULAR_EXPRESSION + \ FIND_LIBRARY_USE_LIB32_PATHS + \ FIND_LIBRARY_USE_LIB64_PATHS + \ FIND_LIBRARY_USE_LIBX32_PATHS + \ FIND_LIBRARY_USE_OPENBSD_VERSIONING + \ FIXTURES_CLEANUP + \ FIXTURES_REQUIRED + \ FIXTURES_SETUP + \ FOLDER + \ FRAMEWORK + \ FRAMEWORK_VERSION + \ Fortran_BUILDING_INSTRINSIC_MODULES + \ Fortran_FORMAT + \ Fortran_MODULE_DIRECTORY + \ Fortran_PREPROCESS + \ GENERATED + \ GENERATOR_FILE_NAME + \ GENERATOR_IS_MULTI_CONFIG + \ GHS_INTEGRITY_APP + \ GHS_NO_SOURCE_GROUP_FILE + \ GLOBAL_DEPENDS_DEBUG_MODE + \ GLOBAL_DEPENDS_NO_CYCLES + \ GNUtoMS + \ HAS_CXX + \ HEADER_DIRS + \ HEADER_FILE_ONLY + \ HEADER_SET + \ HEADER_SETS + \ HELPSTRING + \ HIP_ARCHITECTURES + \ HIP_EXTENSIONS + \ HIP_STANDARD + \ HIP_STANDARD_REQUIRED + \ IMPLICIT_DEPENDS_INCLUDE_TRANSFORM + \ IMPORTED + \ IMPORTED_COMMON_LANGUAGE_RUNTIME + \ IMPORTED_CONFIGURATIONS + \ IMPORTED_GLOBAL + \ IMPORTED_IMPLIB + \ IMPORTED_LIBNAME + \ IMPORTED_LINK_DEPENDENT_LIBRARIES + \ IMPORTED_LINK_INTERFACE_LANGUAGES + \ IMPORTED_LINK_INTERFACE_LIBRARIES + \ IMPORTED_LINK_INTERFACE_MULTIPLICITY + \ IMPORTED_LOCATION + \ IMPORTED_NO_SONAME + \ IMPORTED_NO_SYSTEM + \ IMPORTED_OBJECTS + \ IMPORTED_SONAME + \ IMPORTED_TARGETS + \ IMPORT_PREFIX + \ IMPORT_SUFFIX + \ INCLUDE_DIRECTORIES + \ INCLUDE_REGULAR_EXPRESSION + \ INSTALL_NAME_DIR + \ INSTALL_REMOVE_ENVIRONMENT_RPATH + \ INSTALL_RPATH + \ INSTALL_RPATH_USE_LINK_PATH + \ INTERFACE_AUTOMOC_MACRO_NAMES + \ INTERFACE_AUTOUIC_OPTIONS + \ INTERFACE_AUTOMOC_MACRO_NAMES + \ INTERFACE_COMPILE_DEFINITIONS + \ INTERFACE_COMPILE_FEATURES + \ INTERFACE_COMPILE_OPTIONS + \ INTERFACE_CXX_MODULE_SETS + \ INTERFACE_HEADER_SETS + \ INTERFACE_HEADER_SETS_TO_VERIFY + \ INTERFACE_INCLUDE_DIRECTORIES + \ INTERFACE_LINK_DEPENDS + \ INTERFACE_LINK_DIRECTORIES + \ INTERFACE_LINK_LIBRARIES + \ INTERFACE_LINK_LIBRARIES_DIRECT + \ INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE + \ INTERFACE_LINK_OPTIONS + \ INTERFACE_POSITION_INDEPENDENT_CODE + \ INTERFACE_PRECOMPILE_HEADERS + \ INTERFACE_SOURCES + \ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES + \ INTERPROCEDURAL_OPTIMIZATION + \ IN_TRY_COMPILE + \ IOS_INSTALL_COMBINED + \ ISPC_HEADER_DIRECTORY + \ ISPC_HEADER_SUFFIX + \ ISPC_INSTRUCTION_SETS + \ JOB_POOLS + \ JOB_POOL_COMPILE + \ JOB_POOL_LINK + \ JOB_POOL_PRECOMPILE_HEADER + \ KEEP_EXTENSION + \ LABELS + \ LANGUAGE + \ LIBRARY_OUTPUT_DIRECTORY + \ LIBRARY_OUTPUT_NAME + \ LINKER_LANGUAGE + \ LINK_DEPENDS + \ LINK_DEPENDS_NO_SHARED + \ LINK_DIRECTORIES + \ LINK_FLAGS + \ LINK_INTERFACE_LIBRARIES + \ LINK_INTERFACE_MULTIPLICITY + \ LINK_LIBRARIES + \ LINK_LIBRARIES_ONLY_TARGETS + \ LINK_LIBRARY_OVERRIDE + \ LINK_OPTIONS + \ LINK_SEARCH_END_STATIC + \ LINK_SEARCH_START_STATIC + \ LINK_WHAT_YOU_USE + \ LISTFILE_STACK + \ LOCATION + \ MACHO_COMPATIBILITY_VERSION + \ MACHO_CURRENT_VERSION + \ MACOSX_BUNDLE + \ MACOSX_BUNDLE_INFO_PLIST + \ MACOSX_FRAMEWORK_INFO_PLIST + \ MACOSX_PACKAGE_LOCATION + \ MACOSX_RPATH + \ MACROS + \ MANUALLY_ADDED_DEPENDENCIES + \ MEASUREMENT + \ MODIFIED + \ MSVC_DEBUG_INFORMATION_FORMAT + \ MSVC_RUNTIME_LIBRARY + \ NAME + \ NO_SONAME + \ NO_SYSTEM_FROM_IMPORTED + \ OBJCXX_EXTENSIONS + \ OBJCXX_STANDARD + \ OBJCXX_STANDARD_REQUIRED + \ OBJC_EXTENSIONS + \ OBJC_STANDARD + \ OBJC_STANDARD_REQUIRED + \ OBJECT_DEPENDS + \ OBJECT_OUTPUTS + \ OPTIMIZE_DEPENDENCIES + \ OSX_ARCHITECTURES + \ OUTPUT_NAME + \ PACKAGES_FOUND + \ PACKAGES_NOT_FOUND + \ PARENT_DIRECTORY + \ PASS_REGULAR_EXPRESSION + \ PCH_INSTANTIATE_TEMPLATES + \ PCH_WARN_INVALID + \ PDB_NAME + \ PDB_OUTPUT_DIRECTORY + \ POSITION_INDEPENDENT_CODE + \ POST_INSTALL_SCRIPT + \ PRECOMPILE_HEADERS + \ PRECOMPILE_HEADERS_REUSE_FROM + \ PREDEFINED_TARGETS_FOLDER + \ PREFIX + \ PRE_INSTALL_SCRIPT + \ PRIVATE_HEADER + \ PROCESSORS + \ PROCESSOR_AFFINITY + \ PROJECT_LABEL + \ PUBLIC_HEADER + \ REPORT_UNDEFINED_PROPERTIES + \ REQUIRED_FILES + \ RESOURCE + \ RESOURCE_GROUPS + \ RESOURCE_LOCK + \ RULE_LAUNCH_COMPILE + \ RULE_LAUNCH_CUSTOM + \ RULE_LAUNCH_LINK + \ RULE_MESSAGES + \ RUNTIME_OUTPUT_DIRECTORY + \ RUNTIME_OUTPUT_NAME + \ RUN_SERIAL + \ SKIP_AUTOGEN + \ SKIP_AUTOMOC + \ SKIP_AUTORCC + \ SKIP_AUTOUIC + \ SKIP_BUILD_RPATH + \ SKIP_LINTING + \ SKIP_PRECOMPILE_HEADERS + \ SKIP_REGULAR_EXPRESSION + \ SKIP_RETURN_CODE + \ SKIP_UNITY_BUILD_INCLUSION + \ SOURCES + \ SOURCE_DIR + \ SOVERSION + \ STATIC_LIBRARY_FLAGS + \ STATIC_LIBRARY_OPTIONS + \ STRINGS + \ SUBDIRECTORIES + \ SUFFIX + \ SYMBOLIC + \ SYSTEM + \ Swift_DEPENDENCIES_FILE + \ Swift_DIAGNOSTICS_FILE + \ Swift_LANGUAGE_VERSION + \ Swift_MODULE_DIRECTORY + \ Swift_MODULE_NAME + \ Swift_COMPILATION_MODE + \ TARGET_ARCHIVES_MAY_BE_SHARED_LIBS + \ TARGET_MESSAGES + \ TARGET_SUPPORTS_SHARED_LIBS + \ TESTS + \ TEST_INCLUDE_FILE + \ TEST_INCLUDE_FILES + \ TIMEOUT + \ TIMEOUT_AFTER_MATCH + \ TIMEOUT_SIGNAL_GRACE_PERIOD + \ TIMEOUT_SIGNAL_NAME + \ TYPE + \ UNITY_BUILD + \ UNITY_BUILD_BATCH_SIZE + \ UNITY_BUILD_CODE_AFTER_INCLUDE + \ UNITY_BUILD_CODE_BEFORE_INCLUDE + \ UNITY_BUILD_MODE + \ UNITY_BUILD_UNIQUE_ID + \ UNITY_GROUP + \ USE_FOLDERS + \ VALUE + \ VARIABLES + \ VERIFY_INTERFACE_HEADER_SETS + \ VERSION + \ VISIBILITY_INLINES_HIDDEN + \ VS_CONFIGURATION_TYPE + \ VS_COPY_TO_OUT_DIR + \ VS_DEBUGGER_COMMAND + \ VS_DEBUGGER_COMMAND_ARGUMENTS + \ VS_DEBUGGER_ENVIRONMENT + \ VS_DEBUGGER_WORKING_DIRECTORY + \ VS_DEPLOYMENT_CONTENT + \ VS_DEPLOYMENT_LOCATION + \ VS_DESKTOP_EXTENSIONS_VERSION + \ VS_DOTNET_DOCUMENTATION_FILE + \ VS_DOTNET_REFERENCES + \ VS_DOTNET_REFERENCES_COPY_LOCAL + \ VS_DOTNET_STARTUP_OBJECT + \ VS_DOTNET_TARGET_FRAMEWORK_VERSION + \ VS_DPI_AWARE + \ VS_GLOBAL_KEYWORD + \ VS_GLOBAL_PROJECT_TYPES + \ VS_GLOBAL_ROOTNAMESPACE + \ VS_INCLUDE_IN_VSIX + \ VS_IOT_EXTENSIONS_VERSION + \ VS_IOT_STARTUP_TASK + \ VS_JUST_MY_CODE_DEBUGGING + \ VS_KEYWORD + \ VS_MOBILE_EXTENSIONS_VERSION + \ VS_NO_COMPILE_BATCHING + \ VS_NO_SOLUTION_DEPLOY + \ VS_PACKAGE_REFERENCES + \ VS_PLATFORM_TOOLSET + \ VS_PROJECT_IMPORT + \ VS_RESOURCE_GENERATOR + \ VS_SCC_AUXPATH + \ VS_SCC_LOCALPATH + \ VS_SCC_PROJECTNAME + \ VS_SCC_PROVIDER + \ VS_SDK_REFERENCES + \ VS_SETTINGS + \ VS_SHADER_DISABLE_OPTIMIZATIONS + \ VS_SHADER_ENABLE_DEBUG + \ VS_SHADER_ENTRYPOINT + \ VS_SHADER_FLAGS + \ VS_SHADER_MODEL + \ VS_SHADER_OBJECT_FILE_NAME + \ VS_SHADER_OUTPUT_HEADER_FILE + \ VS_SHADER_TYPE + \ VS_SHADER_VARIABLE_NAME + \ VS_SOLUTION_DEPLOY + \ VS_STARTUP_PROJECT + \ VS_TOOL_OVERRIDE + \ VS_USER_PROPS + \ VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION + \ VS_WINRT_COMPONENT + \ VS_WINRT_EXTENSIONS + \ VS_WINRT_REFERENCES + \ VS_XAML_TYPE + \ WATCOM_RUNTIME_LIBRARY + \ WILL_FAIL + \ WIN32_EXECUTABLE + \ WINDOWS_EXPORT_ALL_SYMBOLS + \ WORKING_DIRECTORY + \ WRAP_EXCLUDE + \ XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY + \ XCODE_EMBED_FRAMEWORKS_REMOVE_HEADERS_ON_COPY + \ XCODE_EMIT_EFFECTIVE_PLATFORM_NAME + \ XCODE_EXPLICIT_FILE_TYPE + \ XCODE_FILE_ATTRIBUTES + \ XCODE_GENERATE_SCHEME + \ XCODE_LAST_KNOWN_FILE_TYPE + \ XCODE_LINK_BUILD_PHASE_MODE + \ XCODE_PRODUCT_TYPE + \ XCODE_SCHEME_ADDRESS_SANITIZER + \ XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN + \ XCODE_SCHEME_ARGUMENTS + \ XCODE_SCHEME_DEBUG_AS_ROOT + \ XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING + \ XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE + \ XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER + \ XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS + \ XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE + \ XCODE_SCHEME_ENABLE_GPU_API_VALIDATION + \ XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE + \ XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION + \ XCODE_SCHEME_ENVIRONMENT + \ XCODE_SCHEME_EXECUTABLE + \ XCODE_SCHEME_GUARD_MALLOC + \ XCODE_SCHEME_LAUNCH_CONFIGURATION + \ XCODE_SCHEME_LAUNCH_MODE + \ XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP + \ XCODE_SCHEME_MALLOC_GUARD_EDGES + \ XCODE_SCHEME_MALLOC_SCRIBBLE + \ XCODE_SCHEME_MALLOC_STACK + \ XCODE_SCHEME_THREAD_SANITIZER + \ XCODE_SCHEME_THREAD_SANITIZER_STOP + \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER + \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP + \ XCODE_SCHEME_ENABLE_GPU_API_VALIDATION + \ XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION + \ XCODE_SCHEME_LAUNCH_CONFIGURATION + \ XCODE_SCHEME_WORKING_DIRECTORY + \ XCODE_SCHEME_ZOMBIE_OBJECTS + \ XCODE_XCCONFIG + \ XCTEST syn keyword cmakeVariable contained - \ ANDROID APPLE BORLAND BUILD_SHARED_LIBS CMAKE_ABSOLUTE_DESTINATION_FILES CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS CMAKE_ANDROID_API CMAKE_ANDROID_API_MIN CMAKE_ANDROID_ARCH CMAKE_ANDROID_ARCH_ABI CMAKE_ANDROID_ARM_MODE CMAKE_ANDROID_ARM_NEON CMAKE_ANDROID_ASSETS_DIRECTORIES CMAKE_ANDROID_GUI CMAKE_ANDROID_JAR_DEPENDENCIES CMAKE_ANDROID_JAR_DIRECTORIES CMAKE_ANDROID_JAVA_SOURCE_DIR CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES CMAKE_ANDROID_NDK CMAKE_ANDROID_NDK_DEPRECATED_HEADERS CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION CMAKE_ANDROID_PROCESS_MAX CMAKE_ANDROID_PROGUARD CMAKE_ANDROID_PROGUARD_CONFIG_PATH CMAKE_ANDROID_SECURE_PROPS_PATH CMAKE_ANDROID_SKIP_ANT_STEP CMAKE_ANDROID_STANDALONE_TOOLCHAIN CMAKE_ANDROID_STL_TYPE CMAKE_APPBUNDLE_PATH CMAKE_AR CMAKE_ARCHIVE_OUTPUT_DIRECTORY CMAKE_ARGC CMAKE_ARGV0 CMAKE_AUTOMOC CMAKE_AUTOMOC_DEPEND_FILTERS CMAKE_AUTOMOC_MACRO_NAMES CMAKE_AUTOMOC_MOC_OPTIONS CMAKE_AUTOMOC_RELAXED_MODE CMAKE_AUTORCC CMAKE_AUTORCC_OPTIONS CMAKE_AUTOUIC CMAKE_AUTOUIC_OPTIONS CMAKE_AUTOUIC_SEARCH_PATHS CMAKE_BACKWARDS_COMPATIBILITY CMAKE_BINARY_DIR CMAKE_BUILD_RPATH CMAKE_BUILD_TOOL CMAKE_BUILD_TYPE CMAKE_BUILD_WITH_INSTALL_NAME_DIR CMAKE_BUILD_WITH_INSTALL_RPATH CMAKE_CACHEFILE_DIR CMAKE_CACHE_MAJOR_VERSION CMAKE_CACHE_MINOR_VERSION CMAKE_CACHE_PATCH_VERSION CMAKE_CFG_INTDIR CMAKE_CL_64 CMAKE_CODELITE_USE_TARGETS CMAKE_COLOR_MAKEFILE CMAKE_COMMAND CMAKE_COMPILER_2005 CMAKE_COMPILER_IS_GNUCC CMAKE_COMPILER_IS_GNUCXX CMAKE_COMPILER_IS_GNUG77 CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY CMAKE_CONFIGURATION_TYPES CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR CMAKE_CTEST_COMMAND CMAKE_CUDA_EXTENSIONS CMAKE_CUDA_STANDARD CMAKE_CUDA_STANDARD_REQUIRED CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES CMAKE_CURRENT_BINARY_DIR CMAKE_CURRENT_LIST_DIR CMAKE_CURRENT_LIST_FILE CMAKE_CURRENT_LIST_LINE CMAKE_CURRENT_SOURCE_DIR CMAKE_CXX_COMPILE_FEATURES CMAKE_CXX_EXTENSIONS CMAKE_CXX_STANDARD CMAKE_CXX_STANDARD_REQUIRED CMAKE_C_COMPILE_FEATURES CMAKE_C_EXTENSIONS CMAKE_C_STANDARD CMAKE_C_STANDARD_REQUIRED CMAKE_DEBUG_POSTFIX CMAKE_DEBUG_TARGET_PROPERTIES CMAKE_DEPENDS_IN_PROJECT_ONLY CMAKE_DIRECTORY_LABELS CMAKE_DL_LIBS CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT CMAKE_ECLIPSE_MAKE_ARGUMENTS CMAKE_ECLIPSE_VERSION CMAKE_EDIT_COMMAND CMAKE_ENABLE_EXPORTS CMAKE_ERROR_DEPRECATED CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_EXECUTABLE_SUFFIX CMAKE_EXE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS_INIT CMAKE_EXPORT_COMPILE_COMMANDS CMAKE_EXPORT_NO_PACKAGE_REGISTRY CMAKE_EXTRA_GENERATOR CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES CMAKE_FIND_APPBUNDLE CMAKE_FIND_FRAMEWORK CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX CMAKE_FIND_LIBRARY_PREFIXES CMAKE_FIND_LIBRARY_SUFFIXES CMAKE_FIND_NO_INSTALL_PREFIX CMAKE_FIND_PACKAGE_NAME CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY CMAKE_FIND_PACKAGE_SORT_DIRECTION CMAKE_FIND_PACKAGE_SORT_ORDER CMAKE_FIND_PACKAGE_WARN_NO_MODULE CMAKE_FIND_ROOT_PATH CMAKE_FIND_ROOT_PATH_MODE_INCLUDE CMAKE_FIND_ROOT_PATH_MODE_LIBRARY CMAKE_FIND_ROOT_PATH_MODE_PACKAGE CMAKE_FIND_ROOT_PATH_MODE_PROGRAM CMAKE_FRAMEWORK_PATH CMAKE_Fortran_FORMAT CMAKE_Fortran_MODDIR_DEFAULT CMAKE_Fortran_MODDIR_FLAG CMAKE_Fortran_MODOUT_FLAG CMAKE_Fortran_MODULE_DIRECTORY CMAKE_GENERATOR CMAKE_GENERATOR_PLATFORM CMAKE_GENERATOR_TOOLSET CMAKE_GNUtoMS CMAKE_HOME_DIRECTORY CMAKE_HOST_APPLE CMAKE_HOST_SOLARIS CMAKE_HOST_SYSTEM CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_VERSION CMAKE_HOST_UNIX CMAKE_HOST_WIN32 CMAKE_IGNORE_PATH CMAKE_IMPORT_LIBRARY_PREFIX CMAKE_IMPORT_LIBRARY_SUFFIX CMAKE_INCLUDE_CURRENT_DIR CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE CMAKE_INCLUDE_DIRECTORIES_BEFORE CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE CMAKE_INCLUDE_PATH CMAKE_INSTALL_DEFAULT_COMPONENT_NAME CMAKE_INSTALL_MESSAGE CMAKE_INSTALL_NAME_DIR CMAKE_INSTALL_PREFIX CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT CMAKE_INSTALL_RPATH CMAKE_INSTALL_RPATH_USE_LINK_PATH CMAKE_INTERNAL_PLATFORM_ABI CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_IOS_INSTALL_COMBINED CMAKE_JOB_POOL_COMPILE CMAKE_JOB_POOL_LINK CMAKE_LIBRARY_ARCHITECTURE CMAKE_LIBRARY_ARCHITECTURE_REGEX CMAKE_LIBRARY_OUTPUT_DIRECTORY CMAKE_LIBRARY_PATH CMAKE_LIBRARY_PATH_FLAG CMAKE_LINK_DEF_FILE_FLAG CMAKE_LINK_DEPENDS_NO_SHARED CMAKE_LINK_INTERFACE_LIBRARIES CMAKE_LINK_LIBRARY_FILE_FLAG CMAKE_LINK_LIBRARY_FLAG CMAKE_LINK_LIBRARY_SUFFIX CMAKE_LINK_SEARCH_END_STATIC CMAKE_LINK_SEARCH_START_STATIC CMAKE_LINK_WHAT_YOU_USE CMAKE_MACOSX_BUNDLE CMAKE_MACOSX_RPATH CMAKE_MAJOR_VERSION CMAKE_MAKE_PROGRAM CMAKE_MATCH_COUNT CMAKE_MFC_FLAG CMAKE_MINIMUM_REQUIRED_VERSION CMAKE_MINOR_VERSION CMAKE_MODULE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS_INIT CMAKE_MODULE_PATH CMAKE_MSVCIDE_RUN_PATH CMAKE_NINJA_OUTPUT_PATH_PREFIX CMAKE_NOT_USING_CONFIG_FLAGS CMAKE_NO_BUILTIN_CHRPATH CMAKE_NO_SYSTEM_FROM_IMPORTED CMAKE_OBJECT_PATH_MAX CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT CMAKE_PARENT_LIST_FILE CMAKE_PATCH_VERSION CMAKE_PDB_OUTPUT_DIRECTORY CMAKE_POSITION_INDEPENDENT_CODE CMAKE_PREFIX_PATH CMAKE_PROGRAM_PATH CMAKE_PROJECT_DESCRIPTION CMAKE_PROJECT_NAME CMAKE_RANLIB CMAKE_ROOT CMAKE_RUNTIME_OUTPUT_DIRECTORY CMAKE_SCRIPT_MODE_FILE CMAKE_SHARED_LIBRARY_PREFIX CMAKE_SHARED_LIBRARY_SUFFIX CMAKE_SHARED_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS_INIT CMAKE_SHARED_MODULE_PREFIX CMAKE_SHARED_MODULE_SUFFIX CMAKE_SIZEOF_VOID_P CMAKE_SKIP_BUILD_RPATH CMAKE_SKIP_INSTALL_ALL_DEPENDENCY CMAKE_SKIP_INSTALL_RPATH CMAKE_SKIP_INSTALL_RULES CMAKE_SKIP_RPATH CMAKE_SOURCE_DIR CMAKE_STAGING_PREFIX CMAKE_STATIC_LIBRARY_PREFIX CMAKE_STATIC_LIBRARY_SUFFIX CMAKE_STATIC_LINKER_FLAGS CMAKE_STATIC_LINKER_FLAGS_INIT CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE CMAKE_SYSROOT CMAKE_SYSROOT_COMPILE CMAKE_SYSROOT_LINK CMAKE_SYSTEM CMAKE_SYSTEM_APPBUNDLE_PATH CMAKE_SYSTEM_FRAMEWORK_PATH CMAKE_SYSTEM_IGNORE_PATH CMAKE_SYSTEM_INCLUDE_PATH CMAKE_SYSTEM_LIBRARY_PATH CMAKE_SYSTEM_NAME CMAKE_SYSTEM_PREFIX_PATH CMAKE_SYSTEM_PROCESSOR CMAKE_SYSTEM_PROGRAM_PATH CMAKE_SYSTEM_VERSION CMAKE_Swift_LANGUAGE_VERSION CMAKE_TOOLCHAIN_FILE CMAKE_TRY_COMPILE_CONFIGURATION CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_TRY_COMPILE_TARGET_TYPE CMAKE_TWEAK_VERSION CMAKE_USER_MAKE_RULES_OVERRIDE CMAKE_USE_RELATIVE_PATHS CMAKE_VERBOSE_MAKEFILE CMAKE_VERSION CMAKE_VISIBILITY_INLINES_HIDDEN CMAKE_VS_DEVENV_COMMAND CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD CMAKE_VS_INTEL_Fortran_PROJECT_VERSION CMAKE_VS_MSBUILD_COMMAND CMAKE_VS_NsightTegra_VERSION CMAKE_VS_PLATFORM_NAME CMAKE_VS_PLATFORM_TOOLSET CMAKE_VS_PLATFORM_TOOLSET_CUDA CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION CMAKE_WARN_DEPRECATED CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_WIN32_EXECUTABLE CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS CMAKE_XCODE_GENERATE_SCHEME CMAKE_XCODE_PLATFORM_TOOLSET CPACK_ABSOLUTE_DESTINATION_FILES CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION CPACK_INCLUDE_TOPLEVEL_DIRECTORY CPACK_INSTALL_SCRIPT CPACK_PACKAGING_INSTALL_PREFIX CPACK_SET_DESTDIR CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CTEST_BINARY_DIRECTORY CTEST_BUILD_COMMAND CTEST_BUILD_NAME CTEST_BZR_COMMAND CTEST_BZR_UPDATE_OPTIONS CTEST_CHANGE_ID CTEST_CHECKOUT_COMMAND CTEST_CONFIGURATION_TYPE CTEST_CONFIGURE_COMMAND CTEST_COVERAGE_COMMAND CTEST_COVERAGE_EXTRA_FLAGS CTEST_CURL_OPTIONS CTEST_CUSTOM_COVERAGE_EXCLUDE CTEST_CUSTOM_ERROR_EXCEPTION CTEST_CUSTOM_ERROR_MATCH CTEST_CUSTOM_ERROR_POST_CONTEXT CTEST_CUSTOM_ERROR_PRE_CONTEXT CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE CTEST_CUSTOM_MEMCHECK_IGNORE CTEST_CUSTOM_POST_MEMCHECK CTEST_CUSTOM_POST_TEST CTEST_CUSTOM_PRE_MEMCHECK CTEST_CUSTOM_PRE_TEST CTEST_CUSTOM_TEST_IGNORE CTEST_CUSTOM_WARNING_EXCEPTION CTEST_CUSTOM_WARNING_MATCH CTEST_CVS_CHECKOUT CTEST_CVS_COMMAND CTEST_CVS_UPDATE_OPTIONS CTEST_DROP_LOCATION CTEST_DROP_METHOD CTEST_DROP_SITE CTEST_DROP_SITE_CDASH CTEST_DROP_SITE_PASSWORD CTEST_DROP_SITE_USER CTEST_EXTRA_COVERAGE_GLOB CTEST_GIT_COMMAND CTEST_GIT_INIT_SUBMODULES CTEST_GIT_UPDATE_CUSTOM CTEST_GIT_UPDATE_OPTIONS CTEST_HG_COMMAND CTEST_HG_UPDATE_OPTIONS CTEST_LABELS_FOR_SUBPROJECTS CTEST_MEMORYCHECK_COMMAND CTEST_MEMORYCHECK_COMMAND_OPTIONS CTEST_MEMORYCHECK_SANITIZER_OPTIONS CTEST_MEMORYCHECK_SUPPRESSIONS_FILE CTEST_MEMORYCHECK_TYPE CTEST_NIGHTLY_START_TIME CTEST_P4_CLIENT CTEST_P4_COMMAND CTEST_P4_OPTIONS CTEST_P4_UPDATE_OPTIONS CTEST_SCP_COMMAND CTEST_SITE CTEST_SOURCE_DIRECTORY CTEST_SVN_COMMAND CTEST_SVN_OPTIONS CTEST_SVN_UPDATE_OPTIONS CTEST_TEST_LOAD CTEST_TEST_TIMEOUT CTEST_TRIGGER_SITE CTEST_UPDATE_COMMAND CTEST_UPDATE_OPTIONS CTEST_UPDATE_VERSION_ONLY CTEST_USE_LAUNCHERS CYGWIN ENV EXECUTABLE_OUTPUT_PATH GHS-MULTI LIBRARY_OUTPUT_PATH MINGW MSVC MSVC10 MSVC11 MSVC12 MSVC14 MSVC60 MSVC70 MSVC71 MSVC80 MSVC90 MSVC_IDE MSVC_VERSION PROJECT_BINARY_DIR PROJECT_DESCRIPTION PROJECT_NAME PROJECT_SOURCE_DIR PROJECT_VERSION PROJECT_VERSION_MAJOR PROJECT_VERSION_MINOR PROJECT_VERSION_PATCH PROJECT_VERSION_TWEAK UNIX WIN32 WINCE WINDOWS_PHONE WINDOWS_STORE XCODE XCODE_VERSION + \ ANDROID + \ APPLE + \ BORLAND + \ BSD + \ BUILD_SHARED_LIBS + \ CACHE + \ CMAKE_ABSOLUTE_DESTINATION_FILES + \ CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY + \ CMAKE_ADSP_ROOT + \ CMAKE_AIX_EXPORT_ALL_SYMBOLS + \ CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS + \ CMAKE_ANDROID_API + \ CMAKE_ANDROID_API_MIN + \ CMAKE_ANDROID_ARCH + \ CMAKE_ANDROID_ARCH_ABI + \ CMAKE_ANDROID_ARM_MODE + \ CMAKE_ANDROID_ARM_NEON + \ CMAKE_ANDROID_ASSETS_DIRECTORIES + \ CMAKE_ANDROID_EXCEPTIONS + \ CMAKE_ANDROID_GUI + \ CMAKE_ANDROID_JAR_DEPENDENCIES + \ CMAKE_ANDROID_JAR_DIRECTORIES + \ CMAKE_ANDROID_JAVA_SOURCE_DIR + \ CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES + \ CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES + \ CMAKE_ANDROID_NDK + \ CMAKE_ANDROID_NDK_DEPRECATED_HEADERS + \ CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG + \ CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION + \ CMAKE_ANDROID_NDK_VERSION + \ CMAKE_ANDROID_PROCESS_MAX + \ CMAKE_ANDROID_PROGUARD + \ CMAKE_ANDROID_PROGUARD_CONFIG_PATH + \ CMAKE_ANDROID_RTTI + \ CMAKE_ANDROID_SECURE_PROPS_PATH + \ CMAKE_ANDROID_SKIP_ANT_STEP + \ CMAKE_ANDROID_STANDALONE_TOOLCHAIN + \ CMAKE_ANDROID_STL_TYPE + \ CMAKE_APPBUNDLE_PATH + \ CMAKE_APPLE_SILICON_PROCESSOR + \ CMAKE_AR + \ CMAKE_ARCHIVE_OUTPUT_DIRECTORY + \ CMAKE_ARGC + \ CMAKE_ARGV0 + \ CMAKE_ASM + \ CMAKE_ASM_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_ASM_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_ASM_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_ASM_ARCHIVE_APPEND + \ CMAKE_ASM_ARCHIVE_CREATE + \ CMAKE_ASM_ARCHIVE_FINISH + \ CMAKE_ASM_BYTE_ORDER + \ CMAKE_ASM_CLANG_TIDY + \ CMAKE_ASM_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_ASM_COMPILER + \ CMAKE_ASM_COMPILER_ABI + \ CMAKE_ASM_COMPILER_AR + \ CMAKE_ASM_COMPILER_ARCHITECTURE_ID + \ CMAKE_ASM_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_ASM_COMPILER_FRONTEND_VARIANT + \ CMAKE_ASM_COMPILER_ID + \ CMAKE_ASM_COMPILER_LAUNCHER + \ CMAKE_ASM_COMPILER_LOADED + \ CMAKE_ASM_COMPILER_PREDEFINES_COMMAND + \ CMAKE_ASM_COMPILER_RANLIB + \ CMAKE_ASM_COMPILER_TARGET + \ CMAKE_ASM_COMPILER_VERSION + \ CMAKE_ASM_COMPILER_VERSION_INTERNAL + \ CMAKE_ASM_COMPILE_OBJECT + \ CMAKE_ASM_CPPCHECK + \ CMAKE_ASM_CPPLINT + \ CMAKE_ASM_CREATE_SHARED_LIBRARY + \ CMAKE_ASM_CREATE_SHARED_MODULE + \ CMAKE_ASM_CREATE_STATIC_LIBRARY + \ CMAKE_ASM_EXTENSIONS + \ CMAKE_ASM_EXTENSIONS_DEFAULT + \ CMAKE_ASM_FLAGS + \ CMAKE_ASM_FLAGS_DEBUG + \ CMAKE_ASM_FLAGS_DEBUG_INIT + \ CMAKE_ASM_FLAGS_INIT + \ CMAKE_ASM_FLAGS_MINSIZEREL + \ CMAKE_ASM_FLAGS_MINSIZEREL_INIT + \ CMAKE_ASM_FLAGS_RELEASE + \ CMAKE_ASM_FLAGS_RELEASE_INIT + \ CMAKE_ASM_FLAGS_RELWITHDEBINFO + \ CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_ASM_IGNORE_EXTENSIONS + \ CMAKE_ASM_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_ASM_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_ASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_ASM_IMPLICIT_LINK_LIBRARIES + \ CMAKE_ASM_INCLUDE_WHAT_YOU_USE + \ CMAKE_ASM_INIT + \ CMAKE_ASM_LIBRARY_ARCHITECTURE + \ CMAKE_ASM_LINKER_LAUNCHER + \ CMAKE_ASM_LINKER_PREFERENCE + \ CMAKE_ASM_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_ASM_LINKER_WRAPPER_FLAG + \ CMAKE_ASM_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_ASM_LINK_EXECUTABLE + \ CMAKE_ASM_LINK_LIBRARY_FILE_FLAG + \ CMAKE_ASM_LINK_LIBRARY_FLAG + \ CMAKE_ASM_LINK_LIBRARY_SUFFIX + \ CMAKE_ASM_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_ASM_MASM + \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_ASM_MASM_ARCHIVE_APPEND + \ CMAKE_ASM_MASM_ARCHIVE_CREATE + \ CMAKE_ASM_MASM_ARCHIVE_FINISH + \ CMAKE_ASM_MASM_BYTE_ORDER + \ CMAKE_ASM_MASM_CLANG_TIDY + \ CMAKE_ASM_MASM_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_ASM_MASM_COMPILER + \ CMAKE_ASM_MASM_COMPILER_ABI + \ CMAKE_ASM_MASM_COMPILER_AR + \ CMAKE_ASM_MASM_COMPILER_ARCHITECTURE_ID + \ CMAKE_ASM_MASM_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_ASM_MASM_COMPILER_FRONTEND_VARIANT + \ CMAKE_ASM_MASM_COMPILER_ID + \ CMAKE_ASM_MASM_COMPILER_LAUNCHER + \ CMAKE_ASM_MASM_COMPILER_LOADED + \ CMAKE_ASM_MASM_COMPILER_PREDEFINES_COMMAND + \ CMAKE_ASM_MASM_COMPILER_RANLIB + \ CMAKE_ASM_MASM_COMPILER_TARGET + \ CMAKE_ASM_MASM_COMPILER_VERSION + \ CMAKE_ASM_MASM_COMPILER_VERSION_INTERNAL + \ CMAKE_ASM_MASM_COMPILE_OBJECT + \ CMAKE_ASM_MASM_CPPCHECK + \ CMAKE_ASM_MASM_CPPLINT + \ CMAKE_ASM_MASM_CREATE_SHARED_LIBRARY + \ CMAKE_ASM_MASM_CREATE_SHARED_MODULE + \ CMAKE_ASM_MASM_CREATE_STATIC_LIBRARY + \ CMAKE_ASM_MASM_EXTENSIONS + \ CMAKE_ASM_MASM_EXTENSIONS_DEFAULT + \ CMAKE_ASM_MASM_FLAGS + \ CMAKE_ASM_MASM_FLAGS_DEBUG + \ CMAKE_ASM_MASM_FLAGS_DEBUG_INIT + \ CMAKE_ASM_MASM_FLAGS_INIT + \ CMAKE_ASM_MASM_FLAGS_MINSIZEREL + \ CMAKE_ASM_MASM_FLAGS_MINSIZEREL_INIT + \ CMAKE_ASM_MASM_FLAGS_RELEASE + \ CMAKE_ASM_MASM_FLAGS_RELEASE_INIT + \ CMAKE_ASM_MASM_FLAGS_RELWITHDEBINFO + \ CMAKE_ASM_MASM_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_ASM_MASM_IGNORE_EXTENSIONS + \ CMAKE_ASM_MASM_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_ASM_MASM_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_ASM_MASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_ASM_MASM_IMPLICIT_LINK_LIBRARIES + \ CMAKE_ASM_MASM_INCLUDE_WHAT_YOU_USE + \ CMAKE_ASM_MASM_INIT + \ CMAKE_ASM_MASM_LIBRARY_ARCHITECTURE + \ CMAKE_ASM_MASM_LINKER_LAUNCHER + \ CMAKE_ASM_MASM_LINKER_PREFERENCE + \ CMAKE_ASM_MASM_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_ASM_MASM_LINKER_WRAPPER_FLAG + \ CMAKE_ASM_MASM_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_ASM_MASM_LINK_EXECUTABLE + \ CMAKE_ASM_MASM_LINK_LIBRARY_FILE_FLAG + \ CMAKE_ASM_MASM_LINK_LIBRARY_FLAG + \ CMAKE_ASM_MASM_LINK_LIBRARY_SUFFIX + \ CMAKE_ASM_MASM_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_ASM_MASM_OUTPUT_EXTENSION + \ CMAKE_ASM_MASM_PLATFORM_ID + \ CMAKE_ASM_MASM_SIMULATE_ID + \ CMAKE_ASM_MASM_SIMULATE_VERSION + \ CMAKE_ASM_MASM_SIZEOF_DATA_PTR + \ CMAKE_ASM_MASM_SOURCE_FILE_EXTENSIONS + \ CMAKE_ASM_MASM_STANDARD + \ CMAKE_ASM_MASM_STANDARD_DEFAULT + \ CMAKE_ASM_MASM_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_ASM_MASM_STANDARD_LIBRARIES + \ CMAKE_ASM_MASM_STANDARD_REQUIRED + \ CMAKE_ASM_MASM_SUPPORTED + \ CMAKE_ASM_MASM_VISIBILITY_PRESET + \ CMAKE_ASM_NASM + \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_ASM_NASM_ARCHIVE_APPEND + \ CMAKE_ASM_NASM_ARCHIVE_CREATE + \ CMAKE_ASM_NASM_ARCHIVE_FINISH + \ CMAKE_ASM_NASM_BYTE_ORDER + \ CMAKE_ASM_NASM_CLANG_TIDY + \ CMAKE_ASM_NASM_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_ASM_NASM_COMPILER + \ CMAKE_ASM_NASM_COMPILER_ABI + \ CMAKE_ASM_NASM_COMPILER_AR + \ CMAKE_ASM_NASM_COMPILER_ARCHITECTURE_ID + \ CMAKE_ASM_NASM_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_ASM_NASM_COMPILER_FRONTEND_VARIANT + \ CMAKE_ASM_NASM_COMPILER_ID + \ CMAKE_ASM_NASM_COMPILER_LAUNCHER + \ CMAKE_ASM_NASM_COMPILER_LOADED + \ CMAKE_ASM_NASM_COMPILER_PREDEFINES_COMMAND + \ CMAKE_ASM_NASM_COMPILER_RANLIB + \ CMAKE_ASM_NASM_COMPILER_TARGET + \ CMAKE_ASM_NASM_COMPILER_VERSION + \ CMAKE_ASM_NASM_COMPILER_VERSION_INTERNAL + \ CMAKE_ASM_NASM_COMPILE_OBJECT + \ CMAKE_ASM_NASM_CPPCHECK + \ CMAKE_ASM_NASM_CPPLINT + \ CMAKE_ASM_NASM_CREATE_SHARED_LIBRARY + \ CMAKE_ASM_NASM_CREATE_SHARED_MODULE + \ CMAKE_ASM_NASM_CREATE_STATIC_LIBRARY + \ CMAKE_ASM_NASM_EXTENSIONS + \ CMAKE_ASM_NASM_EXTENSIONS_DEFAULT + \ CMAKE_ASM_NASM_FLAGS + \ CMAKE_ASM_NASM_FLAGS_DEBUG + \ CMAKE_ASM_NASM_FLAGS_DEBUG_INIT + \ CMAKE_ASM_NASM_FLAGS_INIT + \ CMAKE_ASM_NASM_FLAGS_MINSIZEREL + \ CMAKE_ASM_NASM_FLAGS_MINSIZEREL_INIT + \ CMAKE_ASM_NASM_FLAGS_RELEASE + \ CMAKE_ASM_NASM_FLAGS_RELEASE_INIT + \ CMAKE_ASM_NASM_FLAGS_RELWITHDEBINFO + \ CMAKE_ASM_NASM_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_ASM_NASM_IGNORE_EXTENSIONS + \ CMAKE_ASM_NASM_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_ASM_NASM_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_ASM_NASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_ASM_NASM_IMPLICIT_LINK_LIBRARIES + \ CMAKE_ASM_NASM_INCLUDE_WHAT_YOU_USE + \ CMAKE_ASM_NASM_INIT + \ CMAKE_ASM_NASM_LIBRARY_ARCHITECTURE + \ CMAKE_ASM_NASM_LINKER_LAUNCHER + \ CMAKE_ASM_NASM_LINKER_PREFERENCE + \ CMAKE_ASM_NASM_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_ASM_NASM_LINKER_WRAPPER_FLAG + \ CMAKE_ASM_NASM_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_ASM_NASM_LINK_EXECUTABLE + \ CMAKE_ASM_NASM_LINK_LIBRARY_FILE_FLAG + \ CMAKE_ASM_NASM_LINK_LIBRARY_FLAG + \ CMAKE_ASM_NASM_LINK_LIBRARY_SUFFIX + \ CMAKE_ASM_NASM_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_ASM_NASM_OUTPUT_EXTENSION + \ CMAKE_ASM_NASM_PLATFORM_ID + \ CMAKE_ASM_NASM_SIMULATE_ID + \ CMAKE_ASM_NASM_SIMULATE_VERSION + \ CMAKE_ASM_NASM_SIZEOF_DATA_PTR + \ CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS + \ CMAKE_ASM_NASM_STANDARD + \ CMAKE_ASM_NASM_STANDARD_DEFAULT + \ CMAKE_ASM_NASM_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_ASM_NASM_STANDARD_LIBRARIES + \ CMAKE_ASM_NASM_STANDARD_REQUIRED + \ CMAKE_ASM_NASM_SUPPORTED + \ CMAKE_ASM_NASM_VISIBILITY_PRESET + \ CMAKE_ASM_OUTPUT_EXTENSION + \ CMAKE_ASM_PLATFORM_ID + \ CMAKE_ASM_SIMULATE_ID + \ CMAKE_ASM_SIMULATE_VERSION + \ CMAKE_ASM_SIZEOF_DATA_PTR + \ CMAKE_ASM_SOURCE_FILE_EXTENSIONS + \ CMAKE_ASM_STANDARD + \ CMAKE_ASM_STANDARD_DEFAULT + \ CMAKE_ASM_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_ASM_STANDARD_LIBRARIES + \ CMAKE_ASM_STANDARD_REQUIRED + \ CMAKE_ASM_SUPPORTED + \ CMAKE_ASM_VISIBILITY_PRESET + \ CMAKE_AUTOGEN_COMMAND_LINE_LENGTH_MAX + \ CMAKE_AUTOGEN_ORIGIN_DEPENDS + \ CMAKE_AUTOGEN_PARALLEL + \ CMAKE_AUTOGEN_USE_SYSTEM_INCLUDE + \ CMAKE_AUTOGEN_VERBOSE + \ CMAKE_AUTOMOC + \ CMAKE_AUTOMOC_COMPILER_PREDEFINES + \ CMAKE_AUTOMOC_DEPEND_FILTERS + \ CMAKE_AUTOMOC_EXECUTABLE + \ CMAKE_AUTOMOC_MACRO_NAMES + \ CMAKE_AUTOMOC_MOC_OPTIONS + \ CMAKE_AUTOMOC_PATH_PREFIX + \ CMAKE_AUTOMOC_RELAXED_MODE + \ CMAKE_AUTOMOC_EXECUTABLE + \ CMAKE_AUTORCC + \ CMAKE_AUTORCC_EXECUTABLE + \ CMAKE_AUTORCC_OPTIONS + \ CMAKE_AUTORCC_EXECUTABLE + \ CMAKE_AUTOUIC + \ CMAKE_AUTOUIC_EXECUTABLE + \ CMAKE_AUTOUIC_OPTIONS + \ CMAKE_AUTOUIC_SEARCH_PATHS + \ CMAKE_AUTOUIC_EXECUTABLE + \ CMAKE_BACKWARDS_COMPATIBILITY + \ CMAKE_BINARY_DIR + \ CMAKE_BUILD_RPATH + \ CMAKE_BUILD_RPATH_USE_ORIGIN + \ CMAKE_BUILD_TOOL + \ CMAKE_BUILD_TYPE + \ CMAKE_BUILD_WITH_INSTALL_NAME_DIR + \ CMAKE_BUILD_WITH_INSTALL_RPATH + \ CMAKE_C + \ CMAKE_CACHEFILE_DIR + \ CMAKE_CACHE_MAJOR_VERSION + \ CMAKE_CACHE_MINOR_VERSION + \ CMAKE_CACHE_PATCH_VERSION + \ CMAKE_CFG_INTDIR + \ CMAKE_CLANG_VFS_OVERLAY + \ CMAKE_CL_64 + \ CMAKE_CODEBLOCKS_COMPILER_ID + \ CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES + \ CMAKE_CODELITE_USE_TARGETS + \ CMAKE_COLOR_DIAGNOSTICS + \ CMAKE_COLOR_MAKEFILE + \ CMAKE_COMMAND + \ CMAKE_COMPILER_2005 + \ CMAKE_COMPILER_IS_GNUCC + \ CMAKE_COMPILER_IS_GNUCXX + \ CMAKE_COMPILER_IS_GNUG77 + \ CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY + \ CMAKE_COMPILE_WARNING_AS_ERROR + \ CMAKE_CONFIGURATION_TYPES + \ CMAKE_CPACK_COMMAND + \ CMAKE_CROSSCOMPILING + \ CMAKE_CROSSCOMPILING_EMULATOR + \ CMAKE_CROSS_CONFIGS + \ CMAKE_CSharp + \ CMAKE_CSharp_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_CSharp_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_CSharp_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_CSharp_ARCHIVE_APPEND + \ CMAKE_CSharp_ARCHIVE_CREATE + \ CMAKE_CSharp_ARCHIVE_FINISH + \ CMAKE_CSharp_BYTE_ORDER + \ CMAKE_CSharp_CLANG_TIDY + \ CMAKE_CSharp_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_CSharp_COMPILER + \ CMAKE_CSharp_COMPILER_ABI + \ CMAKE_CSharp_COMPILER_AR + \ CMAKE_CSharp_COMPILER_ARCHITECTURE_ID + \ CMAKE_CSharp_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_CSharp_COMPILER_FRONTEND_VARIANT + \ CMAKE_CSharp_COMPILER_ID + \ CMAKE_CSharp_COMPILER_LAUNCHER + \ CMAKE_CSharp_COMPILER_LOADED + \ CMAKE_CSharp_COMPILER_PREDEFINES_COMMAND + \ CMAKE_CSharp_COMPILER_RANLIB + \ CMAKE_CSharp_COMPILER_TARGET + \ CMAKE_CSharp_COMPILER_VERSION + \ CMAKE_CSharp_COMPILER_VERSION_INTERNAL + \ CMAKE_CSharp_COMPILE_OBJECT + \ CMAKE_CSharp_CPPCHECK + \ CMAKE_CSharp_CPPLINT + \ CMAKE_CSharp_CREATE_SHARED_LIBRARY + \ CMAKE_CSharp_CREATE_SHARED_MODULE + \ CMAKE_CSharp_CREATE_STATIC_LIBRARY + \ CMAKE_CSharp_EXTENSIONS + \ CMAKE_CSharp_EXTENSIONS_DEFAULT + \ CMAKE_CSharp_FLAGS + \ CMAKE_CSharp_FLAGS_DEBUG + \ CMAKE_CSharp_FLAGS_DEBUG_INIT + \ CMAKE_CSharp_FLAGS_INIT + \ CMAKE_CSharp_FLAGS_MINSIZEREL + \ CMAKE_CSharp_FLAGS_MINSIZEREL_INIT + \ CMAKE_CSharp_FLAGS_RELEASE + \ CMAKE_CSharp_FLAGS_RELEASE_INIT + \ CMAKE_CSharp_FLAGS_RELWITHDEBINFO + \ CMAKE_CSharp_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_CSharp_IGNORE_EXTENSIONS + \ CMAKE_CSharp_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_CSharp_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_CSharp_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_CSharp_IMPLICIT_LINK_LIBRARIES + \ CMAKE_CSharp_INCLUDE_WHAT_YOU_USE + \ CMAKE_CSharp_INIT + \ CMAKE_CSharp_LIBRARY_ARCHITECTURE + \ CMAKE_CSharp_LINKER_LAUNCHER + \ CMAKE_CSharp_LINKER_PREFERENCE + \ CMAKE_CSharp_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_CSharp_LINKER_WRAPPER_FLAG + \ CMAKE_CSharp_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_CSharp_LINK_EXECUTABLE + \ CMAKE_CSharp_LINK_LIBRARY_FILE_FLAG + \ CMAKE_CSharp_LINK_LIBRARY_FLAG + \ CMAKE_CSharp_LINK_LIBRARY_SUFFIX + \ CMAKE_CSharp_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_CSharp_OUTPUT_EXTENSION + \ CMAKE_CSharp_PLATFORM_ID + \ CMAKE_CSharp_SIMULATE_ID + \ CMAKE_CSharp_SIMULATE_VERSION + \ CMAKE_CSharp_SIZEOF_DATA_PTR + \ CMAKE_CSharp_SOURCE_FILE_EXTENSIONS + \ CMAKE_CSharp_STANDARD + \ CMAKE_CSharp_STANDARD_DEFAULT + \ CMAKE_CSharp_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_CSharp_STANDARD_LIBRARIES + \ CMAKE_CSharp_STANDARD_REQUIRED + \ CMAKE_CSharp_SUPPORTED + \ CMAKE_CSharp_VISIBILITY_PRESET + \ CMAKE_CTEST_ARGUMENTS + \ CMAKE_CTEST_COMMAND + \ CMAKE_CUDA + \ CMAKE_CUDA_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_CUDA_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_CUDA_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_CUDA_ARCHITECTURES + \ CMAKE_CUDA_ARCHIVE_APPEND + \ CMAKE_CUDA_ARCHIVE_CREATE + \ CMAKE_CUDA_ARCHIVE_FINISH + \ CMAKE_CUDA_BYTE_ORDER + \ CMAKE_CUDA_CLANG_TIDY + \ CMAKE_CUDA_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_CUDA_COMPILER + \ CMAKE_CUDA_COMPILER_ABI + \ CMAKE_CUDA_COMPILER_AR + \ CMAKE_CUDA_COMPILER_ARCHITECTURE_ID + \ CMAKE_CUDA_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_CUDA_COMPILER_FRONTEND_VARIANT + \ CMAKE_CUDA_COMPILER_ID + \ CMAKE_CUDA_COMPILER_LAUNCHER + \ CMAKE_CUDA_COMPILER_LOADED + \ CMAKE_CUDA_COMPILER_PREDEFINES_COMMAND + \ CMAKE_CUDA_COMPILER_RANLIB + \ CMAKE_CUDA_COMPILER_TARGET + \ CMAKE_CUDA_COMPILER_VERSION + \ CMAKE_CUDA_COMPILER_VERSION_INTERNAL + \ CMAKE_CUDA_COMPILE_FEATURES + \ CMAKE_CUDA_COMPILE_OBJECT + \ CMAKE_CUDA_CPPCHECK + \ CMAKE_CUDA_CPPLINT + \ CMAKE_CUDA_CREATE_SHARED_LIBRARY + \ CMAKE_CUDA_CREATE_SHARED_MODULE + \ CMAKE_CUDA_CREATE_STATIC_LIBRARY + \ CMAKE_CUDA_EXTENSIONS + \ CMAKE_CUDA_EXTENSIONS_DEFAULT + \ CMAKE_CUDA_FLAGS + \ CMAKE_CUDA_FLAGS_DEBUG + \ CMAKE_CUDA_FLAGS_DEBUG_INIT + \ CMAKE_CUDA_FLAGS_INIT + \ CMAKE_CUDA_FLAGS_MINSIZEREL + \ CMAKE_CUDA_FLAGS_MINSIZEREL_INIT + \ CMAKE_CUDA_FLAGS_RELEASE + \ CMAKE_CUDA_FLAGS_RELEASE_INIT + \ CMAKE_CUDA_FLAGS_RELWITHDEBINFO + \ CMAKE_CUDA_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_CUDA_HOST_COMPILER + \ CMAKE_CUDA_IGNORE_EXTENSIONS + \ CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES + \ CMAKE_CUDA_INCLUDE_WHAT_YOU_USE + \ CMAKE_CUDA_INIT + \ CMAKE_CUDA_LIBRARY_ARCHITECTURE + \ CMAKE_CUDA_LINKER_LAUNCHER + \ CMAKE_CUDA_LINKER_PREFERENCE + \ CMAKE_CUDA_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_CUDA_LINKER_WRAPPER_FLAG + \ CMAKE_CUDA_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_CUDA_LINK_EXECUTABLE + \ CMAKE_CUDA_LINK_LIBRARY_FILE_FLAG + \ CMAKE_CUDA_LINK_LIBRARY_FLAG + \ CMAKE_CUDA_LINK_LIBRARY_SUFFIX + \ CMAKE_CUDA_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_CUDA_OUTPUT_EXTENSION + \ CMAKE_CUDA_PLATFORM_ID + \ CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS + \ CMAKE_CUDA_RUNTIME_LIBRARY + \ CMAKE_CUDA_SEPARABLE_COMPILATION + \ CMAKE_CUDA_SIMULATE_ID + \ CMAKE_CUDA_SIMULATE_VERSION + \ CMAKE_CUDA_SIZEOF_DATA_PTR + \ CMAKE_CUDA_SOURCE_FILE_EXTENSIONS + \ CMAKE_CUDA_STANDARD + \ CMAKE_CUDA_STANDARD_DEFAULT + \ CMAKE_CUDA_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_CUDA_STANDARD_LIBRARIES + \ CMAKE_CUDA_STANDARD_REQUIRED + \ CMAKE_CUDA_SUPPORTED + \ CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES + \ CMAKE_CUDA_VISIBILITY_PRESET + \ CMAKE_CURRENT_BINARY_DIR + \ CMAKE_CURRENT_FUNCTION + \ CMAKE_CURRENT_FUNCTION_LIST_DIR + \ CMAKE_CURRENT_FUNCTION_LIST_FILE + \ CMAKE_CURRENT_FUNCTION_LIST_LINE + \ CMAKE_CURRENT_LIST_DIR + \ CMAKE_CURRENT_LIST_FILE + \ CMAKE_CURRENT_LIST_LINE + \ CMAKE_CURRENT_SOURCE_DIR + \ CMAKE_CXX + \ CMAKE_CXX_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_CXX_ARCHIVE_APPEND + \ CMAKE_CXX_ARCHIVE_CREATE + \ CMAKE_CXX_ARCHIVE_FINISH + \ CMAKE_CXX_BYTE_ORDER + \ CMAKE_CXX_CLANG_TIDY + \ CMAKE_CXX_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_CXX_COMPILER + \ CMAKE_CXX_COMPILER_ABI + \ CMAKE_CXX_COMPILER_AR + \ CMAKE_CXX_COMPILER_ARCHITECTURE_ID + \ CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_CXX_COMPILER_FRONTEND_VARIANT + \ CMAKE_CXX_COMPILER_ID + \ CMAKE_CXX_COMPILER_LAUNCHER + \ CMAKE_CXX_COMPILER_LOADED + \ CMAKE_CXX_COMPILER_PREDEFINES_COMMAND + \ CMAKE_CXX_COMPILER_RANLIB + \ CMAKE_CXX_COMPILER_TARGET + \ CMAKE_CXX_COMPILER_VERSION + \ CMAKE_CXX_COMPILER_VERSION_INTERNAL + \ CMAKE_CXX_COMPILE_FEATURES + \ CMAKE_CXX_COMPILE_OBJECT + \ CMAKE_CXX_CPPCHECK + \ CMAKE_CXX_CPPLINT + \ CMAKE_CXX_CREATE_SHARED_LIBRARY + \ CMAKE_CXX_CREATE_SHARED_MODULE + \ CMAKE_CXX_CREATE_STATIC_LIBRARY + \ CMAKE_CXX_EXTENSIONS + \ CMAKE_CXX_EXTENSIONS_DEFAULT + \ CMAKE_CXX_FLAGS + \ CMAKE_CXX_FLAGS_DEBUG + \ CMAKE_CXX_FLAGS_DEBUG_INIT + \ CMAKE_CXX_FLAGS_INIT + \ CMAKE_CXX_FLAGS_MINSIZEREL + \ CMAKE_CXX_FLAGS_MINSIZEREL_INIT + \ CMAKE_CXX_FLAGS_RELEASE + \ CMAKE_CXX_FLAGS_RELEASE_INIT + \ CMAKE_CXX_FLAGS_RELWITHDEBINFO + \ CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_CXX_IGNORE_EXTENSIONS + \ CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_CXX_IMPLICIT_LINK_LIBRARIES + \ CMAKE_CXX_INCLUDE_WHAT_YOU_USE + \ CMAKE_CXX_INIT + \ CMAKE_CXX_LIBRARY_ARCHITECTURE + \ CMAKE_CXX_LINKER_LAUNCHER + \ CMAKE_CXX_LINKER_PREFERENCE + \ CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_CXX_LINKER_WRAPPER_FLAG + \ CMAKE_CXX_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_CXX_LINK_EXECUTABLE + \ CMAKE_CXX_LINK_LIBRARY_FILE_FLAG + \ CMAKE_CXX_LINK_LIBRARY_FLAG + \ CMAKE_CXX_LINK_LIBRARY_SUFFIX + \ CMAKE_CXX_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_CXX_OUTPUT_EXTENSION + \ CMAKE_CXX_PLATFORM_ID + \ CMAKE_CXX_SCAN_FOR_MODULES + \ CMAKE_CXX_SIMULATE_ID + \ CMAKE_CXX_SIMULATE_VERSION + \ CMAKE_CXX_SIZEOF_DATA_PTR + \ CMAKE_CXX_SOURCE_FILE_EXTENSIONS + \ CMAKE_CXX_STANDARD + \ CMAKE_CXX_STANDARD_DEFAULT + \ CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_CXX_STANDARD_LIBRARIES + \ CMAKE_CXX_STANDARD_REQUIRED + \ CMAKE_CXX_SUPPORTED + \ CMAKE_CXX_VISIBILITY_PRESET + \ CMAKE_C_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_C_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_C_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_C_ARCHIVE_APPEND + \ CMAKE_C_ARCHIVE_CREATE + \ CMAKE_C_ARCHIVE_FINISH + \ CMAKE_C_BYTE_ORDER + \ CMAKE_C_CLANG_TIDY + \ CMAKE_C_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_C_COMPILER + \ CMAKE_C_COMPILER_ABI + \ CMAKE_C_COMPILER_AR + \ CMAKE_C_COMPILER_ARCHITECTURE_ID + \ CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_C_COMPILER_FRONTEND_VARIANT + \ CMAKE_C_COMPILER_ID + \ CMAKE_C_COMPILER_LAUNCHER + \ CMAKE_C_COMPILER_LOADED + \ CMAKE_C_COMPILER_PREDEFINES_COMMAND + \ CMAKE_C_COMPILER_RANLIB + \ CMAKE_C_COMPILER_TARGET + \ CMAKE_C_COMPILER_VERSION + \ CMAKE_C_COMPILER_VERSION_INTERNAL + \ CMAKE_C_COMPILE_FEATURES + \ CMAKE_C_COMPILE_OBJECT + \ CMAKE_C_CPPCHECK + \ CMAKE_C_CPPLINT + \ CMAKE_C_CREATE_SHARED_LIBRARY + \ CMAKE_C_CREATE_SHARED_MODULE + \ CMAKE_C_CREATE_STATIC_LIBRARY + \ CMAKE_C_EXTENSIONS + \ CMAKE_C_EXTENSIONS_DEFAULT + \ CMAKE_C_FLAGS + \ CMAKE_C_FLAGS_DEBUG + \ CMAKE_C_FLAGS_DEBUG_INIT + \ CMAKE_C_FLAGS_INIT + \ CMAKE_C_FLAGS_MINSIZEREL + \ CMAKE_C_FLAGS_MINSIZEREL_INIT + \ CMAKE_C_FLAGS_RELEASE + \ CMAKE_C_FLAGS_RELEASE_INIT + \ CMAKE_C_FLAGS_RELWITHDEBINFO + \ CMAKE_C_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_C_IGNORE_EXTENSIONS + \ CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_C_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_C_IMPLICIT_LINK_LIBRARIES + \ CMAKE_C_INCLUDE_WHAT_YOU_USE + \ CMAKE_C_INIT + \ CMAKE_C_LIBRARY_ARCHITECTURE + \ CMAKE_C_LINKER_LAUNCHER + \ CMAKE_C_LINKER_PREFERENCE + \ CMAKE_C_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_C_LINKER_WRAPPER_FLAG + \ CMAKE_C_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_C_LINK_EXECUTABLE + \ CMAKE_C_LINK_LIBRARY_FILE_FLAG + \ CMAKE_C_LINK_LIBRARY_FLAG + \ CMAKE_C_LINK_LIBRARY_SUFFIX + \ CMAKE_C_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_C_OUTPUT_EXTENSION + \ CMAKE_C_PLATFORM_ID + \ CMAKE_C_SIMULATE_ID + \ CMAKE_C_SIMULATE_VERSION + \ CMAKE_C_SIZEOF_DATA_PTR + \ CMAKE_C_SOURCE_FILE_EXTENSIONS + \ CMAKE_C_STANDARD + \ CMAKE_C_STANDARD_DEFAULT + \ CMAKE_C_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_C_STANDARD_LIBRARIES + \ CMAKE_C_STANDARD_REQUIRED + \ CMAKE_C_SUPPORTED + \ CMAKE_C_VISIBILITY_PRESET + \ CMAKE_DEBUG_POSTFIX + \ CMAKE_DEBUG_TARGET_PROPERTIES + \ CMAKE_DEFAULT_BUILD_TYPE + \ CMAKE_DEFAULT_CONFIGS + \ CMAKE_DEPENDS_IN_PROJECT_ONLY + \ CMAKE_DEPENDS_USE_COMPILER + \ CMAKE_DIRECTORY_LABELS + \ CMAKE_DISABLE_PRECOMPILE_HEADERS + \ CMAKE_DLL_NAME_WITH_SOVERSION + \ CMAKE_DL_LIBS + \ CMAKE_DOTNET_SDK + \ CMAKE_DOTNET_TARGET_FRAMEWORK + \ CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION + \ CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES + \ CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT + \ CMAKE_ECLIPSE_MAKE_ARGUMENTS + \ CMAKE_ECLIPSE_RESOURCE_ENCODING + \ CMAKE_ECLIPSE_VERSION + \ CMAKE_EDIT_COMMAND + \ CMAKE_ENABLE_EXPORTS + \ CMAKE_ERROR_DEPRECATED + \ CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION + \ CMAKE_EXECUTABLE_ENABLE_EXPORTS + \ CMAKE_EXECUTABLE_SUFFIX + \ CMAKE_EXECUTABLE_SUFFIX_ASM + \ CMAKE_EXECUTABLE_SUFFIX_ASM_MASM + \ CMAKE_EXECUTABLE_SUFFIX_ASM_NASM + \ CMAKE_EXECUTABLE_SUFFIX_C + \ CMAKE_EXECUTABLE_SUFFIX_CSharp + \ CMAKE_EXECUTABLE_SUFFIX_CUDA + \ CMAKE_EXECUTABLE_SUFFIX_CXX + \ CMAKE_EXECUTABLE_SUFFIX_Fortran + \ CMAKE_EXECUTABLE_SUFFIX_HIP + \ CMAKE_EXECUTABLE_SUFFIX_Java + \ CMAKE_EXECUTABLE_SUFFIX_RC + \ CMAKE_EXECUTABLE_SUFFIX_Swift + \ CMAKE_EXECUTE_PROCESS_COMMAND_ECHO + \ CMAKE_EXE_LINKER_FLAGS + \ CMAKE_EXE_LINKER_FLAGS_INIT + \ CMAKE_EXPORT_COMPILE_COMMANDS + \ CMAKE_EXPORT_NO_PACKAGE_REGISTRY + \ CMAKE_EXPORT_PACKAGE_REGISTRY + \ CMAKE_EXTRA_GENERATOR + \ CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES + \ CMAKE_FIND_APPBUNDLE + \ CMAKE_FIND_DEBUG_MODE + \ CMAKE_FIND_FRAMEWORK + \ CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX + \ CMAKE_FIND_LIBRARY_PREFIXES + \ CMAKE_FIND_LIBRARY_SUFFIXES + \ CMAKE_FIND_NO_INSTALL_PREFIX + \ CMAKE_FIND_PACKAGE_NAME + \ CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY + \ CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY + \ CMAKE_FIND_PACKAGE_PREFER_CONFIG + \ CMAKE_FIND_PACKAGE_REDIRECTS_DIR + \ CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS + \ CMAKE_FIND_PACKAGE_SORT_DIRECTION + \ CMAKE_FIND_PACKAGE_SORT_ORDER + \ CMAKE_FIND_PACKAGE_TARGETS_GLOBAL + \ CMAKE_FIND_PACKAGE_WARN_NO_MODULE + \ CMAKE_FIND_ROOT_PATH + \ CMAKE_FIND_ROOT_PATH_MODE_INCLUDE + \ CMAKE_FIND_ROOT_PATH_MODE_LIBRARY + \ CMAKE_FIND_ROOT_PATH_MODE_PACKAGE + \ CMAKE_FIND_ROOT_PATH_MODE_PROGRAM + \ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH + \ CMAKE_FIND_USE_INSTALL_PREFIX + \ CMAKE_FIND_USE_CMAKE_PATH + \ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH + \ CMAKE_FIND_USE_INSTALL_PREFIX + \ CMAKE_FIND_USE_PACKAGE_REGISTRY + \ CMAKE_FIND_USE_PACKAGE_ROOT_PATH + \ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH + \ CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY + \ CMAKE_FOLDER + \ CMAKE_FRAMEWORK + \ CMAKE_FRAMEWORK_PATH + \ CMAKE_Fortran + \ CMAKE_Fortran_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_Fortran_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_Fortran_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_Fortran_ARCHIVE_APPEND + \ CMAKE_Fortran_ARCHIVE_CREATE + \ CMAKE_Fortran_ARCHIVE_FINISH + \ CMAKE_Fortran_BYTE_ORDER + \ CMAKE_Fortran_CLANG_TIDY + \ CMAKE_Fortran_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_Fortran_COMPILER + \ CMAKE_Fortran_COMPILER_ABI + \ CMAKE_Fortran_COMPILER_AR + \ CMAKE_Fortran_COMPILER_ARCHITECTURE_ID + \ CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_Fortran_COMPILER_FRONTEND_VARIANT + \ CMAKE_Fortran_COMPILER_ID + \ CMAKE_Fortran_COMPILER_LAUNCHER + \ CMAKE_Fortran_COMPILER_LOADED + \ CMAKE_Fortran_COMPILER_PREDEFINES_COMMAND + \ CMAKE_Fortran_COMPILER_RANLIB + \ CMAKE_Fortran_COMPILER_TARGET + \ CMAKE_Fortran_COMPILER_VERSION + \ CMAKE_Fortran_COMPILER_VERSION_INTERNAL + \ CMAKE_Fortran_COMPILE_OBJECT + \ CMAKE_Fortran_CPPCHECK + \ CMAKE_Fortran_CPPLINT + \ CMAKE_Fortran_CREATE_SHARED_LIBRARY + \ CMAKE_Fortran_CREATE_SHARED_MODULE + \ CMAKE_Fortran_CREATE_STATIC_LIBRARY + \ CMAKE_Fortran_EXTENSIONS + \ CMAKE_Fortran_EXTENSIONS_DEFAULT + \ CMAKE_Fortran_FLAGS + \ CMAKE_Fortran_FLAGS_DEBUG + \ CMAKE_Fortran_FLAGS_DEBUG_INIT + \ CMAKE_Fortran_FLAGS_INIT + \ CMAKE_Fortran_FLAGS_MINSIZEREL + \ CMAKE_Fortran_FLAGS_MINSIZEREL_INIT + \ CMAKE_Fortran_FLAGS_RELEASE + \ CMAKE_Fortran_FLAGS_RELEASE_INIT + \ CMAKE_Fortran_FLAGS_RELWITHDEBINFO + \ CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_Fortran_FORMAT + \ CMAKE_Fortran_IGNORE_EXTENSIONS + \ CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_Fortran_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES + \ CMAKE_Fortran_INCLUDE_WHAT_YOU_USE + \ CMAKE_Fortran_INIT + \ CMAKE_Fortran_LIBRARY_ARCHITECTURE + \ CMAKE_Fortran_LINKER_LAUNCHER + \ CMAKE_Fortran_LINKER_PREFERENCE + \ CMAKE_Fortran_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_Fortran_LINKER_WRAPPER_FLAG + \ CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_Fortran_LINK_EXECUTABLE + \ CMAKE_Fortran_LINK_LIBRARY_FILE_FLAG + \ CMAKE_Fortran_LINK_LIBRARY_FLAG + \ CMAKE_Fortran_LINK_LIBRARY_SUFFIX + \ CMAKE_Fortran_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_Fortran_MODDIR_DEFAULT + \ CMAKE_Fortran_MODDIR_FLAG + \ CMAKE_Fortran_MODOUT_FLAG + \ CMAKE_Fortran_MODULE_DIRECTORY + \ CMAKE_Fortran_OUTPUT_EXTENSION + \ CMAKE_Fortran_PLATFORM_ID + \ CMAKE_Fortran_PREPROCESS + \ CMAKE_Fortran_SIMULATE_ID + \ CMAKE_Fortran_SIMULATE_VERSION + \ CMAKE_Fortran_SIZEOF_DATA_PTR + \ CMAKE_Fortran_SOURCE_FILE_EXTENSIONS + \ CMAKE_Fortran_STANDARD + \ CMAKE_Fortran_STANDARD_DEFAULT + \ CMAKE_Fortran_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_Fortran_STANDARD_LIBRARIES + \ CMAKE_Fortran_STANDARD_REQUIRED + \ CMAKE_Fortran_SUPPORTED + \ CMAKE_Fortran_VISIBILITY_PRESET + \ CMAKE_GENERATOR + \ CMAKE_GENERATOR_INSTANCE + \ CMAKE_GENERATOR_PLATFORM + \ CMAKE_GENERATOR_TOOLSET + \ CMAKE_GHS_NO_SOURCE_GROUP_FILE + \ CMAKE_GLOBAL_AUTOGEN_TARGET + \ CMAKE_GLOBAL_AUTOGEN_TARGET_NAME + \ CMAKE_GLOBAL_AUTORCC_TARGET + \ CMAKE_GLOBAL_AUTORCC_TARGET_NAME + \ CMAKE_GNUtoMS + \ CMAKE_HIP + \ CMAKE_HIP_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_HIP_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_HIP_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_HIP_ARCHITECTURES + \ CMAKE_HIP_ARCHIVE_APPEND + \ CMAKE_HIP_ARCHIVE_CREATE + \ CMAKE_HIP_ARCHIVE_FINISH + \ CMAKE_HIP_BYTE_ORDER + \ CMAKE_HIP_CLANG_TIDY + \ CMAKE_HIP_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_HIP_COMPILER + \ CMAKE_HIP_COMPILER_ABI + \ CMAKE_HIP_COMPILER_AR + \ CMAKE_HIP_COMPILER_ARCHITECTURE_ID + \ CMAKE_HIP_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_HIP_COMPILER_FRONTEND_VARIANT + \ CMAKE_HIP_COMPILER_ID + \ CMAKE_HIP_COMPILER_LAUNCHER + \ CMAKE_HIP_COMPILER_LOADED + \ CMAKE_HIP_COMPILER_PREDEFINES_COMMAND + \ CMAKE_HIP_COMPILER_RANLIB + \ CMAKE_HIP_COMPILER_TARGET + \ CMAKE_HIP_COMPILER_VERSION + \ CMAKE_HIP_COMPILER_VERSION_INTERNAL + \ CMAKE_HIP_COMPILE_FEATURES + \ CMAKE_HIP_COMPILE_OBJECT + \ CMAKE_HIP_CPPCHECK + \ CMAKE_HIP_CPPLINT + \ CMAKE_HIP_CREATE_SHARED_LIBRARY + \ CMAKE_HIP_CREATE_SHARED_MODULE + \ CMAKE_HIP_CREATE_STATIC_LIBRARY + \ CMAKE_HIP_EXTENSIONS + \ CMAKE_HIP_EXTENSIONS_DEFAULT + \ CMAKE_HIP_FLAGS + \ CMAKE_HIP_FLAGS_DEBUG + \ CMAKE_HIP_FLAGS_DEBUG_INIT + \ CMAKE_HIP_FLAGS_INIT + \ CMAKE_HIP_FLAGS_MINSIZEREL + \ CMAKE_HIP_FLAGS_MINSIZEREL_INIT + \ CMAKE_HIP_FLAGS_RELEASE + \ CMAKE_HIP_FLAGS_RELEASE_INIT + \ CMAKE_HIP_FLAGS_RELWITHDEBINFO + \ CMAKE_HIP_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_HIP_IGNORE_EXTENSIONS + \ CMAKE_HIP_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_HIP_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_HIP_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_HIP_IMPLICIT_LINK_LIBRARIES + \ CMAKE_HIP_INCLUDE_WHAT_YOU_USE + \ CMAKE_HIP_INIT + \ CMAKE_HIP_LIBRARY_ARCHITECTURE + \ CMAKE_HIP_LINKER_LAUNCHER + \ CMAKE_HIP_LINKER_PREFERENCE + \ CMAKE_HIP_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_HIP_LINKER_WRAPPER_FLAG + \ CMAKE_HIP_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_HIP_LINK_EXECUTABLE + \ CMAKE_HIP_LINK_LIBRARY_FILE_FLAG + \ CMAKE_HIP_LINK_LIBRARY_FLAG + \ CMAKE_HIP_LINK_LIBRARY_SUFFIX + \ CMAKE_HIP_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_HIP_OUTPUT_EXTENSION + \ CMAKE_HIP_PLATFORM_ID + \ CMAKE_HIP_SIMULATE_ID + \ CMAKE_HIP_SIMULATE_VERSION + \ CMAKE_HIP_SIZEOF_DATA_PTR + \ CMAKE_HIP_SOURCE_FILE_EXTENSIONS + \ CMAKE_HIP_STANDARD + \ CMAKE_HIP_STANDARD_DEFAULT + \ CMAKE_HIP_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_HIP_STANDARD_LIBRARIES + \ CMAKE_HIP_STANDARD_REQUIRED + \ CMAKE_HIP_SUPPORTED + \ CMAKE_HIP_VISIBILITY_PRESET + \ CMAKE_HOME_DIRECTORY + \ CMAKE_HOST_APPLE + \ CMAKE_HOST_BSD + \ CMAKE_HOST_LINUX + \ CMAKE_HOST_SOLARIS + \ CMAKE_HOST_SYSTEM + \ CMAKE_HOST_SYSTEM_NAME + \ CMAKE_HOST_SYSTEM_PROCESSOR + \ CMAKE_HOST_SYSTEM_VERSION + \ CMAKE_HOST_UNIX + \ CMAKE_HOST_WIN32 + \ CMAKE_IGNORE_PATH + \ CMAKE_IGNORE_PREFIX_PATH + \ CMAKE_IMPORT_LIBRARY_PREFIX + \ CMAKE_IMPORT_LIBRARY_SUFFIX + \ CMAKE_INCLUDE_CURRENT_DIR + \ CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE + \ CMAKE_INCLUDE_DIRECTORIES_BEFORE + \ CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE + \ CMAKE_INCLUDE_PATH + \ CMAKE_INSTALL_DEFAULT_COMPONENT_NAME + \ CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS + \ CMAKE_INSTALL_MESSAGE + \ CMAKE_INSTALL_NAME_DIR + \ CMAKE_INSTALL_PREFIX + \ CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT + \ CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH + \ CMAKE_INSTALL_RPATH + \ CMAKE_INSTALL_RPATH_USE_LINK_PATH + \ CMAKE_INTERNAL_PLATFORM_ABI + \ CMAKE_INTERPROCEDURAL_OPTIMIZATION + \ CMAKE_IOS_INSTALL_COMBINED + \ CMAKE_ISPC_HEADER_DIRECTORY + \ CMAKE_ISPC_HEADER_SUFFIX + \ CMAKE_ISPC_INSTRUCTION_SETS + \ CMAKE_JOB_POOLS + \ CMAKE_JOB_POOL_COMPILE + \ CMAKE_JOB_POOL_LINK + \ CMAKE_JOB_POOL_PRECOMPILE_HEADER + \ CMAKE_Java + \ CMAKE_Java_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_Java_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_Java_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_Java_ARCHIVE_APPEND + \ CMAKE_Java_ARCHIVE_CREATE + \ CMAKE_Java_ARCHIVE_FINISH + \ CMAKE_Java_BYTE_ORDER + \ CMAKE_Java_CLANG_TIDY + \ CMAKE_Java_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_Java_COMPILER + \ CMAKE_Java_COMPILER_ABI + \ CMAKE_Java_COMPILER_AR + \ CMAKE_Java_COMPILER_ARCHITECTURE_ID + \ CMAKE_Java_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_Java_COMPILER_FRONTEND_VARIANT + \ CMAKE_Java_COMPILER_ID + \ CMAKE_Java_COMPILER_LAUNCHER + \ CMAKE_Java_COMPILER_LOADED + \ CMAKE_Java_COMPILER_PREDEFINES_COMMAND + \ CMAKE_Java_COMPILER_RANLIB + \ CMAKE_Java_COMPILER_TARGET + \ CMAKE_Java_COMPILER_VERSION + \ CMAKE_Java_COMPILER_VERSION_INTERNAL + \ CMAKE_Java_COMPILE_OBJECT + \ CMAKE_Java_CPPCHECK + \ CMAKE_Java_CPPLINT + \ CMAKE_Java_CREATE_SHARED_LIBRARY + \ CMAKE_Java_CREATE_SHARED_MODULE + \ CMAKE_Java_CREATE_STATIC_LIBRARY + \ CMAKE_Java_EXTENSIONS + \ CMAKE_Java_EXTENSIONS_DEFAULT + \ CMAKE_Java_FLAGS + \ CMAKE_Java_FLAGS_DEBUG + \ CMAKE_Java_FLAGS_DEBUG_INIT + \ CMAKE_Java_FLAGS_INIT + \ CMAKE_Java_FLAGS_MINSIZEREL + \ CMAKE_Java_FLAGS_MINSIZEREL_INIT + \ CMAKE_Java_FLAGS_RELEASE + \ CMAKE_Java_FLAGS_RELEASE_INIT + \ CMAKE_Java_FLAGS_RELWITHDEBINFO + \ CMAKE_Java_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_Java_IGNORE_EXTENSIONS + \ CMAKE_Java_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_Java_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_Java_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_Java_IMPLICIT_LINK_LIBRARIES + \ CMAKE_Java_INCLUDE_WHAT_YOU_USE + \ CMAKE_Java_INIT + \ CMAKE_Java_LIBRARY_ARCHITECTURE + \ CMAKE_Java_LINKER_LAUNCHER + \ CMAKE_Java_LINKER_PREFERENCE + \ CMAKE_Java_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_Java_LINKER_WRAPPER_FLAG + \ CMAKE_Java_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_Java_LINK_EXECUTABLE + \ CMAKE_Java_LINK_LIBRARY_FILE_FLAG + \ CMAKE_Java_LINK_LIBRARY_FLAG + \ CMAKE_Java_LINK_LIBRARY_SUFFIX + \ CMAKE_Java_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_Java_OUTPUT_EXTENSION + \ CMAKE_Java_PLATFORM_ID + \ CMAKE_Java_SIMULATE_ID + \ CMAKE_Java_SIMULATE_VERSION + \ CMAKE_Java_SIZEOF_DATA_PTR + \ CMAKE_Java_SOURCE_FILE_EXTENSIONS + \ CMAKE_Java_STANDARD + \ CMAKE_Java_STANDARD_DEFAULT + \ CMAKE_Java_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_Java_STANDARD_LIBRARIES + \ CMAKE_Java_STANDARD_REQUIRED + \ CMAKE_Java_SUPPORTED + \ CMAKE_Java_VISIBILITY_PRESET + \ CMAKE_KATE_FILES_MODE + \ CMAKE_KATE_MAKE_ARGUMENTS + \ CMAKE_LIBRARY_ARCHITECTURE + \ CMAKE_LIBRARY_ARCHITECTURE_REGEX + \ CMAKE_LIBRARY_OUTPUT_DIRECTORY + \ CMAKE_LIBRARY_PATH + \ CMAKE_LIBRARY_PATH_FLAG + \ CMAKE_LINK_DEF_FILE_FLAG + \ CMAKE_LINK_DEPENDS_NO_SHARED + \ CMAKE_LINK_DEPENDS_USE_LINKER + \ CMAKE_LINK_DIRECTORIES_BEFORE + \ CMAKE_LINK_INTERFACE_LIBRARIES + \ CMAKE_LINK_LIBRARIES_ONLY_TARGETS + \ CMAKE_LINK_LIBRARY_FILE_FLAG + \ CMAKE_LINK_LIBRARY_FLAG + \ CMAKE_LINK_LIBRARY_SUFFIX + \ CMAKE_LINK_SEARCH_END_STATIC + \ CMAKE_LINK_SEARCH_START_STATIC + \ CMAKE_LINK_WHAT_YOU_USE + \ CMAKE_LINK_WHAT_YOU_USE_CHECK + \ CMAKE_MACOSX_BUNDLE + \ CMAKE_MACOSX_RPATH + \ CMAKE_MAJOR_VERSION + \ CMAKE_MAKE_PROGRAM + \ CMAKE_MATCH_COUNT + \ CMAKE_MAXIMUM_RECURSION_DEPTH + \ CMAKE_MESSAGE_CONTEXT + \ CMAKE_MESSAGE_CONTEXT_SHOW + \ CMAKE_MESSAGE_INDENT + \ CMAKE_MESSAGE_LOG_LEVEL + \ CMAKE_MFC_FLAG + \ CMAKE_MINIMUM_REQUIRED_VERSION + \ CMAKE_MINOR_VERSION + \ CMAKE_MODULE_LINKER_FLAGS + \ CMAKE_MODULE_LINKER_FLAGS_INIT + \ CMAKE_MODULE_PATH + \ CMAKE_MSVCIDE_RUN_PATH + \ CMAKE_MSVC_DEBUG_INFORMATION_FORMAT + \ CMAKE_MSVC_RUNTIME_LIBRARY + \ CMAKE_NETRC + \ CMAKE_NETRC_FILE + \ CMAKE_NINJA_OUTPUT_PATH_PREFIX + \ CMAKE_NOT_USING_CONFIG_FLAGS + \ CMAKE_NO_BUILTIN_CHRPATH + \ CMAKE_NO_SYSTEM_FROM_IMPORTED + \ CMAKE_OBJCXX_CLANG_TIDY + \ CMAKE_OBJCXX_EXTENSIONS + \ CMAKE_OBJCXX_LINKER_LAUNCHER + \ CMAKE_OBJCXX_STANDARD + \ CMAKE_OBJCXX_STANDARD_REQUIRED + \ CMAKE_OBJC_CLANG_TIDY + \ CMAKE_OBJC_EXTENSIONS + \ CMAKE_OBJC_LINKER_LAUNCHER + \ CMAKE_OBJC_STANDARD + \ CMAKE_OBJC_STANDARD_REQUIRED + \ CMAKE_OBJECT_PATH_MAX + \ CMAKE_OPTIMIZE_DEPENDENCIES + \ CMAKE_OSX_ARCHITECTURES + \ CMAKE_OSX_DEPLOYMENT_TARGET + \ CMAKE_OSX_SYSROOT + \ CMAKE_PARENT_LIST_FILE + \ CMAKE_PATCH_VERSION + \ CMAKE_PCH_INSTANTIATE_TEMPLATES + \ CMAKE_PCH_WARN_INVALID + \ CMAKE_PDB_OUTPUT_DIRECTORY + \ CMAKE_PLATFORM_NO_VERSIONED_SONAME + \ CMAKE_POSITION_INDEPENDENT_CODE + \ CMAKE_PREFIX_PATH + \ CMAKE_PROGRAM_PATH + \ CMAKE_PROJECT_DESCRIPTION + \ CMAKE_PROJECT_HOMEPAGE_URL + \ CMAKE_PROJECT_INCLUDE + \ CMAKE_PROJECT_INCLUDE_BEFORE + \ CMAKE_PROJECT_NAME + \ CMAKE_PROJECT_TOP_LEVEL_INCLUDES + \ CMAKE_PROJECT_VERSION + \ CMAKE_PROJECT_VERSION_MAJOR + \ CMAKE_PROJECT_VERSION_MINOR + \ CMAKE_PROJECT_VERSION_PATCH + \ CMAKE_PROJECT_VERSION_TWEAK + \ CMAKE_RANLIB + \ CMAKE_RC + \ CMAKE_RC_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_RC_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_RC_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_RC_ARCHIVE_APPEND + \ CMAKE_RC_ARCHIVE_CREATE + \ CMAKE_RC_ARCHIVE_FINISH + \ CMAKE_RC_BYTE_ORDER + \ CMAKE_RC_CLANG_TIDY + \ CMAKE_RC_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_RC_COMPILER + \ CMAKE_RC_COMPILER_ABI + \ CMAKE_RC_COMPILER_AR + \ CMAKE_RC_COMPILER_ARCHITECTURE_ID + \ CMAKE_RC_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_RC_COMPILER_FRONTEND_VARIANT + \ CMAKE_RC_COMPILER_ID + \ CMAKE_RC_COMPILER_LAUNCHER + \ CMAKE_RC_COMPILER_LOADED + \ CMAKE_RC_COMPILER_PREDEFINES_COMMAND + \ CMAKE_RC_COMPILER_RANLIB + \ CMAKE_RC_COMPILER_TARGET + \ CMAKE_RC_COMPILER_VERSION + \ CMAKE_RC_COMPILER_VERSION_INTERNAL + \ CMAKE_RC_COMPILE_OBJECT + \ CMAKE_RC_CPPCHECK + \ CMAKE_RC_CPPLINT + \ CMAKE_RC_CREATE_SHARED_LIBRARY + \ CMAKE_RC_CREATE_SHARED_MODULE + \ CMAKE_RC_CREATE_STATIC_LIBRARY + \ CMAKE_RC_EXTENSIONS + \ CMAKE_RC_EXTENSIONS_DEFAULT + \ CMAKE_RC_FLAGS + \ CMAKE_RC_FLAGS_DEBUG + \ CMAKE_RC_FLAGS_DEBUG_INIT + \ CMAKE_RC_FLAGS_INIT + \ CMAKE_RC_FLAGS_MINSIZEREL + \ CMAKE_RC_FLAGS_MINSIZEREL_INIT + \ CMAKE_RC_FLAGS_RELEASE + \ CMAKE_RC_FLAGS_RELEASE_INIT + \ CMAKE_RC_FLAGS_RELWITHDEBINFO + \ CMAKE_RC_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_RC_IGNORE_EXTENSIONS + \ CMAKE_RC_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_RC_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_RC_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_RC_IMPLICIT_LINK_LIBRARIES + \ CMAKE_RC_INCLUDE_WHAT_YOU_USE + \ CMAKE_RC_INIT + \ CMAKE_RC_LIBRARY_ARCHITECTURE + \ CMAKE_RC_LINKER_LAUNCHER + \ CMAKE_RC_LINKER_PREFERENCE + \ CMAKE_RC_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_RC_LINKER_WRAPPER_FLAG + \ CMAKE_RC_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_RC_LINK_EXECUTABLE + \ CMAKE_RC_LINK_LIBRARY_FILE_FLAG + \ CMAKE_RC_LINK_LIBRARY_FLAG + \ CMAKE_RC_LINK_LIBRARY_SUFFIX + \ CMAKE_RC_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_RC_OUTPUT_EXTENSION + \ CMAKE_RC_PLATFORM_ID + \ CMAKE_RC_SIMULATE_ID + \ CMAKE_RC_SIMULATE_VERSION + \ CMAKE_RC_SIZEOF_DATA_PTR + \ CMAKE_RC_SOURCE_FILE_EXTENSIONS + \ CMAKE_RC_STANDARD + \ CMAKE_RC_STANDARD_DEFAULT + \ CMAKE_RC_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_RC_STANDARD_LIBRARIES + \ CMAKE_RC_STANDARD_REQUIRED + \ CMAKE_RC_SUPPORTED + \ CMAKE_RC_VISIBILITY_PRESET + \ CMAKE_ROOT + \ CMAKE_RULE_MESSAGES + \ CMAKE_RUNTIME_OUTPUT_DIRECTORY + \ CMAKE_SCRIPT_MODE_FILE + \ CMAKE_SHARED_LIBRARY_ENABLE_EXPORTS + \ CMAKE_SHARED_LIBRARY_PREFIX + \ CMAKE_SHARED_LIBRARY_SUFFIX + \ CMAKE_SHARED_LINKER_FLAGS + \ CMAKE_SHARED_LINKER_FLAGS_INIT + \ CMAKE_SHARED_MODULE_PREFIX + \ CMAKE_SHARED_MODULE_SUFFIX + \ CMAKE_SIZEOF_VOID_P + \ CMAKE_SKIP_BUILD_RPATH + \ CMAKE_SKIP_INSTALL_ALL_DEPENDENCY + \ CMAKE_SKIP_INSTALL_RPATH + \ CMAKE_SKIP_INSTALL_RULES + \ CMAKE_SKIP_RPATH + \ CMAKE_SKIP_TEST_ALL_DEPENDENCY + \ CMAKE_SOURCE_DIR + \ CMAKE_STAGING_PREFIX + \ CMAKE_STATIC_LIBRARY_PREFIX + \ CMAKE_STATIC_LIBRARY_SUFFIX + \ CMAKE_STATIC_LINKER_FLAGS + \ CMAKE_STATIC_LINKER_FLAGS_INIT + \ CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS + \ CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE + \ CMAKE_SUPPRESS_REGENERATION + \ CMAKE_SYSROOT + \ CMAKE_SYSROOT_COMPILE + \ CMAKE_SYSROOT_LINK + \ CMAKE_SYSTEM + \ CMAKE_SYSTEM_APPBUNDLE_PATH + \ CMAKE_SYSTEM_FRAMEWORK_PATH + \ CMAKE_SYSTEM_IGNORE_PATH + \ CMAKE_SYSTEM_IGNORE_PREFIX_PATH + \ CMAKE_SYSTEM_INCLUDE_PATH + \ CMAKE_SYSTEM_LIBRARY_PATH + \ CMAKE_SYSTEM_NAME + \ CMAKE_SYSTEM_PREFIX_PATH + \ CMAKE_SYSTEM_PROCESSOR + \ CMAKE_SYSTEM_PROGRAM_PATH + \ CMAKE_SYSTEM_VERSION + \ CMAKE_Swift + \ CMAKE_Swift_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_Swift_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_Swift_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_Swift_ARCHIVE_APPEND + \ CMAKE_Swift_ARCHIVE_CREATE + \ CMAKE_Swift_ARCHIVE_FINISH + \ CMAKE_Swift_BYTE_ORDER + \ CMAKE_Swift_CLANG_TIDY + \ CMAKE_Swift_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_Swift_COMPILER + \ CMAKE_Swift_COMPILER_ABI + \ CMAKE_Swift_COMPILER_AR + \ CMAKE_Swift_COMPILER_ARCHITECTURE_ID + \ CMAKE_Swift_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_Swift_COMPILER_FRONTEND_VARIANT + \ CMAKE_Swift_COMPILER_ID + \ CMAKE_Swift_COMPILER_LAUNCHER + \ CMAKE_Swift_COMPILER_LOADED + \ CMAKE_Swift_COMPILER_PREDEFINES_COMMAND + \ CMAKE_Swift_COMPILER_RANLIB + \ CMAKE_Swift_COMPILER_TARGET + \ CMAKE_Swift_COMPILER_VERSION + \ CMAKE_Swift_COMPILER_VERSION_INTERNAL + \ CMAKE_Swift_COMPILE_OBJECT + \ CMAKE_Swift_CPPCHECK + \ CMAKE_Swift_CPPLINT + \ CMAKE_Swift_CREATE_SHARED_LIBRARY + \ CMAKE_Swift_CREATE_SHARED_MODULE + \ CMAKE_Swift_CREATE_STATIC_LIBRARY + \ CMAKE_Swift_EXTENSIONS + \ CMAKE_Swift_EXTENSIONS_DEFAULT + \ CMAKE_Swift_FLAGS + \ CMAKE_Swift_FLAGS_DEBUG + \ CMAKE_Swift_FLAGS_DEBUG_INIT + \ CMAKE_Swift_FLAGS_INIT + \ CMAKE_Swift_FLAGS_MINSIZEREL + \ CMAKE_Swift_FLAGS_MINSIZEREL_INIT + \ CMAKE_Swift_FLAGS_RELEASE + \ CMAKE_Swift_FLAGS_RELEASE_INIT + \ CMAKE_Swift_FLAGS_RELWITHDEBINFO + \ CMAKE_Swift_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_Swift_IGNORE_EXTENSIONS + \ CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_Swift_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_Swift_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_Swift_IMPLICIT_LINK_LIBRARIES + \ CMAKE_Swift_INCLUDE_WHAT_YOU_USE + \ CMAKE_Swift_INIT + \ CMAKE_Swift_LANGUAGE_VERSION + \ CMAKE_Swift_LIBRARY_ARCHITECTURE + \ CMAKE_Swift_LINKER_LAUNCHER + \ CMAKE_Swift_LINKER_PREFERENCE + \ CMAKE_Swift_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_Swift_LINKER_WRAPPER_FLAG + \ CMAKE_Swift_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_Swift_LINK_EXECUTABLE + \ CMAKE_Swift_LINK_LIBRARY_FILE_FLAG + \ CMAKE_Swift_LINK_LIBRARY_FLAG + \ CMAKE_Swift_LINK_LIBRARY_SUFFIX + \ CMAKE_Swift_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_Swift_MODULE_DIRECTORY + \ CMAKE_Swift_NUM_THREADS + \ CMAKE_Swift_OUTPUT_EXTENSION + \ CMAKE_Swift_PLATFORM_ID + \ CMAKE_Swift_SIMULATE_ID + \ CMAKE_Swift_SIMULATE_VERSION + \ CMAKE_Swift_SIZEOF_DATA_PTR + \ CMAKE_Swift_SOURCE_FILE_EXTENSIONS + \ CMAKE_Swift_STANDARD + \ CMAKE_Swift_STANDARD_DEFAULT + \ CMAKE_Swift_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_Swift_STANDARD_LIBRARIES + \ CMAKE_Swift_STANDARD_REQUIRED + \ CMAKE_Swift_SUPPORTED + \ CMAKE_Swift_VISIBILITY_PRESET + \ CMAKE_TASKING_TOOLSET + \ CMAKE_TLS_CAINFO + \ CMAKE_TLS_VERIFY + \ CMAKE_TOOLCHAIN_FILE + \ CMAKE_TRY_COMPILE_CONFIGURATION + \ CMAKE_TRY_COMPILE_NO_PLATFORM_VARIABLES + \ CMAKE_TRY_COMPILE_PLATFORM_VARIABLES + \ CMAKE_TRY_COMPILE_TARGET_TYPE + \ CMAKE_TWEAK_VERSION + \ CMAKE_UNITY_BUILD + \ CMAKE_UNITY_BUILD_BATCH_SIZE + \ CMAKE_UNITY_BUILD_UNIQUE_ID + \ CMAKE_USER_MAKE_RULES_OVERRIDE + \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM + \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM_MASM + \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM_NASM + \ CMAKE_USER_MAKE_RULES_OVERRIDE_C + \ CMAKE_USER_MAKE_RULES_OVERRIDE_CSharp + \ CMAKE_USER_MAKE_RULES_OVERRIDE_CUDA + \ CMAKE_USER_MAKE_RULES_OVERRIDE_CXX + \ CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran + \ CMAKE_USER_MAKE_RULES_OVERRIDE_HIP + \ CMAKE_USER_MAKE_RULES_OVERRIDE_Java + \ CMAKE_USER_MAKE_RULES_OVERRIDE_RC + \ CMAKE_USER_MAKE_RULES_OVERRIDE_Swift + \ CMAKE_USE_RELATIVE_PATHS + \ CMAKE_VERBOSE_MAKEFILE + \ CMAKE_VERIFY_INTERFACE_HEADER_SETS + \ CMAKE_VERSION + \ CMAKE_VISIBILITY_INLINES_HIDDEN + \ CMAKE_VS_DEBUGGER_COMMAND + \ CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS + \ CMAKE_VS_DEBUGGER_ENVIRONMENT + \ CMAKE_VS_DEBUGGER_WORKING_DIRECTORY + \ CMAKE_VS_DEVENV_COMMAND + \ CMAKE_VS_GLOBALS + \ CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD + \ CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD + \ CMAKE_VS_INTEL_Fortran_PROJECT_VERSION + \ CMAKE_VS_JUST_MY_CODE_DEBUGGING + \ CMAKE_VS_MSBUILD_COMMAND + \ CMAKE_VS_NO_COMPILE_BATCHING + \ CMAKE_VS_NUGET_PACKAGE_RESTORE + \ CMAKE_VS_NsightTegra_VERSION + \ CMAKE_VS_PLATFORM_NAME + \ CMAKE_VS_PLATFORM_NAME_DEFAULT + \ CMAKE_VS_PLATFORM_TOOLSET + \ CMAKE_VS_PLATFORM_TOOLSET_CUDA + \ CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR + \ CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE + \ CMAKE_VS_PLATFORM_TOOLSET_VERSION + \ CMAKE_VS_SDK_EXCLUDE_DIRECTORIES + \ CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES + \ CMAKE_VS_SDK_INCLUDE_DIRECTORIES + \ CMAKE_VS_SDK_LIBRARY_DIRECTORIES + \ CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES + \ CMAKE_VS_SDK_REFERENCE_DIRECTORIES + \ CMAKE_VS_SDK_SOURCE_DIRECTORIES + \ CMAKE_VS_TARGET_FRAMEWORK_IDENTIFIER + \ CMAKE_VS_TARGET_FRAMEWORK_TARGETS_VERSION + \ CMAKE_VS_TARGET_FRAMEWORK_VERSION + \ CMAKE_VS_VERSION_BUILD_NUMBER + \ CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION + \ CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION + \ CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM + \ CMAKE_VS_WINRT_BY_DEFAULT + \ CMAKE_WARN_DEPRECATED + \ CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION + \ CMAKE_WATCOM_RUNTIME_LIBRARY + \ CMAKE_WIN32_EXECUTABLE + \ CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS + \ CMAKE_XCODE_BUILD_SYSTEM + \ CMAKE_XCODE_GENERATE_SCHEME + \ CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY + \ CMAKE_XCODE_LINK_BUILD_PHASE_MODE + \ CMAKE_XCODE_PLATFORM_TOOLSET + \ CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER + \ CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN + \ CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE + \ CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER + \ CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS + \ CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION + \ CMAKE_XCODE_SCHEME_ENVIRONMENT + \ CMAKE_XCODE_SCHEME_GUARD_MALLOC + \ CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION + \ CMAKE_XCODE_SCHEME_LAUNCH_MODE + \ CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP + \ CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES + \ CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE + \ CMAKE_XCODE_SCHEME_MALLOC_STACK + \ CMAKE_XCODE_SCHEME_THREAD_SANITIZER + \ CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP + \ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER + \ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION + \ CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION + \ CMAKE_XCODE_SCHEME_WORKING_DIRECTORY + \ CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS + \ CMAKE_XCODE_XCCONFIG + \ CPACK_ABSOLUTE_DESTINATION_FILES + \ CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY + \ CPACK_CUSTOM_INSTALL_VARIABLES + \ CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION + \ CPACK_INCLUDE_TOPLEVEL_DIRECTORY + \ CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS + \ CPACK_PACKAGING_INSTALL_PREFIX + \ CPACK_SET_DESTDIR + \ CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION + \ CTEST_BINARY_DIRECTORY + \ CTEST_BUILD_COMMAND + \ CTEST_BUILD_NAME + \ CTEST_BZR_COMMAND + \ CTEST_BZR_UPDATE_OPTIONS + \ CTEST_CHANGE_ID + \ CTEST_CHECKOUT_COMMAND + \ CTEST_CONFIGURATION_TYPE + \ CTEST_CONFIGURE_COMMAND + \ CTEST_COVERAGE_COMMAND + \ CTEST_COVERAGE_EXTRA_FLAGS + \ CTEST_CURL_OPTIONS + \ CTEST_CUSTOM_COVERAGE_EXCLUDE + \ CTEST_CUSTOM_ERROR_EXCEPTION + \ CTEST_CUSTOM_ERROR_MATCH + \ CTEST_CUSTOM_ERROR_POST_CONTEXT + \ CTEST_CUSTOM_ERROR_PRE_CONTEXT + \ CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE + \ CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS + \ CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS + \ CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE + \ CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION + \ CTEST_CUSTOM_MEMCHECK_IGNORE + \ CTEST_CUSTOM_POST_MEMCHECK + \ CTEST_CUSTOM_POST_TEST + \ CTEST_CUSTOM_PRE_MEMCHECK + \ CTEST_CUSTOM_PRE_TEST + \ CTEST_CUSTOM_TESTS_IGNORE + \ CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION + \ CTEST_CUSTOM_WARNING_EXCEPTION + \ CTEST_CUSTOM_WARNING_MATCH + \ CTEST_CVS_CHECKOUT + \ CTEST_CVS_COMMAND + \ CTEST_CVS_UPDATE_OPTIONS + \ CTEST_DROP_LOCATION + \ CTEST_DROP_METHOD + \ CTEST_DROP_SITE + \ CTEST_DROP_SITE_CDASH + \ CTEST_DROP_SITE_PASSWORD + \ CTEST_DROP_SITE_USER + \ CTEST_EXTRA_COVERAGE_GLOB + \ CTEST_GIT_COMMAND + \ CTEST_GIT_INIT_SUBMODULES + \ CTEST_GIT_UPDATE_CUSTOM + \ CTEST_GIT_UPDATE_OPTIONS + \ CTEST_HG_COMMAND + \ CTEST_HG_UPDATE_OPTIONS + \ CTEST_LABELS_FOR_SUBPROJECTS + \ CTEST_MEMORYCHECK_COMMAND + \ CTEST_MEMORYCHECK_COMMAND_OPTIONS + \ CTEST_MEMORYCHECK_SANITIZER_OPTIONS + \ CTEST_MEMORYCHECK_SUPPRESSIONS_FILE + \ CTEST_MEMORYCHECK_TYPE + \ CTEST_NIGHTLY_START_TIME + \ CTEST_P4_CLIENT + \ CTEST_P4_COMMAND + \ CTEST_P4_OPTIONS + \ CTEST_P4_UPDATE_OPTIONS + \ CTEST_RESOURCE_SPEC_FILE + \ CTEST_RUN_CURRENT_SCRIPT + \ CTEST_SCP_COMMAND + \ CTEST_SCRIPT_DIRECTORY + \ CTEST_SITE + \ CTEST_SOURCE_DIRECTORY + \ CTEST_SUBMIT_INACTIVITY_TIMEOUT + \ CTEST_SUBMIT_URL + \ CTEST_SVN_COMMAND + \ CTEST_SVN_OPTIONS + \ CTEST_SVN_UPDATE_OPTIONS + \ CTEST_TEST_LOAD + \ CTEST_TEST_TIMEOUT + \ CTEST_TRIGGER_SITE + \ CTEST_UPDATE_COMMAND + \ CTEST_UPDATE_OPTIONS + \ CTEST_UPDATE_VERSION_ONLY + \ CTEST_UPDATE_VERSION_OVERRIDE + \ CTEST_USE_LAUNCHERS + \ CYGWIN + \ DOXYGEN_ABBREVIATE_BRIEF + \ DOXYGEN_ALIASES + \ DOXYGEN_ALLEXTERNALS + \ DOXYGEN_ALLOW_UNICODE_NAMES + \ DOXYGEN_ALPHABETICAL_INDEX + \ DOXYGEN_ALWAYS_DETAILED_SEC + \ DOXYGEN_AUTOLINK_SUPPORT + \ DOXYGEN_BINARY_TOC + \ DOXYGEN_BRIEF_MEMBER_DESC + \ DOXYGEN_BUILTIN_STL_SUPPORT + \ DOXYGEN_CALLER_GRAPH + \ DOXYGEN_CALL_GRAPH + \ DOXYGEN_CASE_SENSE_NAMES + \ DOXYGEN_CHM_FILE + \ DOXYGEN_CHM_INDEX_ENCODING + \ DOXYGEN_CITE_BIB_FILES + \ DOXYGEN_CLANG_ASSISTED_PARSING + \ DOXYGEN_CLANG_DATABASE_PATH + \ DOXYGEN_CLANG_OPTIONS + \ DOXYGEN_CLASS_DIAGRAMS + \ DOXYGEN_CLASS_GRAPH + \ DOXYGEN_COLLABORATION_GRAPH + \ DOXYGEN_COLS_IN_ALPHA_INDEX + \ DOXYGEN_COMPACT_LATEX + \ DOXYGEN_COMPACT_RTF + \ DOXYGEN_CPP_CLI_SUPPORT + \ DOXYGEN_CREATE_SUBDIRS + \ DOXYGEN_DIAFILE_DIRS + \ DOXYGEN_DIA_PATH + \ DOXYGEN_DIRECTORY_GRAPH + \ DOXYGEN_DISABLE_INDEX + \ DOXYGEN_DISTRIBUTE_GROUP_DOC + \ DOXYGEN_DOCBOOK_OUTPUT + \ DOXYGEN_DOCBOOK_PROGRAMLISTING + \ DOXYGEN_DOCSET_BUNDLE_ID + \ DOXYGEN_DOCSET_FEEDNAME + \ DOXYGEN_DOCSET_PUBLISHER_ID + \ DOXYGEN_DOCSET_PUBLISHER_NAME + \ DOXYGEN_DOTFILE_DIRS + \ DOXYGEN_DOT_CLEANUP + \ DOXYGEN_DOT_FONTNAME + \ DOXYGEN_DOT_FONTPATH + \ DOXYGEN_DOT_FONTSIZE + \ DOXYGEN_DOT_GRAPH_MAX_NODES + \ DOXYGEN_DOT_IMAGE_FORMAT + \ DOXYGEN_DOT_MULTI_TARGETS + \ DOXYGEN_DOT_NUM_THREADS + \ DOXYGEN_DOT_PATH + \ DOXYGEN_DOT_TRANSPARENT + \ DOXYGEN_DOXYFILE_ENCODING + \ DOXYGEN_ECLIPSE_DOC_ID + \ DOXYGEN_ENABLED_SECTIONS + \ DOXYGEN_ENABLE_PREPROCESSING + \ DOXYGEN_ENUM_VALUES_PER_LINE + \ DOXYGEN_EXAMPLE_PATH + \ DOXYGEN_EXAMPLE_PATTERNS + \ DOXYGEN_EXAMPLE_RECURSIVE + \ DOXYGEN_EXCLUDE + \ DOXYGEN_EXCLUDE_PATTERNS + \ DOXYGEN_EXCLUDE_SYMBOLS + \ DOXYGEN_EXCLUDE_SYMLINKS + \ DOXYGEN_EXPAND_AS_DEFINED + \ DOXYGEN_EXPAND_ONLY_PREDEF + \ DOXYGEN_EXTENSION_MAPPING + \ DOXYGEN_EXTERNAL_GROUPS + \ DOXYGEN_EXTERNAL_PAGES + \ DOXYGEN_EXTERNAL_SEARCH + \ DOXYGEN_EXTERNAL_SEARCH_ID + \ DOXYGEN_EXTRACT_ALL + \ DOXYGEN_EXTRACT_ANON_NSPACES + \ DOXYGEN_EXTRACT_LOCAL_CLASSES + \ DOXYGEN_EXTRACT_LOCAL_METHODS + \ DOXYGEN_EXTRACT_PACKAGE + \ DOXYGEN_EXTRACT_PRIVATE + \ DOXYGEN_EXTRACT_PRIV_VIRTUAL + \ DOXYGEN_EXTRACT_STATIC + \ DOXYGEN_EXTRA_PACKAGES + \ DOXYGEN_EXTRA_SEARCH_MAPPINGS + \ DOXYGEN_EXT_LINKS_IN_WINDOW + \ DOXYGEN_FILE_PATTERNS + \ DOXYGEN_FILE_VERSION_FILTER + \ DOXYGEN_FILTER_PATTERNS + \ DOXYGEN_FILTER_SOURCE_FILES + \ DOXYGEN_FILTER_SOURCE_PATTERNS + \ DOXYGEN_FORCE_LOCAL_INCLUDES + \ DOXYGEN_FORMULA_FONTSIZE + \ DOXYGEN_FORMULA_TRANSPARENT + \ DOXYGEN_FULL_PATH_NAMES + \ DOXYGEN_GENERATE_AUTOGEN_DEF + \ DOXYGEN_GENERATE_BUGLIST + \ DOXYGEN_GENERATE_CHI + \ DOXYGEN_GENERATE_DEPRECATEDLIST + \ DOXYGEN_GENERATE_DOCBOOK + \ DOXYGEN_GENERATE_DOCSET + \ DOXYGEN_GENERATE_ECLIPSEHELP + \ DOXYGEN_GENERATE_HTML + \ DOXYGEN_GENERATE_HTMLHELP + \ DOXYGEN_GENERATE_LATEX + \ DOXYGEN_GENERATE_LEGEND + \ DOXYGEN_GENERATE_MAN + \ DOXYGEN_GENERATE_PERLMOD + \ DOXYGEN_GENERATE_QHP + \ DOXYGEN_GENERATE_RTF + \ DOXYGEN_GENERATE_TAGFILE + \ DOXYGEN_GENERATE_TESTLIST + \ DOXYGEN_GENERATE_TODOLIST + \ DOXYGEN_GENERATE_TREEVIEW + \ DOXYGEN_GENERATE_XML + \ DOXYGEN_GRAPHICAL_HIERARCHY + \ DOXYGEN_GROUP_GRAPHS + \ DOXYGEN_GROUP_NESTED_COMPOUNDS + \ DOXYGEN_HAVE_DOT + \ DOXYGEN_HHC_LOCATION + \ DOXYGEN_HIDE_COMPOUND_REFERENCE + \ DOXYGEN_HIDE_FRIEND_COMPOUNDS + \ DOXYGEN_HIDE_IN_BODY_DOCS + \ DOXYGEN_HIDE_SCOPE_NAMES + \ DOXYGEN_HIDE_UNDOC_CLASSES + \ DOXYGEN_HIDE_UNDOC_MEMBERS + \ DOXYGEN_HIDE_UNDOC_RELATIONS + \ DOXYGEN_HTML_COLORSTYLE_GAMMA + \ DOXYGEN_HTML_COLORSTYLE_HUE + \ DOXYGEN_HTML_COLORSTYLE_SAT + \ DOXYGEN_HTML_DYNAMIC_MENUS + \ DOXYGEN_HTML_DYNAMIC_SECTIONS + \ DOXYGEN_HTML_EXTRA_FILES + \ DOXYGEN_HTML_EXTRA_STYLESHEET + \ DOXYGEN_HTML_FILE_EXTENSION + \ DOXYGEN_HTML_FOOTER + \ DOXYGEN_HTML_HEADER + \ DOXYGEN_HTML_INDEX_NUM_ENTRIES + \ DOXYGEN_HTML_OUTPUT + \ DOXYGEN_HTML_STYLESHEET + \ DOXYGEN_HTML_TIMESTAMP + \ DOXYGEN_IDL_PROPERTY_SUPPORT + \ DOXYGEN_IGNORE_PREFIX + \ DOXYGEN_IMAGE_PATH + \ DOXYGEN_INCLUDED_BY_GRAPH + \ DOXYGEN_INCLUDE_FILE_PATTERNS + \ DOXYGEN_INCLUDE_GRAPH + \ DOXYGEN_INCLUDE_PATH + \ DOXYGEN_INHERIT_DOCS + \ DOXYGEN_INLINE_GROUPED_CLASSES + \ DOXYGEN_INLINE_INFO + \ DOXYGEN_INLINE_INHERITED_MEMB + \ DOXYGEN_INLINE_SIMPLE_STRUCTS + \ DOXYGEN_INLINE_SOURCES + \ DOXYGEN_INPUT + \ DOXYGEN_INPUT_ENCODING + \ DOXYGEN_INPUT_FILTER + \ DOXYGEN_INTERACTIVE_SVG + \ DOXYGEN_INTERNAL_DOCS + \ DOXYGEN_JAVADOC_AUTOBRIEF + \ DOXYGEN_JAVADOC_BANNER + \ DOXYGEN_LATEX_BATCHMODE + \ DOXYGEN_LATEX_BIB_STYLE + \ DOXYGEN_LATEX_CMD_NAME + \ DOXYGEN_LATEX_EMOJI_DIRECTORY + \ DOXYGEN_LATEX_EXTRA_FILES + \ DOXYGEN_LATEX_EXTRA_STYLESHEET + \ DOXYGEN_LATEX_FOOTER + \ DOXYGEN_LATEX_HEADER + \ DOXYGEN_LATEX_HIDE_INDICES + \ DOXYGEN_LATEX_MAKEINDEX_CMD + \ DOXYGEN_LATEX_OUTPUT + \ DOXYGEN_LATEX_SOURCE_CODE + \ DOXYGEN_LATEX_TIMESTAMP + \ DOXYGEN_LAYOUT_FILE + \ DOXYGEN_LOOKUP_CACHE_SIZE + \ DOXYGEN_MACRO_EXPANSION + \ DOXYGEN_MAKEINDEX_CMD_NAME + \ DOXYGEN_MAN_EXTENSION + \ DOXYGEN_MAN_LINKS + \ DOXYGEN_MAN_OUTPUT + \ DOXYGEN_MAN_SUBDIR + \ DOXYGEN_MARKDOWN_SUPPORT + \ DOXYGEN_MATHJAX_CODEFILE + \ DOXYGEN_MATHJAX_EXTENSIONS + \ DOXYGEN_MATHJAX_FORMAT + \ DOXYGEN_MATHJAX_RELPATH + \ DOXYGEN_MAX_DOT_GRAPH_DEPTH + \ DOXYGEN_MAX_INITIALIZER_LINES + \ DOXYGEN_MSCFILE_DIRS + \ DOXYGEN_MULTILINE_CPP_IS_BRIEF + \ DOXYGEN_OPTIMIZE_FOR_FORTRAN + \ DOXYGEN_OPTIMIZE_OUTPUT_FOR_C + \ DOXYGEN_OPTIMIZE_OUTPUT_JAVA + \ DOXYGEN_OPTIMIZE_OUTPUT_SLICE + \ DOXYGEN_OPTIMIZE_OUTPUT_VHDL + \ DOXYGEN_OUTPUT_DIRECTORY + \ DOXYGEN_OUTPUT_LANGUAGE + \ DOXYGEN_OUTPUT_TEXT_DIRECTION + \ DOXYGEN_PAPER_TYPE + \ DOXYGEN_PDF_HYPERLINKS + \ DOXYGEN_PERLMOD_LATEX + \ DOXYGEN_PERLMOD_MAKEVAR_PREFIX + \ DOXYGEN_PERLMOD_PRETTY + \ DOXYGEN_PLANTUML_CFG_FILE + \ DOXYGEN_PLANTUML_INCLUDE_PATH + \ DOXYGEN_PLANTUML_JAR_PATH + \ DOXYGEN_PREDEFINED + \ DOXYGEN_PROJECT_BRIEF + \ DOXYGEN_PROJECT_LOGO + \ DOXYGEN_PROJECT_NAME + \ DOXYGEN_PROJECT_NUMBER + \ DOXYGEN_QCH_FILE + \ DOXYGEN_QHG_LOCATION + \ DOXYGEN_QHP_CUST_FILTER_ATTRS + \ DOXYGEN_QHP_CUST_FILTER_NAME + \ DOXYGEN_QHP_NAMESPACE + \ DOXYGEN_QHP_SECT_FILTER_ATTRS + \ DOXYGEN_QHP_VIRTUAL_FOLDER + \ DOXYGEN_QT_AUTOBRIEF + \ DOXYGEN_QUIET + \ DOXYGEN_RECURSIVE + \ DOXYGEN_REFERENCED_BY_RELATION + \ DOXYGEN_REFERENCES_LINK_SOURCE + \ DOXYGEN_REFERENCES_RELATION + \ DOXYGEN_REPEAT_BRIEF + \ DOXYGEN_RTF_EXTENSIONS_FILE + \ DOXYGEN_RTF_HYPERLINKS + \ DOXYGEN_RTF_OUTPUT + \ DOXYGEN_RTF_SOURCE_CODE + \ DOXYGEN_RTF_STYLESHEET_FILE + \ DOXYGEN_SEARCHDATA_FILE + \ DOXYGEN_SEARCHENGINE + \ DOXYGEN_SEARCHENGINE_URL + \ DOXYGEN_SEARCH_INCLUDES + \ DOXYGEN_SEPARATE_MEMBER_PAGES + \ DOXYGEN_SERVER_BASED_SEARCH + \ DOXYGEN_SHORT_NAMES + \ DOXYGEN_SHOW_FILES + \ DOXYGEN_SHOW_GROUPED_MEMB_INC + \ DOXYGEN_SHOW_INCLUDE_FILES + \ DOXYGEN_SHOW_NAMESPACES + \ DOXYGEN_SHOW_USED_FILES + \ DOXYGEN_SIP_SUPPORT + \ DOXYGEN_SKIP_FUNCTION_MACROS + \ DOXYGEN_SORT_BRIEF_DOCS + \ DOXYGEN_SORT_BY_SCOPE_NAME + \ DOXYGEN_SORT_GROUP_NAMES + \ DOXYGEN_SORT_MEMBERS_CTORS_1ST + \ DOXYGEN_SORT_MEMBER_DOCS + \ DOXYGEN_SOURCE_BROWSER + \ DOXYGEN_SOURCE_TOOLTIPS + \ DOXYGEN_STRICT_PROTO_MATCHING + \ DOXYGEN_STRIP_CODE_COMMENTS + \ DOXYGEN_STRIP_FROM_INC_PATH + \ DOXYGEN_STRIP_FROM_PATH + \ DOXYGEN_SUBGROUPING + \ DOXYGEN_TAB_SIZE + \ DOXYGEN_TAGFILES + \ DOXYGEN_TCL_SUBST + \ DOXYGEN_TEMPLATE_RELATIONS + \ DOXYGEN_TOC_EXPAND + \ DOXYGEN_TOC_INCLUDE_HEADINGS + \ DOXYGEN_TREEVIEW_WIDTH + \ DOXYGEN_TYPEDEF_HIDES_STRUCT + \ DOXYGEN_UML_LIMIT_NUM_FIELDS + \ DOXYGEN_UML_LOOK + \ DOXYGEN_USE_HTAGS + \ DOXYGEN_USE_MATHJAX + \ DOXYGEN_USE_MDFILE_AS_MAINPAGE + \ DOXYGEN_USE_PDFLATEX + \ DOXYGEN_VERBATIM_HEADERS + \ DOXYGEN_VERBATIM_VARS + \ DOXYGEN_VERSION + \ DOXYGEN_WARNINGS + \ DOXYGEN_WARN_AS_ERROR + \ DOXYGEN_WARN_FORMAT + \ DOXYGEN_WARN_IF_DOC_ERROR + \ DOXYGEN_WARN_IF_UNDOCUMENTED + \ DOXYGEN_WARN_LOGFILE + \ DOXYGEN_WARN_NO_PARAMDOC + \ DOXYGEN_XML_NS_MEMB_FILE_SCOPE + \ DOXYGEN_XML_OUTPUT + \ DOXYGEN_XML_PROGRAMLISTING + \ ENV + \ EXECUTABLE_OUTPUT_PATH + \ GHSMULTI + \ IOS + \ LIBRARY_OUTPUT_PATH + \ LINUX + \ MINGW + \ MSVC + \ MSVC10 + \ MSVC11 + \ MSVC12 + \ MSVC14 + \ MSVC60 + \ MSVC70 + \ MSVC71 + \ MSVC80 + \ MSVC90 + \ MSVC_IDE + \ MSVC_TOOLSET_VERSION + \ MSVC_VERSION + \ MSYS + \ PROJECT_BINARY_DIR + \ PROJECT_DESCRIPTION + \ PROJECT_HOMEPAGE_URL + \ PROJECT_IS_TOP_LEVEL + \ PROJECT_NAME + \ PROJECT_SOURCE_DIR + \ PROJECT_VERSION + \ PROJECT_VERSION_MAJOR + \ PROJECT_VERSION_MINOR + \ PROJECT_VERSION_PATCH + \ PROJECT_VERSION_TWEAK + \ UNIX + \ WIN32 + \ WINCE + \ WINDOWS_PHONE + \ WINDOWS_STORE + \ XCODE + \ XCODE_VERSION syn keyword cmakeModule contained \ ExternalProject + \ FetchContent syn keyword cmakeKWExternalProject contained - \ ALGO AWS BINARY_DIR BUILD_ALWAYS BUILD_BYPRODUCTS BUILD_COMMAND BUILD_IN_SOURCE CMAKE_ARGS CMAKE_CACHE_ARGS CMAKE_CACHE_DEFAULT_ARGS CMAKE_TLS_CAINFO CMAKE_TLS_VERIFY COMMENT CONFIGURE_COMMAND CVS CVSROOT CVS_MODULE CVS_REPOSITORY CVS_TAG DEPENDEES DEPENDERS DEPENDS DOWNLOADED_FILE DOWNLOAD_COMMAND DOWNLOAD_DIR DOWNLOAD_NAME DOWNLOAD_NO_EXTRACT DOWNLOAD_NO_PROGRESS EP_BASE EP_INDEPENDENT_STEP_TARGETS EP_PREFIX EP_STEP_TARGETS EP_UPDATE_DISCONNECTED EXCLUDE_FROM_ALL FORCE GIT_CONFIG GIT_PROGRESS GIT_REMOTE_NAME GIT_REPOSITORY GIT_SHALLOW GIT_SUBMODULES GIT_TAG HG_REPOSITORY HG_TAG HTTP_HEADER HTTP_PASSWORD HTTP_USERNAME INDEPENDENT_STEP_TARGETS INSTALL_COMMAND INSTALL_DIR JOB_POOLS LIST_SEPARATOR LOG_ LOG_BUILD LOG_CONFIGURE LOG_DOWNLOAD LOG_INSTALL LOG_TEST LOG_UPDATE MAKE_EXE NAMES NOTE NO_DEPENDS PATCH_COMMAND PREFIX PROPERTY SOURCE_DIR SOURCE_SUBDIR STAMP_DIR STEP_TARGETS STRING SVN_PASSWORD SVN_REPOSITORY SVN_REVISION SVN_TRUST_CERT SVN_USERNAME TEST_AFTER_INSTALL TEST_BEFORE_INSTALL TEST_COMMAND TEST_EXCLUDE_FROM_MAIN TIMEOUT TLS_CAINFO TLS_VERIFY TMP_DIR TRUE UPDATE_COMMAND UPDATE_DISCONNECTED URL URL_HASH USES_TERMINAL_BUILD USES_TERMINAL_CONFIGURE USES_TERMINAL_DOWNLOAD USES_TERMINAL_INSTALL USES_TERMINAL_TEST USES_TERMINAL_UPDATE WORKING_DIRECTORY + \ AWS + \ BINARY_DIR + \ BUILD_ALWAYS + \ BUILD_BYPRODUCTS + \ BUILD_COMMAND + \ BUILD_IN_SOURCE + \ CHECKOUT + \ CMAKE_ARGS + \ CMAKE_CACHE_ARGS + \ CMAKE_CACHE_DEFAULT_ARGS + \ CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY + \ CMAKE_INSTALL_MODE + \ COMMENT + \ CONFIGURE_COMMAND + \ CONFIGURE_HANDLED_BY_BUILD + \ CVS + \ CVSROOT + \ CVS_MODULE + \ CVS_REPOSITORY + \ CVS_TAG + \ DEPENDEES + \ DEPENDERS + \ DEPENDS + \ DOWNLOADED_FILE + \ DOWNLOAD_COMMAND + \ DOWNLOAD_DIR + \ DOWNLOAD_EXTRACT_TIMESTAMP + \ DOWNLOAD_NAME + \ DOWNLOAD_NO_EXTRACT + \ DOWNLOAD_NO_PROGRESS + \ EP_BASE + \ EP_INDEPENDENT_STEP_TARGETS + \ EP_PREFIX + \ EP_STEP_TARGETS + \ EP_UPDATE_DISCONNECTED + \ EXCLUDE_FROM_ALL + \ FALSE + \ FORCE + \ GHS + \ GIT_CONFIG + \ GIT_PROGRESS + \ GIT_REMOTE_NAME + \ GIT_REMOTE_UPDATE_STRATEGY + \ GIT_REPOSITORY + \ GIT_SHALLOW + \ GIT_SUBMODULES + \ GIT_SUBMODULES_RECURSE + \ GIT_TAG + \ HG_REPOSITORY + \ HG_TAG + \ HTTP_HEADER + \ HTTP_PASSWORD + \ HTTP_USERNAME + \ IGNORED + \ INACTIVITY_TIMEOUT + \ INDEPENDENT_STEP_TARGETS + \ INSTALL_BYPRODUCTS + \ INSTALL_COMMAND + \ INSTALL_DIR + \ JOB_POOLS + \ LIST_SEPARATOR + \ LOG_BUILD + \ LOG_CONFIGURE + \ LOG_DIR + \ LOG_DOWNLOAD + \ LOG_INSTALL + \ LOG_MERGED_STDOUTERR + \ LOG_OUTPUT_ON_FAILURE + \ LOG_PATCH + \ LOG_TEST + \ LOG_UPDATE + \ MAKE_EXE + \ MULTI + \ NAMES + \ NETRC + \ NETRC_FILE + \ NOTE + \ NO_DEPENDS + \ OPTIONAL + \ PATCH_COMMAND + \ PREFIX + \ PROPERTY + \ REBASE + \ REBASE_CHECKOUT + \ REQUIRED + \ SOURCE_DIR + \ SOURCE_SUBDIR + \ STAMP_DIR + \ STEP_TARGETS + \ STRING + \ SVN_PASSWORD + \ SVN_REPOSITORY + \ SVN_REVISION + \ SVN_TRUST_CERT + \ SVN_USERNAME + \ TEST_AFTER_INSTALL + \ TEST_BEFORE_INSTALL + \ TEST_COMMAND + \ TEST_EXCLUDE_FROM_MAIN + \ TIMEOUT + \ TLS_CAINFO + \ TLS_VERIFY + \ TMP_DIR + \ TRUE + \ UPDATE_COMMAND + \ UPDATE_DISCONNECTED + \ URL + \ URL_HASH + \ URL_MD5 + \ USES_TERMINAL_BUILD + \ USES_TERMINAL_CONFIGURE + \ USES_TERMINAL_DOWNLOAD + \ USES_TERMINAL_INSTALL + \ USES_TERMINAL_PATCH + \ USES_TERMINAL_TEST + \ USES_TERMINAL_UPDATE + \ WORKING_DIRECTORY + +syn keyword cmakeKWFetchContent contained + \ ALWAYS + \ BINARY_DIR + \ BUILD_COMMAND + \ BYPASS_PROVIDER + \ CMAKE_PROJECT_ + \ CONFIGURE_COMMAND + \ COPY + \ CORRECT + \ DCMAKE_TOOLCHAIN_FILE + \ DESTINATION + \ DOWNLOAD_NO_EXTRACT + \ EXISTS + \ FETCHCONTENT_BASE_DIR + \ FETCHCONTENT_FULLY_DISCONNECTED + \ FETCHCONTENT_MAKEAVAILABLE_SERIAL + \ FETCHCONTENT_QUIET + \ FETCHCONTENT_SOURCE_DIR_ + \ FETCHCONTENT_TRY_FIND_PACKAGE_MODE + \ FETCHCONTENT_UPDATES_DISCONNECTED + \ FETCHCONTENT_UPDATES_DISCONNECTED_ + \ FIND_PACKAGE_ARGS + \ GIT_REPOSITORY + \ GIT_TAG + \ GLOBAL + \ GTEST_BOTH_LIBRARIES + \ GTEST_LIBRARIES + \ GTEST_MAIN_LIBRARIES + \ INSTALL_COMMAND + \ INTERNAL + \ NAME + \ NAMES + \ NEVER + \ NOTE + \ OFF + \ OPTIONAL + \ OPT_IN + \ OVERRIDE_FIND_PACKAGE + \ PACKAGE_VERSION_COMPATIBLE + \ PACKAGE_VERSION_EXACT + \ QUIET + \ SOURCE_SUBDIR + \ STREQUAL + \ SUBBUILD_DIR + \ SVN_REPOSITORY + \ SVN_REVISION + \ SYSTEM + \ TARGET + \ TEST_COMMAND + \ TRUE + \ URL + \ URL_HASH + \ VERIFY_INTERFACE_HEADER_SETS + \ WRITE + \ WRONG + \ _BINARY_DIR + \ _INCLUDE + \ _POPULATED + \ _SOURCE_DIR + +syn keyword cmakeKWadd_compile_definitions contained + \ COMPILE_DEFINITIONS + \ VAR syn keyword cmakeKWadd_compile_options contained + \ CMAKE_ + \ COMPILE_LANGUAGE \ COMPILE_OPTIONS + \ CONFIG + \ SHELL + \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ syn keyword cmakeKWadd_custom_command contained - \ APPEND ARGS BYPRODUCTS CC COMMAND COMMAND_EXPAND_LISTS COMMENT CROSSCOMPILING_EMULATOR DEPENDS DEPFILE GENERATED IMPLICIT_DEPENDS INCLUDE_DIRECTORIES JOIN MAIN_DEPENDENCY NOT OUTPUT POST_BUILD PRE_BUILD PRE_LINK SYMBOLIC TARGET_FILE TARGET_PROPERTY USES_TERMINAL VERBATIM WORKING_DIRECTORY + \ APPEND + \ ARGS + \ BNF + \ BYPRODUCTS + \ CC + \ COMMAND + \ COMMAND_EXPAND_LISTS + \ COMMENT + \ CONFIG + \ CROSSCOMPILING_EMULATOR + \ DEPENDS + \ DEPENDS_EXPLICIT_ONLY + \ DEPFILE + \ GENERATED + \ IMPLICIT_DEPENDS + \ INCLUDE_DIRECTORIES + \ JOB_POOL + \ JOB_POOLS + \ JOIN + \ MAIN_DEPENDENCY + \ MODULE + \ NOT + \ OUTPUT + \ PATH + \ POST_BUILD + \ PRE_BUILD + \ PRE_LINK + \ SYMBOLIC + \ TARGET_FILE + \ TARGET_LINKER_FILE + \ TARGET_PDB_FILE + \ TARGET_PROPERTY + \ TARGET_SONAME_FILE + \ USES_TERMINAL + \ VERBATIM + \ WORKING_DIRECTORY syn keyword cmakeKWadd_custom_target contained - \ ALL BYPRODUCTS CC COMMAND COMMAND_EXPAND_LISTS COMMENT CROSSCOMPILING_EMULATOR DEPENDS GENERATED INCLUDE_DIRECTORIES JOIN SOURCES TARGET_PROPERTY USES_TERMINAL VERBATIM WORKING_DIRECTORY + \ ALL + \ BYPRODUCTS + \ CC + \ COMMAND + \ COMMAND_EXPAND_LISTS + \ COMMENT + \ CROSSCOMPILING_EMULATOR + \ DEPENDS + \ GENERATED + \ INCLUDE_DIRECTORIES + \ JOB_POOL + \ JOB_POOLS + \ JOIN + \ PATH + \ SOURCES + \ TARGET_FILE + \ TARGET_LINKER_FILE + \ TARGET_PDB_FILE + \ TARGET_PROPERTY + \ TARGET_SONAME_FILE + \ USES_TERMINAL + \ VERBATIM + \ WORKING_DIRECTORY syn keyword cmakeKWadd_definitions contained \ COMPILE_DEFINITIONS syn keyword cmakeKWadd_dependencies contained - \ DEPENDS OBJECT_DEPENDS + \ DEPENDS + \ OBJECT_DEPENDS syn keyword cmakeKWadd_executable contained - \ ALIAS CONFIG EXCLUDE_FROM_ALL GLOBAL HEADER_FILE_ONLY IMPORTED IMPORTED_ IMPORTED_LOCATION IMPORTED_LOCATION_ MACOSX_BUNDLE OUTPUT_NAME RUNTIME_OUTPUT_DIRECTORY TARGET + \ ALIAS + \ ALIAS_GLOBAL + \ CONFIG + \ EXCLUDE_FROM_ALL + \ GLOBAL + \ HEADER_FILE_ONLY + \ IMPORTED + \ IMPORTED_ + \ IMPORTED_LOCATION + \ IMPORTED_LOCATION_ + \ MACOSX_BUNDLE + \ OUTPUT_NAME + \ RUNTIME_OUTPUT_DIRECTORY + \ TARGET syn keyword cmakeKWadd_library contained - \ ALIAS ARCHIVE_OUTPUT_DIRECTORY CLI CONFIG DLL EXCLUDE_FROM_ALL FRAMEWORK GLOBAL HEADER_FILE_ONLY IMPORTED IMPORTED_ IMPORTED_LOCATION IMPORTED_LOCATION_ INTERFACE_ LIBRARY_OUTPUT_DIRECTORY MODULE OBJECT ON OUTPUT_NAME POSITION_INDEPENDENT_CODE POST_BUILD PRE_BUILD PRE_LINK RUNTIME_OUTPUT_DIRECTORY SHARED STATIC TARGET_OBJECTS UNKNOWN + \ ALIAS + \ ALIAS_GLOBAL + \ ARCHIVE_OUTPUT_DIRECTORY + \ CLI + \ CONFIG + \ DLL + \ EXCLUDE_FROM_ALL + \ FRAMEWORK + \ GLOBAL + \ HEADER_FILE_ONLY + \ HEADER_SETS + \ IMPORTED + \ IMPORTED_ + \ IMPORTED_IMPLIB + \ IMPORTED_IMPLIB_ + \ IMPORTED_LOCATION + \ IMPORTED_LOCATION_ + \ IMPORTED_NO_SONAME + \ IMPORTED_OBJECTS + \ IMPORTED_OBJECTS_ + \ IMPORTED_SONAME + \ INTERFACE + \ INTERFACE_ + \ INTERFACE_SOURCES + \ LC_ID_DYLIB + \ LIBRARY_OUTPUT_DIRECTORY + \ MODULE + \ OBJECT + \ ON + \ OUTPUT_NAME + \ POSITION_INDEPENDENT_CODE + \ POST_BUILD + \ PRE_BUILD + \ PRE_LINK + \ PRIVATE_HEADER + \ PUBLIC_HEADER + \ RUNTIME_OUTPUT_DIRECTORY + \ SHARED + \ SONAME + \ SOURCES + \ STATIC + \ TARGETS + \ TARGET_OBJECTS + \ TARGET_RUNTIME_DLLS + \ UNKNOWN + +syn keyword cmakeKWadd_link_options contained + \ CMAKE_ + \ CONFIG + \ CUDA_RESOLVE_DEVICE_SYMBOLS + \ CUDA_SEPARABLE_COMPILATION + \ DEVICE_LINK + \ GCC + \ HOST_LINK + \ LANG + \ LINKER + \ LINK_OPTIONS + \ SHELL + \ STATIC_LIBRARY_OPTIONS + \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ + \ _LINKER_WRAPPER_FLAG + \ _LINKER_WRAPPER_FLAG_SEP syn keyword cmakeKWadd_subdirectory contained \ EXCLUDE_FROM_ALL + \ SYSTEM syn keyword cmakeKWadd_test contained - \ BUILD_TESTING COMMAND CONFIGURATIONS FAIL_REGULAR_EXPRESSION NAME PASS_REGULAR_EXPRESSION TARGET_FILE WILL_FAIL WORKING_DIRECTORY + \ BUILD_TESTING + \ COMMAND + \ COMMAND_EXPAND_LISTS + \ CONFIGURATIONS + \ FAIL_REGULAR_EXPRESSION + \ NAME + \ OFF + \ PASS_REGULAR_EXPRESSION + \ SKIP_REGULAR_EXPRESSION + \ TARGET_FILE + \ WILL_FAIL + \ WILL_FALL + \ WORKING_DIRECTORY + +syn keyword cmakeKWblock contained + \ PARENT_SCOPE + \ POLICIES + \ PROPAGATE + \ PUSH + \ SCOPE_FOR + \ TRUE + \ VARIABLES syn keyword cmakeKWbuild_command contained - \ CONFIGURATION TARGET + \ CONFIGURATION + \ PARALLEL_LEVEL + \ TARGET -syn keyword cmakeKWbuild_name contained - \ CMAKE_CXX_COMPILER +syn keyword cmakeKWcmake_file_api contained + \ API + \ API_VERSION + \ BUILD_DIR + \ CMAKEFILES + \ CODEMODEL + \ COMMAND + \ CONFIG + \ QUERY + \ TOOLCHAINS syn keyword cmakeKWcmake_host_system_information contained - \ AVAILABLE_PHYSICAL_MEMORY AVAILABLE_VIRTUAL_MEMORY FQDN HAS_FPU HAS_MMX HAS_MMX_PLUS HAS_SERIAL_NUMBER HAS_SSE HAS_SSE_FP HAS_SSE_MMX HOSTNAME ID NUMBER_OF_LOGICAL_CORES NUMBER_OF_PHYSICAL_CORES OS_NAME OS_PLATFORM OS_RELEASE OS_VERSION PROCESSOR_DESCRIPTION PROCESSOR_NAME PROCESSOR_SERIAL_NUMBER QUERY RESULT TOTAL_PHYSICAL_MEMORY TOTAL_VIRTUAL_MEMORY + \ APPEND + \ AVAILABLE_PHYSICAL_MEMORY + \ AVAILABLE_VIRTUAL_MEMORY + \ BOTH + \ CMAKE_GET_OS_RELEASE_FALLBACK_CONTENT + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_ + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_ID + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_NAME + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_PRETTY_NAME + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_VERSION + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_VERSION_ID + \ CMAKE_GET_OS_RELEASE_FALLBACK_SCRIPTS + \ DISTRIB_INFO + \ DISTRIB_PRETTY_NAME + \ DISTRO + \ DISTRO_BUG_REPORT_URL + \ DISTRO_HOME_URL + \ DISTRO_ID + \ DISTRO_ID_LIKE + \ DISTRO_NAME + \ DISTRO_PRETTY_NAME + \ DISTRO_PRIVACY_POLICY_URL + \ DISTRO_SUPPORT_URL + \ DISTRO_UBUNTU_CODENAME + \ DISTRO_VERSION + \ DISTRO_VERSION_CODENAME + \ DISTRO_VERSION_ID + \ ERROR_VARIABLE + \ EXISTS + \ FQDN + \ HAS_FPU + \ HAS_MMX + \ HAS_MMX_PLUS + \ HAS_SERIAL_NUMBER + \ HAS_SSE + \ HAS_SSE_FP + \ HAS_SSE_MMX + \ HKCC + \ HKCR + \ HKCU + \ HKEY_CLASSES_ROOT + \ HKEY_CURRENT_CONFIG + \ HKEY_CURRENT_USER + \ HKEY_LOCAL_MACHINE + \ HKEY_USERS + \ HKLM + \ HKU + \ HOSTNAME + \ ID + \ LIMIT_COUNT + \ LISTS + \ LTS + \ MATCHES + \ NNN + \ NOT + \ NUMBER_OF_LOGICAL_CORES + \ NUMBER_OF_PHYSICAL_CORES + \ OS_NAME + \ OS_PLATFORM + \ OS_RELEASE + \ OS_VERSION + \ PRETTY_NAME + \ PROCESSOR_DESCRIPTION + \ PROCESSOR_NAME + \ PROCESSOR_SERIAL_NUMBER + \ QUERY + \ REG_DWORD + \ REG_EXPAND_SZ + \ REG_MULTI_SZ + \ REG_QWORD + \ REG_SZ + \ RESULT + \ SEPARATOR + \ SOFTWARE + \ STATUS + \ STRINGS + \ SUBKEYS + \ TARGET + \ TOTAL_PHYSICAL_MEMORY + \ TOTAL_VIRTUAL_MEMORY + \ VALUE_NAMES + \ VAR + \ VIEW + \ WINDOWS_REGISTRY + +syn keyword cmakeKWcmake_language contained + \ AND + \ ANY + \ APPEND + \ ARGN + \ BINARY_DIR + \ BYPASS_PROVIDER + \ CALL + \ CANCEL_CALL + \ CODE + \ COMMAND + \ COMMAND_ERROR_IS_FATAL + \ DCMAKE_PROJECT_TOP_LEVEL_INCLUDES + \ DEFER + \ DIRECTORY + \ EVAL + \ FALSE + \ FETCHCONTENT_MAKEAVAILABE_SERIAL + \ FETCHCONTENT_MAKEAVAILABLE_SERIAL + \ FETCHCONTENT_SOURCE_DIR_ + \ FETCHCONTENT_TRY_FIND_PACKAGE_MODE + \ FIND_PACKAGE + \ FIND_PACKAGE_ARGS + \ GET_CALL_IDS + \ GET_MESSAGE_LOG_LEVEL + \ GIT_REPOSITORY + \ GIT_SUBMODULES + \ GIT_TAG + \ ID_VAR + \ MATCHES + \ MYCOMP_PROVIDER_INSTALL_DIR + \ NEVER + \ NOT + \ OVERRIDE_FIND_PACKAGE + \ PATH + \ POP_BACK + \ QUIET + \ SET_DEPENDENCY_PROVIDER + \ SOURCE_DIR + \ STATUS + \ STREQUAL + \ SUPPORTED_METHODS + \ TRUE + \ VERSION + \ WRITE + \ _FOUND + \ _PATH syn keyword cmakeKWcmake_minimum_required contained - \ FATAL_ERROR VERSION + \ FATAL_ERROR + \ VERSION syn keyword cmakeKWcmake_parse_arguments contained - \ ARGN CONFIGURATIONS DESTINATION FALSE FAST FILES MY_INSTALL MY_INSTALL_CONFIGURATIONS MY_INSTALL_DESTINATION MY_INSTALL_FAST MY_INSTALL_OPTIONAL MY_INSTALL_RENAME MY_INSTALL_TARGETS MY_INSTALL_UNPARSED_ARGUMENTS OPTIONAL PARSE_ARGV RENAME TARGETS TRUE _UNPARSED_ARGUMENTS + \ ARGN + \ CONFIGURATIONS + \ DESTINATION + \ FALSE + \ FAST + \ FILES + \ MY_INSTALL + \ MY_INSTALL_CONFIGURATIONS + \ MY_INSTALL_DESTINATION + \ MY_INSTALL_FAST + \ MY_INSTALL_KEYWORDS_MISSING_VALUES + \ MY_INSTALL_OPTIONAL + \ MY_INSTALL_RENAME + \ MY_INSTALL_TARGETS + \ MY_INSTALL_UNPARSED_ARGUMENTS + \ OPTIONAL + \ PARSE_ARGV + \ RENAME + \ TARGETS + \ TRUE + \ UNDEFINED + \ _KEYWORDS_MISSING_VALUES + \ _UNPARSED_ARGUMENTS + +syn keyword cmakeKWcmake_path contained + \ ABSOLUTE_PATH + \ AND + \ APPEND + \ APPEND_STRING + \ BASE_DIRECTORY + \ COMPARE + \ CONVERT + \ EQUAL + \ EXTENSION + \ EXTENSION_DEF + \ FALSE + \ FILENAME + \ FILENAME_DEF + \ GET + \ GET_EXTENSION + \ GET_FILENAME + \ GET_PARENT_PATH + \ GET_RELATIVE_PART + \ GET_ROOT_DIRECTORY + \ GET_ROOT_NAME + \ GET_ROOT_PATH + \ GET_STEM + \ HASH + \ HAS_EXTENSION + \ HAS_FILENAME + \ HAS_PARENT_PATH + \ HAS_RELATIVE_PART + \ HAS_ROOT_DIRECTORY + \ HAS_ROOT_NAME + \ HAS_ROOT_PATH + \ HAS_STEM + \ IS_ABSOLUTE + \ IS_PREFIX + \ IS_RELATIVE + \ LAST_ONLY + \ MATCHES + \ NATIVE_PATH + \ NORMALIZE + \ NORMAL_PATH + \ NOT_EQUAL + \ OP + \ OUTPUT_VARIABLE + \ PARENT_PATH + \ REAL_PATH + \ RELATIVE_PART + \ RELATIVE_PATH + \ REMOVE_EXTENSION + \ REMOVE_FILENAME + \ REPLACE_EXTENSION + \ REPLACE_FILENAME + \ ROOT_DIRECTORY + \ ROOT_NAME + \ ROOT_PATH + \ SET + \ STEM + \ STREQUAL + \ TO_CMAKE_PATH_LIST + \ TO_NATIVE_PATH_LIST + \ TRUE + \ XOR syn keyword cmakeKWcmake_policy contained - \ CMAKE_POLICY_DEFAULT_CMP CMP GET NNNN NO_POLICY_SCOPE OLD POP PUSH SET VERSION + \ CMAKE_POLICY_DEFAULT_CMP + \ CMP + \ GET + \ NNNN + \ NO_POLICY_SCOPE + \ OLD + \ POLICIES + \ POP + \ PUSH + \ SCOPE_FOR + \ SET + \ VERSION syn keyword cmakeKWconfigure_file contained - \ COPYONLY CRLF DOS ESCAPE_QUOTES FOO_ENABLE FOO_STRING LF NEWLINE_STYLE VAR + \ COPYONLY + \ CRLF + \ DOS + \ ESCAPE_QUOTES + \ FILE_PERMISSIONS + \ FOO_ENABLE + \ FOO_STRING + \ GENERATE + \ INTERFACE + \ LF + \ NEWLINE_STYLE + \ NO_SOURCE_PERMISSIONS + \ PRIVATE + \ PUBLIC + \ SYSTEM + \ USE_SOURCE_PERMISSIONS + \ VAR syn keyword cmakeKWcreate_test_sourcelist contained - \ CMAKE_TESTDRIVER_AFTER_TESTMAIN CMAKE_TESTDRIVER_BEFORE_TESTMAIN EXTRA_INCLUDE FUNCTION + \ CMAKE_TESTDRIVER_AFTER_TESTMAIN + \ CMAKE_TESTDRIVER_BEFORE_TESTMAIN + \ EXTRA_INCLUDE + \ FUNCTION syn keyword cmakeKWctest_build contained - \ ALL_BUILD APPEND BUILD CAPTURE_CMAKE_ERROR CONFIGURATION CTEST_BUILD_CONFIGURATION CTEST_BUILD_FLAGS CTEST_BUILD_TARGET CTEST_PROJECT_NAME FLAGS NUMBER_ERRORS NUMBER_WARNINGS QUIET RETURN_VALUE TARGET + \ ALL_BUILD + \ APPEND + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ CMAKE_BUILD_PARALLEL_LEVEL + \ CONFIGURATION + \ CTEST_BUILD_CONFIGURATION + \ CTEST_BUILD_FLAGS + \ CTEST_BUILD_TARGET + \ FLAGS + \ NUMBER_ERRORS + \ NUMBER_WARNINGS + \ PARALLEL_LEVEL + \ QUIET + \ RETURN_VALUE + \ TARGET syn keyword cmakeKWctest_configure contained - \ APPEND BUILD CAPTURE_CMAKE_ERROR OPTIONS QUIET RETURN_VALUE SOURCE + \ APPEND + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ OPTIONS + \ QUIET + \ RETURN_VALUE + \ SOURCE syn keyword cmakeKWctest_coverage contained - \ APPEND BUILD CAPTURE_CMAKE_ERROR LABELS QUIET RETURN_VALUE + \ APPEND + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ LABELS + \ QUIET + \ RETURN_VALUE syn keyword cmakeKWctest_memcheck contained - \ APPEND BUILD DEFECT_COUNT EXCLUDE EXCLUDE_FIXTURE EXCLUDE_FIXTURE_CLEANUP EXCLUDE_FIXTURE_SETUP EXCLUDE_LABEL INCLUDE INCLUDE_LABEL OFF ON PARALLEL_LEVEL QUIET RETURN_VALUE SCHEDULE_RANDOM START STOP_TIME STRIDE TEST_LOAD + \ APPEND + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ DEFECT_COUNT + \ EXCLUDE + \ EXCLUDE_FIXTURE + \ EXCLUDE_FIXTURE_CLEANUP + \ EXCLUDE_FIXTURE_SETUP + \ EXCLUDE_LABEL + \ INCLUDE + \ INCLUDE_LABEL + \ OFF + \ ON + \ OUTPUT_JUNIT + \ PARALLEL_LEVEL + \ QUIET + \ REPEAT + \ RESOURCE_SPEC_FILE + \ RETURN_VALUE + \ SCHEDULE_RANDOM + \ START + \ STOP_ON_FAILURE + \ STOP_TIME + \ STRIDE + \ TEST_LOAD syn keyword cmakeKWctest_run_script contained - \ NEW_PROCESS RETURN_VALUE + \ NEW_PROCESS + \ RETURN_VALUE syn keyword cmakeKWctest_start contained - \ APPEND QUIET TAG TRACK + \ APPEND + \ GROUP + \ QUIET + \ TAG + \ TRACK syn keyword cmakeKWctest_submit contained - \ API CDASH_UPLOAD CDASH_UPLOAD_TYPE CTEST_EXTRA_SUBMIT_FILES CTEST_NOTES_FILES FILES HTTPHEADER PARTS QUIET RETRY_COUNT RETRY_DELAY RETURN_VALUE + \ API + \ BUILD_ID + \ CAPTURE_CMAKE_ERROR + \ CDASH_UPLOAD + \ CDASH_UPLOAD_TYPE + \ CTEST_EXTRA_SUBMIT_FILES + \ CTEST_NOTES_FILES + \ FILES + \ HTTPHEADER + \ PARTS + \ QUIET + \ RETRY_COUNT + \ RETRY_DELAY + \ RETURN_VALUE + \ SUBMIT_URL syn keyword cmakeKWctest_test contained - \ APPEND BUILD CAPTURE_CMAKE_ERROR CPU EXCLUDE EXCLUDE_FIXTURE EXCLUDE_FIXTURE_CLEANUP EXCLUDE_FIXTURE_SETUP EXCLUDE_LABEL INCLUDE INCLUDE_LABEL OFF ON PARALLEL_LEVEL QUIET RETURN_VALUE SCHEDULE_RANDOM START STOP_TIME STRIDE TEST_LOAD + \ AFTER_TIMEOUT + \ APPEND + \ ATTACHED_FILES + \ ATTACHED_FILES_ON_FAIL + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ CPU + \ EXCLUDE + \ EXCLUDE_FIXTURE + \ EXCLUDE_FIXTURE_CLEANUP + \ EXCLUDE_FIXTURE_SETUP + \ EXCLUDE_LABEL + \ INCLUDE + \ INCLUDE_LABEL + \ LABELS + \ OFF + \ ON + \ OUTPUT_JUNIT + \ PARALLEL_LEVEL + \ QUIET + \ REPEAT + \ RESOURCE_SPEC_FILE + \ RETURN_VALUE + \ SCHEDULE_RANDOM + \ START + \ STOP_ON_FAILURE + \ STOP_TIME + \ STRIDE + \ TEST_LOAD + \ UNTIL_FAIL + \ UNTIL_PASS + \ URL + \ XML syn keyword cmakeKWctest_update contained - \ QUIET RETURN_VALUE SOURCE + \ CAPTURE_CMAKE_ERROR + \ QUIET + \ RETURN_VALUE + \ SOURCE syn keyword cmakeKWctest_upload contained - \ CAPTURE_CMAKE_ERROR FILES QUIET + \ CAPTURE_CMAKE_ERROR + \ FILES + \ QUIET syn keyword cmakeKWdefine_property contained - \ BRIEF_DOCS CACHED_VARIABLE DIRECTORY FULL_DOCS GLOBAL INHERITED PROPERTY SOURCE TARGET TEST VARIABLE + \ APPEND + \ APPEND_STRING + \ BRIEF_DOCS + \ CACHED_VARIABLE + \ CMAKE_ + \ DIRECTORY + \ FULL_DOCS + \ GLOBAL + \ INHERITED + \ INITIALIZE_FROM_VARIABLE + \ PROPERTY + \ SOURCE + \ TARGET + \ TEST + \ VARIABLE + \ _CMAKE_ + +syn keyword cmakeKWdoxygen_add_docs contained + \ ALL + \ COMMENT + \ USE_STAMP_FILE + \ WORKING_DIRECTORY syn keyword cmakeKWenable_language contained + \ ASM + \ ASM_MARMASM + \ ASM_MASM + \ ASM_NASM + \ ATT + \ CUDA + \ HIP + \ ISPC + \ OBJC + \ OBJCXX \ OPTIONAL +syn keyword cmakeKWenable_testing contained + \ BUILD_TESTING + syn keyword cmakeKWexec_program contained - \ ARGS OUTPUT_VARIABLE RETURN_VALUE + \ ARGS + \ OUTPUT_VARIABLE + \ RETURN_VALUE syn keyword cmakeKWexecute_process contained - \ ANSI AUTO COMMAND ENCODING ERROR_FILE ERROR_QUIET ERROR_STRIP_TRAILING_WHITESPACE ERROR_VARIABLE INPUT_FILE NONE OEM OUTPUT_FILE OUTPUT_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE RESULTS_VARIABLE RESULT_VARIABLE TIMEOUT UTF VERBATIM WORKING_DIRECTORY + \ ANSI + \ ANY + \ AUTO + \ COMMAND + \ COMMAND_ECHO + \ COMMAND_ERROR_IS_FATAL + \ ECHO_ERROR_VARIABLE + \ ECHO_OUTPUT_VARIABLE + \ ENCODING + \ ERROR_FILE + \ ERROR_QUIET + \ ERROR_STRIP_TRAILING_WHITESPACE + \ ERROR_VARIABLE + \ INPUT_FILE + \ LAST + \ NONE + \ OEM + \ OUTPUT_FILE + \ OUTPUT_QUIET + \ OUTPUT_STRIP_TRAILING_WHITESPACE + \ OUTPUT_VARIABLE + \ POSIX + \ RESULTS_VARIABLE + \ RESULT_VARIABLE + \ RFC + \ STDERR + \ STDOUT + \ TIMEOUT + \ UTF + \ WORKING_DIRECTORY syn keyword cmakeKWexport contained - \ ANDROID_MK APPEND CONFIG EXPORT EXPORT_LINK_INTERFACE_LIBRARIES FILE IMPORTED IMPORTED_ NAMESPACE NDK OLD PACKAGE TARGETS + \ ANDROID_MK + \ APPEND + \ CONFIG + \ CXX_MODULES_DIRECTORY + \ EXPORT + \ EXPORT_LINK_INTERFACE_LIBRARIES + \ FILE + \ IMPORTED_ + \ NAMESPACE + \ NDK + \ OLD + \ PACKAGE + \ TARGETS syn keyword cmakeKWexport_library_dependencies contained - \ APPEND EXPORT INCLUDE LINK_INTERFACE_LIBRARIES SET + \ APPEND + \ EXPORT + \ INCLUDE + \ LINK_INTERFACE_LIBRARIES + \ SET syn keyword cmakeKWfile contained - \ ALGO APPEND ASCII CMAKE_TLS_CAINFO CMAKE_TLS_VERIFY CONDITION CONFIG CONTENT COPY CR DESTINATION DIRECTORY_PERMISSIONS DOWNLOAD ENCODING EXCLUDE EXPECTED_HASH FILES_MATCHING FILE_PERMISSIONS FOLLOW_SYMLINKS FUNCTION GENERATE GLOB GLOB_RECURSE GUARD HASH HEX HTTPHEADER INACTIVITY_TIMEOUT INSTALL LENGTH_MAXIMUM LENGTH_MINIMUM LF LIMIT LIMIT_COUNT LIMIT_INPUT LIMIT_OUTPUT LIST_DIRECTORIES LOCK LOG MAKE_DIRECTORY NEWLINE_CONSUME NO_HEX_CONVERSION NO_SOURCE_PERMISSIONS OFFSET OLD PATTERN PROCESS READ REGEX RELATIVE RELATIVE_PATH RELEASE REMOVE REMOVE_RECURSE RENAME RESULT_VARIABLE SHOW_PROGRESS SSL STATUS STRINGS TIMESTAMP TLS_CAINFO TLS_VERIFY TO_CMAKE_PATH TO_NATIVE_PATH UPLOAD USERPWD USE_SOURCE_PERMISSIONS UTC UTF WRITE + \ APPEND + \ ARCHIVE_CREATE + \ ARCHIVE_EXTRACT + \ ASCII + \ BASE_DIRECTORY + \ BUNDLE_EXECUTABLE + \ CHMOD + \ CHMOD_RECURSE + \ CMAKE_GET_RUNTIME_DEPENDENCIES_COMMAND + \ CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM + \ CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL + \ CMAKE_INSTALL_MODE + \ CMAKE_OBJDUMP + \ CODE + \ COMPILE_FEATURES + \ COMPRESSION + \ COMPRESSION_LEVEL + \ CONDITION + \ CONFIGURE + \ CONFIGURE_DEPENDS + \ CONFLICTING_DEPENDENCIES_PREFIX + \ CONTENT + \ CONVERT + \ COPYONLY + \ COPY_FILE + \ COPY_ON_ERROR + \ CREATE_LINK + \ CRLF + \ DESTINATION + \ DIRECTORIES + \ DIRECTORY_PERMISSIONS + \ DLL + \ DOS + \ DOWNLOAD + \ ENCODING + \ ESCAPE_QUOTES + \ EXECUTABLES + \ EXPAND_TILDE + \ EXPECTED_HASH + \ FILES_MATCHING + \ FILE_PERMISSIONS + \ FOLLOW_SYMLINKS + \ FOLLOW_SYMLINK_CHAIN + \ FORMAT + \ FUNCTION + \ GENERATE + \ GET_RUNTIME_DEPENDENCIES + \ GLOB + \ GLOB_RECURSE + \ GROUP_EXECUTE + \ GROUP_READ + \ GROUP_WRITE + \ GUARD + \ HASH + \ HEX + \ HOME + \ HTTPHEADER + \ IGNORED + \ INACTIVITY_TIMEOUT + \ INPUT + \ INPUT_MAY_BE_RECENT + \ INSTALL + \ IS_ABSOLUTE + \ LENGTH_MAXIMUM + \ LENGTH_MINIMUM + \ LF + \ LIBRARIES + \ LIMIT + \ LIMIT_COUNT + \ LIMIT_INPUT + \ LIMIT_OUTPUT + \ LIST_DIRECTORIES + \ LIST_ONLY + \ LOCK + \ LOG + \ MAKE_DIRECTORY + \ MODULES + \ MTIME + \ MYLIBRARY + \ NETRC + \ NETRC_FILE + \ NEWLINE_CONSUME + \ NEWLINE_STYLE + \ NOT + \ NO_HEX_CONVERSION + \ NO_REPLACE + \ NO_SOURCE_PERMISSIONS + \ OFFSET + \ ONLY + \ ONLY_IF_DIFFERENT + \ OPTIONAL + \ OUTPUT + \ OWNER_EXECUTE + \ OWNER_READ + \ OWNER_WRITE + \ PATHS + \ PATTERN + \ PATTERNS + \ PERMISSIONS + \ POST_EXCLUDE_FILES + \ POST_EXCLUDE_REGEXES + \ POST_INCLUDE_FILES + \ POST_INCLUDE_REGEXES + \ PRE_EXCLUDE_REGEXES + \ PRE_INCLUDE_REGEXES + \ PROCESS + \ RANGE_END + \ RANGE_START + \ READ + \ READ_SYMLINK + \ REAL_PATH + \ REGEX + \ RELATIVE + \ RELATIVE_PATH + \ RELEASE + \ REMOVE + \ REMOVE_RECURSE + \ RENAME + \ REQUIRED + \ RESOLVED_DEPENDENCIES_VAR + \ RESULT + \ RESULT_VARIABLE + \ RPATH + \ RUNPATH + \ RUNTIME_DEPENDENCY_SET + \ SCRIPT + \ SETGID + \ SETUID + \ SHARED + \ SHOW_PROGRESS + \ SIZE + \ SSL + \ STATIC + \ STATUS + \ STRINGS + \ SYMBOLIC + \ TARGET + \ TARGET_PROPERTY + \ TIMESTAMP + \ TLS_CAINFO + \ TLS_VERIFY + \ TOUCH + \ TOUCH_NOCREATE + \ TO_CMAKE_PATH + \ TO_CMAKE_PATH_LIST + \ TO_NATIVE_PATH + \ TO_NATIVE_PATH_LIST + \ UNRESOLVED_DEPENDENCIES_VAR + \ UPLOAD + \ URL + \ USERPROFILE + \ USERPWD + \ USE_SOURCE_PERMISSIONS + \ UTC + \ UTF + \ VERBOSE + \ WORLD_EXECUTE + \ WORLD_READ + \ WORLD_WRITE + \ WRITE + \ XZ + \ _FILENAMES syn keyword cmakeKWfind_file contained - \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS INCLUDE NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR + \ BOTH + \ CATEGORY + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ DOC + \ DVAR + \ FALSE + \ FIND_XXX_REGISTRY_VIEW + \ HINTS + \ HOST + \ INCLUDE + \ MATCHES + \ NAMES + \ NOT + \ NO_CACHE + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_PACKAGE_ROOT_PATH + \ NO_SYSTEM_ENVIRONMENT_PATH + \ ONLY_CMAKE_FIND_ROOT_PATH + \ PACKAGENAME + \ PARENT_SCOPE + \ PATHS + \ PATH_SUFFIXES + \ REGISTRY_VIEW + \ REQUIRED + \ TARGET + \ VALIDATOR + \ VAR syn keyword cmakeKWfind_library contained - \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS LIB NAMES NAMES_PER_DIR NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR + \ BOTH + \ CATEGORY + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ DOC + \ DVAR + \ FALSE + \ FIND_XXX_REGISTRY_VIEW + \ HINTS + \ HOST + \ LIB + \ MATCHES + \ NAMES + \ NAMES_PER_DIR + \ NOT + \ NO_CACHE + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_PACKAGE_ROOT_PATH + \ NO_SYSTEM_ENVIRONMENT_PATH + \ ONLY_CMAKE_FIND_ROOT_PATH + \ PACKAGENAME + \ PARENT_SCOPE + \ PATHS + \ PATH_SUFFIXES + \ REGISTRY_VIEW + \ REQUIRED + \ TARGET + \ VALIDATOR + \ VAR syn keyword cmakeKWfind_package contained - \ CMAKE_DISABLE_FIND_PACKAGE_ CMAKE_FIND_ROOT_PATH_BOTH COMPONENTS CONFIG CONFIGS DEC DVAR EXACT HINTS MODULE NAMES NATURAL NO_CMAKE_BUILDS_PATH NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PACKAGE_REGISTRY NO_CMAKE_PATH NO_CMAKE_SYSTEM_PACKAGE_REGISTRY NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_MODULE NO_POLICY_SCOPE NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OPTIONAL_COMPONENTS OS PACKAGE_FIND_NAME PACKAGE_FIND_VERSION PACKAGE_FIND_VERSION_COUNT PACKAGE_FIND_VERSION_MAJOR PACKAGE_FIND_VERSION_MINOR PACKAGE_FIND_VERSION_PATCH PACKAGE_FIND_VERSION_TWEAK PACKAGE_VERSION PACKAGE_VERSION_COMPATIBLE PACKAGE_VERSION_EXACT PACKAGE_VERSION_UNSUITABLE PATHS PATH_SUFFIXES QUIET REQUIRED SET TRUE _CONFIG _CONSIDERED_CONFIGS _CONSIDERED_VERSIONS _DIR _FIND_COMPONENTS _FIND_QUIETLY _FIND_REQUIRED _FIND_REQUIRED_ _FIND_VERSION_EXACT _FOUND + \ ABI + \ BOTH + \ BUNDLE + \ BYPASS_PROVIDER + \ CATEGORY + \ CMAKE_DISABLE_FIND_PACKAGE_ + \ CMAKE_REQUIRE_FIND_PACKAGE_ + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ CMAKE_REQUIRE_FIND_PACKAGE_ + \ COMPONENTS + \ CONFIG + \ CONFIGS + \ DEC + \ DVAR + \ EXACT + \ EXCLUDE + \ FALSE + \ FIND_PACKAGE_VERSION_FORMAT + \ FRAMEWORK + \ GLOBAL + \ HINTS + \ HOST + \ INCLUDE + \ MODULE + \ NAMES + \ NATURAL + \ NO_CMAKE_BUILDS_PATH + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PACKAGE_REGISTRY + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PACKAGE_REGISTRY + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_MODULE + \ NO_PACKAGE_ROOT_PATH + \ NO_POLICY_SCOPE + \ NO_SYSTEM_ENVIRONMENT_PATH + \ OLD + \ ONLY_CMAKE_FIND_ROOT_PATH + \ OPTIONAL_COMPONENTS + \ PACKAGENAME + \ PACKAGE_FIND_NAME + \ PACKAGE_FIND_VERSION + \ PACKAGE_FIND_VERSION_COMPLETE + \ PACKAGE_FIND_VERSION_COUNT + \ PACKAGE_FIND_VERSION_MAJOR + \ PACKAGE_FIND_VERSION_MAX + \ PACKAGE_FIND_VERSION_MAX_COUNT + \ PACKAGE_FIND_VERSION_MAX_MAJOR + \ PACKAGE_FIND_VERSION_MAX_MINOR + \ PACKAGE_FIND_VERSION_MAX_PATCH + \ PACKAGE_FIND_VERSION_MAX_TWEAK + \ PACKAGE_FIND_VERSION_MINOR + \ PACKAGE_FIND_VERSION_MIN_COUNT + \ PACKAGE_FIND_VERSION_MIN_MAJOR + \ PACKAGE_FIND_VERSION_MIN_MINOR + \ PACKAGE_FIND_VERSION_MIN_PATCH + \ PACKAGE_FIND_VERSION_MIN_TWEAK + \ PACKAGE_FIND_VERSION_PATCH + \ PACKAGE_FIND_VERSION_RANGE + \ PACKAGE_FIND_VERSION_RANGE_MAX + \ PACKAGE_FIND_VERSION_RANGE_MIN + \ PACKAGE_FIND_VERSION_TWEAK + \ PACKAGE_VERSION_COMPATIBLE + \ PACKAGE_VERSION_EXACT + \ PACKAGE_VERSION_UNSUITABLE + \ PATHS + \ PATH_SUFFIXES + \ QUIET + \ REGISTRY_VIEW + \ REQUIRED + \ SET + \ TARGET + \ TRUE + \ VALUE + \ _CONFIG + \ _CONSIDERED_CONFIGS + \ _CONSIDERED_VERSIONS + \ _DIR + \ _FIND_COMPONENTS + \ _FIND_QUIETLY + \ _FIND_REGISTRY_VIEW + \ _FIND_REQUIRED + \ _FIND_REQUIRED_ + \ _FIND_VERSION_EXACT + \ _FOUND syn keyword cmakeKWfind_path contained - \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS INCLUDE NAMES NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR + \ BOTH + \ CATEGORY + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ DOC + \ DVAR + \ FALSE + \ FIND_XXX_REGISTRY_VIEW + \ HINTS + \ HOST + \ INCLUDE + \ MATCHES + \ NAMES + \ NOT + \ NO_CACHE + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_PACKAGE_ROOT_PATH + \ NO_SYSTEM_ENVIRONMENT_PATH + \ ONLY_CMAKE_FIND_ROOT_PATH + \ PACKAGENAME + \ PARENT_SCOPE + \ PATHS + \ PATH_SUFFIXES + \ REGISTRY_VIEW + \ REQUIRED + \ TARGET + \ VALIDATOR + \ VAR syn keyword cmakeKWfind_program contained - \ CMAKE_FIND_ROOT_PATH_BOTH DOC DVAR HINTS NAMES NAMES_PER_DIR NO_CMAKE_ENVIRONMENT_PATH NO_CMAKE_FIND_ROOT_PATH NO_CMAKE_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH NO_SYSTEM_ENVIRONMENT_PATH ONLY_CMAKE_FIND_ROOT_PATH OS PATHS PATH_SUFFIXES VAR + \ BOTH + \ CATEGORY + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ DOC + \ DVAR + \ FALSE + \ FIND_XXX_REGISTRY_VIEW + \ HINTS + \ HOST + \ MATCHES + \ NAMES + \ NAMES_PER_DIR + \ NOT + \ NO_CACHE + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_PACKAGE_ROOT_PATH + \ NO_SYSTEM_ENVIRONMENT_PATH + \ ONLY_CMAKE_FIND_ROOT_PATH + \ PACKAGENAME + \ PARENT_SCOPE + \ PATHS + \ PATH_SUFFIXES + \ REGISTRY_VIEW + \ REQUIRED + \ TARGET + \ VALIDATOR + \ VAR syn keyword cmakeKWfltk_wrap_ui contained \ FLTK syn keyword cmakeKWforeach contained - \ ARGS IN ITEMS LISTS RANGE + \ APPEND + \ IN + \ ITEMS + \ LISTS + \ RANGE + \ STATUS + \ ZIP_LISTS syn keyword cmakeKWfunction contained - \ ARGC ARGN ARGS ARGV PARENT_SCOPE + \ ARGC + \ ARGN + \ ARGV + \ CALL + \ FOO + \ PARENT_SCOPE syn keyword cmakeKWget_cmake_property contained - \ COMPONENTS GLOBAL MACROS VAR VARIABLES + \ COMPONENTS + \ GLOBAL + \ MACROS + \ VARIABLES syn keyword cmakeKWget_directory_property contained - \ DEFINITION DIRECTORY + \ DEFINITION + \ DIRECTORY + \ INHERITED syn keyword cmakeKWget_filename_component contained - \ ABSOLUTE ARG_VAR BASE_DIR CACHE COMP DIRECTORY EXT NAME NAME_WE PATH PROGRAM PROGRAM_ARGS REALPATH VAR + \ ABSOLUTE + \ BASE_DIR + \ DIRECTORY + \ EXT + \ LAST_EXT + \ NAME + \ NAME_WE + \ NAME_WLE + \ PROGRAM + \ PROGRAM_ARGS + \ QUERY + \ REALPATH + \ REAL_PATH + \ WINDOWS_REGISTRY syn keyword cmakeKWget_property contained - \ BRIEF_DOCS CACHE DEFINED DIRECTORY FULL_DOCS GLOBAL INSTALL PROPERTY SET SOURCE TARGET TEST VARIABLE + \ BRIEF_DOCS + \ DEFINED + \ DIRECTORY + \ FULL_DOCS + \ GENERATED + \ GLOBAL + \ INSTALL + \ PROPERTY + \ SET + \ SOURCE + \ TARGET + \ TARGET_DIRECTORY + \ TEST + \ VARIABLE syn keyword cmakeKWget_source_file_property contained - \ LOCATION VAR + \ DIRECTORY + \ GENERATED + \ INHERITED + \ LOCATION + \ TARGET_DIRECTORY syn keyword cmakeKWget_target_property contained + \ INHERITED \ VAR syn keyword cmakeKWget_test_property contained + \ INHERITED \ VAR syn keyword cmakeKWif contained - \ ARGS CMAKE_MATCH_ CMP COMMAND DEFINED EQUAL EXISTS FALSE GREATER GREATER_EQUAL IGNORE IN_LIST IS_ABSOLUTE IS_DIRECTORY IS_NEWER_THAN IS_SYMLINK LESS LESS_EQUAL MATCHES NNNN NOT OFF OR POLICY STREQUAL STRGREATER STRGREATER_EQUAL STRLESS STRLESS_EQUAL TARGET TEST THEN TRUE VERSION_EQUAL VERSION_GREATER VERSION_GREATER_EQUAL VERSION_LESS VERSION_LESS_EQUAL YES + \ CMAKE_MATCH_ + \ CMP + \ COMMAND + \ COMPARE + \ DEFINED + \ EQUAL + \ EXISTS + \ FALSE + \ GREATER + \ GREATER_EQUAL + \ IGNORE + \ IN_LIST + \ IS_ABSOLUTE + \ IS_DIRECTORY + \ IS_NEWER_THAN + \ IS_SYMLINK + \ LESS + \ LESS_EQUAL + \ MATCHES + \ NNNN + \ NOT + \ OFF + \ OR + \ PATH_EQUAL + \ POLICY + \ STREQUAL + \ STRGREATER + \ STRGREATER_EQUAL + \ STRLESS + \ STRLESS_EQUAL + \ TARGET + \ TEST + \ TRUE + \ VERSION_EQUAL + \ VERSION_GREATER + \ VERSION_GREATER_EQUAL + \ VERSION_LESS + \ VERSION_LESS_EQUAL + \ YES syn keyword cmakeKWinclude contained - \ NO_POLICY_SCOPE OPTIONAL RESULT_VARIABLE + \ NO_POLICY_SCOPE + \ OPTIONAL + \ RESULT_VARIABLE syn keyword cmakeKWinclude_directories contained - \ AFTER BEFORE INCLUDE_DIRECTORIES ON SYSTEM + \ AFTER + \ BEFORE + \ INCLUDE_DIRECTORIES + \ ON + \ SYSTEM syn keyword cmakeKWinclude_external_msproject contained - \ GUID MAP_IMPORTED_CONFIG_ PLATFORM TYPE WIX + \ GUID + \ MAP_IMPORTED_CONFIG_ + \ PLATFORM + \ TYPE + \ WIX syn keyword cmakeKWinclude_guard contained - \ DIRECTORY GLOBAL TRUE __CURRENT_FILE_VAR__ + \ DIRECTORY + \ GLOBAL + \ TRUE + \ __CURRENT_FILE_VAR__ syn keyword cmakeKWinstall contained - \ ARCHIVE BUNDLE CODE COMPONENT CONFIGURATIONS CVS DESTDIR DESTINATION DIRECTORY DIRECTORY_PERMISSIONS DLL EXCLUDE_FROM_ALL EXPORT EXPORT_ANDROID_MK EXPORT_LINK_INTERFACE_LIBRARIES FILES FILES_MATCHING FILE_PERMISSIONS FRAMEWORK GROUP_EXECUTE GROUP_READ GROUP_WRITE IMPORTED_ INCLUDES INSTALL_PREFIX INTERFACE_INCLUDE_DIRECTORIES LIBRARY MACOSX_BUNDLE MESSAGE_NEVER NAMELINK_ONLY NAMELINK_SKIP NAMESPACE NDK OBJECTS OPTIONAL OWNER_EXECUTE OWNER_READ OWNER_WRITE PATTERN PERMISSIONS POST_INSTALL_SCRIPT PRE_INSTALL_SCRIPT PRIVATE_HEADER PROGRAMS PUBLIC_HEADER REGEX RENAME RESOURCE RUNTIME SCRIPT SETGID SETUID SOVERSION TARGETS TRUE USE_SOURCE_PERMISSIONS VERSION WORLD_EXECUTE WORLD_READ WORLD_WRITE + \ AFTER + \ AIX + \ ALL_COMPONENTS + \ APT + \ ARCHIVE + \ BEFORE + \ BUILD_TYPE + \ BUNDLE + \ BUNDLE_EXECUTABLE + \ CMAKE_INSTALL_BINDIR + \ CMAKE_INSTALL_DATADIR + \ CMAKE_INSTALL_DATAROOTDIR + \ CMAKE_INSTALL_DOCDIR + \ CMAKE_INSTALL_INCLUDEDIR + \ CMAKE_INSTALL_INFODIR + \ CMAKE_INSTALL_LIBDIR + \ CMAKE_INSTALL_LOCALEDIR + \ CMAKE_INSTALL_LOCALSTATEDIR + \ CMAKE_INSTALL_MANDIR + \ CMAKE_INSTALL_MODE + \ CMAKE_INSTALL_RUNSTATEDIR + \ CMAKE_INSTALL_SBINDIR + \ CMAKE_INSTALL_SHARESTATEDIR + \ CMAKE_INSTALL_SYSCONFDIR + \ CODE + \ COMPONENT + \ CONFIGURATIONS + \ CVS + \ CXX_MODULES_BMI + \ CXX_MODULES_DIRECTORY + \ DATA + \ DATAROOT + \ DBUILD_TYPE + \ DCOMPONENT + \ DESTDIR + \ DESTINATION + \ DIRECTORY + \ DIRECTORY_PERMISSIONS + \ DLL + \ DOC + \ ENABLE_EXPORTS + \ EXCLUDE_FROM_ALL + \ EXECUTABLES + \ EXPORT + \ EXPORT_ANDROID_MK + \ EXPORT_LINK_INTERFACE_LIBRARIES + \ EXPORT_NAME + \ FILES + \ FILES_MATCHING + \ FILE_PERMISSIONS + \ FILE_SET + \ FRAMEWORK + \ GET_RUNTIME_DEPENDENCIES + \ GROUP_EXECUTE + \ GROUP_READ + \ GROUP_WRITE + \ HEADERS + \ IMPORTED_RUNTIME_ARTIFACTS + \ INCLUDES + \ INFO + \ INSTALL_PREFIX + \ INTERFACE + \ INTERFACE_INCLUDE_DIRECTORIES + \ LIBRARY + \ LOCALE + \ LOCALSTATE + \ MACOSX_BUNDLE + \ MAN + \ MESSAGE_NEVER + \ NAMELINK_COMPONENT + \ NAMELINK_ONLY + \ NAMELINK_SKIP + \ NAMESPACE + \ NDK + \ OBJECTS + \ OPTIONAL + \ OWNER_EXECUTE + \ OWNER_READ + \ OWNER_WRITE + \ PATTERN + \ PERMISSIONS + \ POST_EXCLUDE_FILES + \ POST_EXCLUDE_REGEXES + \ POST_INCLUDE_FILES + \ POST_INCLUDE_REGEXES + \ POST_INSTALL_SCRIPT + \ PRE_EXCLUDE_REGEXES + \ PRE_INCLUDE_REGEXES + \ PRE_INSTALL_SCRIPT + \ PRIVATE_HEADER + \ PROGRAMS + \ PROPERTIES + \ PUBLIC_HEADER + \ RENAME + \ RESOURCE + \ RPM + \ RUNSTATE + \ RUNTIME_DEPENDENCIES + \ RUNTIME_DEPENDENCY_SET + \ SBIN + \ SCRIPT + \ SETGID + \ SETUID + \ SHAREDSTATE + \ SOVERSION + \ STATIC + \ SYSCONF + \ TARGETS + \ TRUE + \ TYPE + \ USE_SOURCE_PERMISSIONS + \ VERSION + \ WORLD_EXECUTE + \ WORLD_READ + \ WORLD_WRITE syn keyword cmakeKWinstall_files contained - \ FILES GLOB + \ FILES + \ GLOB syn keyword cmakeKWinstall_programs contained - \ FILES GLOB PROGRAMS TARGETS + \ FILES + \ GLOB + \ PROGRAMS + \ TARGETS syn keyword cmakeKWinstall_targets contained - \ DLL RUNTIME_DIRECTORY TARGETS + \ DLL + \ RUNTIME_DIRECTORY + +syn keyword cmakeKWlink_directories contained + \ AFTER + \ BEFORE + \ LINK_DIRECTORIES + \ ON + \ ORIGIN + \ RPATH syn keyword cmakeKWlist contained - \ APPEND CACHE EXCLUDE FILTER FIND GET INCLUDE INSERT INTERNAL LENGTH LIST NOTES PARENT_SCOPE REGEX REMOVE_AT REMOVE_DUPLICATES REMOVE_ITEM REVERSE SORT + \ ACTION + \ APPEND + \ ASCENDING + \ CASE + \ COMPARE + \ DESCENDING + \ EXCLUDE + \ FILE_BASENAME + \ FILTER + \ FIND + \ GENEX_STRIP + \ GET + \ INCLUDE + \ INSENSITIVE + \ INSERT + \ INTERNAL + \ JOIN + \ LENGTH + \ NATURAL + \ ORDER + \ OUTPUT_VARIABLE + \ PARENT_SCOPE + \ POP_BACK + \ POP_FRONT + \ PREPEND + \ REGEX + \ REMOVE_AT + \ REMOVE_DUPLICATES + \ REMOVE_ITEM + \ REPLACE + \ REVERSE + \ SELECTOR + \ SENSITIVE + \ SORT + \ STRING + \ STRIP + \ SUBLIST + \ TOLOWER + \ TOUPPER + \ TRANSFORM + \ TRANSFORM_APPEND + \ TRANSFORM_GENEX_STRIP + \ TRANSFORM_REPLACE + \ TRANSFORM_STRIP + \ TRANSFORM_TOLOWER syn keyword cmakeKWload_cache contained - \ EXCLUDE INCLUDE_INTERNALS READ_WITH_PREFIX + \ EXCLUDE + \ INCLUDE_INTERNALS + \ READ_WITH_PREFIX syn keyword cmakeKWload_command contained - \ CMAKE_LOADED_COMMAND_ COMMAND_NAME + \ CMAKE_LOADED_COMMAND_ + \ COMMAND_NAME syn keyword cmakeKWmacro contained - \ ARGC ARGN ARGS ARGV DEFINED GREATER LISTS NOT _BAR _FOO - -syn keyword cmakeKWmake_directory contained - \ MAKE_DIRECTORY + \ ARGC + \ ARGN + \ ARGV + \ CALL + \ DEFINED + \ FOO + \ GREATER + \ LISTS + \ NOT syn keyword cmakeKWmark_as_advanced contained - \ CLEAR FORCE VAR + \ CLEAR + \ FORCE syn keyword cmakeKWmath contained \ EXPR + \ HEXADECIMAL + \ OUTPUT_FORMAT syn keyword cmakeKWmessage contained - \ AUTHOR_WARNING DEPRECATION FATAL_ERROR GUI SEND_ERROR STATUS WARNING + \ APPEND + \ AUTHOR_WARNING + \ CHECK_ + \ CHECK_FAIL + \ CHECK_PASS + \ CHECK_START + \ CONFIGURE_LOG + \ DEBUG + \ DEFINED + \ DEPRECATION + \ FATAL_ERROR + \ GET_MESSAGE_LOG_LEVEL + \ GUI + \ INTERNAL + \ MY_CHECK_RESULT + \ NOTICE + \ POP_BACK + \ SEND_ERROR + \ STATUS + \ TRACE + \ VERBOSE + \ WARNING syn keyword cmakeKWoption contained - \ OFF ON + \ OFF syn keyword cmakeKWproject contained - \ CMAKE_PROJECT_ DESCRIPTION LANGUAGES NAME NONE PROJECT VERSION _BINARY_DIR _INCLUDE _SOURCE_DIR _VERSION _VERSION_MAJOR _VERSION_MINOR _VERSION_PATCH _VERSION_TWEAK + \ ASM + \ ASM_MARMASM + \ ASM_MASM + \ ASM_NASM + \ ATT + \ CMAKE_PROJECT_ + \ CUDA + \ DESCRIPTION + \ HIP + \ HOMEPAGE_URL + \ ISPC + \ LANGUAGES + \ NAME + \ NONE + \ OBJC + \ OBJCXX + \ PROJECT + \ VERSION + \ _BINARY_DIR + \ _DESCRIPTION + \ _HOMEPAGE_URL + \ _INCLUDE_BEFORE + \ _IS_TOP_LEVEL + \ _SOURCE_DIR + \ _VERSION + \ _VERSION_MAJOR + \ _VERSION_MINOR + \ _VERSION_PATCH + \ _VERSION_TWEAK + +syn keyword cmakeKWqt_wrap_cpp contained + \ AUTOMOC + +syn keyword cmakeKWqt_wrap_ui contained + \ AUTOUIC syn keyword cmakeKWremove contained - \ REMOVE_ITEM VALUE VAR + \ VALUE + \ VAR + +syn keyword cmakeKWreturn contained + \ DEFER + \ PARENT_SCOPE + \ PROPAGATE + \ SCOPE_FOR + \ VARIABLES + \ VERSION syn keyword cmakeKWseparate_arguments contained - \ MSDN NATIVE NATIVE_COMMAND UNIX_COMMAND WINDOWS WINDOWS_COMMAND _COMMAND + \ MSDN + \ NATIVE_COMMAND + \ PROGRAM + \ SEPARATE_ARGS + \ UNIX_COMMAND + \ WINDOWS_COMMAND syn keyword cmakeKWset contained - \ BOOL CACHE FILEPATH FORCE INTERNAL OFF ON PARENT_SCOPE STRING STRINGS + \ BOOL + \ FILEPATH + \ FORCE + \ INTERNAL + \ OFF + \ OLD + \ ON + \ PARENT_SCOPE + \ PROPAGATE + \ STRING + \ STRINGS + \ VAR syn keyword cmakeKWset_directory_properties contained + \ DIRECTORY \ PROPERTIES syn keyword cmakeKWset_property contained - \ APPEND APPEND_STRING CACHE DIRECTORY GLOBAL INSTALL PROPERTY SOURCE TARGET TEST WIX + \ APPEND + \ APPEND_STRING + \ DIRECTORY + \ GENERATED + \ GLOBAL + \ INHERITED + \ INSTALL + \ NAME + \ PROPERTY + \ SOURCE + \ TARGET + \ TARGET_DIRECTORY + \ TEST + \ WIX syn keyword cmakeKWset_source_files_properties contained + \ DIRECTORY + \ GENERATED \ PROPERTIES + \ SOURCE + \ TARGET_DIRECTORY syn keyword cmakeKWset_target_properties contained \ PROPERTIES syn keyword cmakeKWset_tests_properties contained + \ NAME \ PROPERTIES +syn keyword cmakeKWsite_name contained + \ HOSTNAME + syn keyword cmakeKWsource_group contained - \ FILES PREFIX REGULAR_EXPRESSION TREE + \ FILES + \ PREFIX + \ REGULAR_EXPRESSION + \ TREE syn keyword cmakeKWstring contained - \ ALPHABET APPEND ASCII CMAKE_MATCH_ COMPARE CONCAT CONFIGURE EQUAL ESCAPE_QUOTES FIND GENEX_STRIP GREATER GREATER_EQUAL GUID HASH LENGTH LESS LESS_EQUAL MAKE_C_IDENTIFIER MATCH MATCHALL MATCHES NAMESPACE NOTEQUAL ONLY PREPEND RANDOM RANDOM_SEED REGEX REPLACE REVERSE RFC SHA SOURCE_DATE_EPOCH STRIP SUBSTRING SZ TIMESTAMP TOLOWER TOUPPER TYPE US UTC UUID + \ ALPHABET + \ APPEND + \ ARRAY + \ ASCII + \ BOOLEAN + \ CMAKE_MATCH_ + \ COMPARE + \ CONCAT + \ CONFIGURE + \ EQUAL + \ ERROR_VARIABLE + \ ESCAPE_QUOTES + \ FIND + \ GENEX_STRIP + \ GET + \ GREATER + \ GREATER_EQUAL + \ GUID + \ HASH + \ HEX + \ ISO + \ JOIN + \ JSON + \ LENGTH + \ LESS + \ LESS_EQUAL + \ MAKE_C_IDENTIFIER + \ MATCH + \ MATCHALL + \ MATCHES + \ MEMBER + \ NAMESPACE + \ NOTEQUAL + \ NULL + \ NUMBER + \ OBJECT + \ OFF + \ ONLY + \ PREPEND + \ RANDOM + \ RANDOM_SEED + \ REGEX + \ REMOVE + \ REPEAT + \ REPLACE + \ REVERSE + \ RFC + \ SET + \ SHA + \ SOURCE_DATE_EPOCH + \ STRIP + \ SUBSTRING + \ SZ + \ TIMESTAMP + \ TOLOWER + \ TOUPPER + \ TYPE + \ US + \ UTC + \ UUID syn keyword cmakeKWsubdirs contained - \ EXCLUDE_FROM_ALL PREORDER + \ EXCLUDE_FROM_ALL + \ PREORDER syn keyword cmakeKWtarget_compile_definitions contained - \ COMPILE_DEFINITIONS INTERFACE INTERFACE_COMPILE_DEFINITIONS PRIVATE PUBLIC + \ ALIAS + \ COMPILE_DEFINITIONS + \ FOO + \ IMPORTED + \ INTERFACE + \ INTERFACE_COMPILE_DEFINITIONS + \ PRIVATE + \ PUBLIC syn keyword cmakeKWtarget_compile_features contained - \ COMPILE_FEATURES IMPORTED INTERFACE INTERFACE_COMPILE_FEATURES PRIVATE PUBLIC + \ ALIAS + \ COMPILE_FEATURES + \ IMPORTED + \ INTERFACE + \ INTERFACE_COMPILE_FEATURES + \ PRIVATE + \ PUBLIC syn keyword cmakeKWtarget_compile_options contained - \ BEFORE COMPILE_OPTIONS IMPORTED INTERFACE INTERFACE_COMPILE_OPTIONS PRIVATE PUBLIC + \ ALIAS + \ BEFORE + \ CMAKE_ + \ COMPILE_LANGUAGE + \ COMPILE_OPTIONS + \ CONFIG + \ IMPORTED + \ INTERFACE + \ INTERFACE_COMPILE_OPTIONS + \ PRIVATE + \ PUBLIC + \ SHELL + \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ syn keyword cmakeKWtarget_include_directories contained - \ BEFORE BUILD_INTERFACE IMPORTED INCLUDE_DIRECTORIES INSTALL_INTERFACE INTERFACE INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES PRIVATE PUBLIC SYSTEM + \ AFTER + \ ALIAS + \ BEFORE + \ BUILD_INTERFACE + \ IMPORTED + \ INCLUDE_DIRECTORIES + \ INSTALL_INTERFACE + \ INTERFACE + \ INTERFACE_INCLUDE_DIRECTORIES + \ INTERFACE_LINK_LIBRARIES + \ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES + \ PRIVATE + \ PUBLIC + \ SYSTEM + +syn keyword cmakeKWtarget_link_directories contained + \ ALIAS + \ BEFORE + \ IMPORTED + \ INTERFACE + \ INTERFACE_LINK_DIRECTORIES + \ LINK_DIRECTORIES + \ ORIGIN + \ PRIVATE + \ PUBLIC + \ RPATH syn keyword cmakeKWtarget_link_libraries contained - \ ALIAS DAG DEBUG_CONFIGURATIONS IMPORTED IMPORTED_NO_SONAME INTERFACE INTERFACE_LINK_LIBRARIES LINK_FLAGS LINK_INTERFACE_LIBRARIES LINK_INTERFACE_LIBRARIES_DEBUG LINK_INTERFACE_MULTIPLICITY LINK_PRIVATE LINK_PUBLIC OLD OSX PRIVATE PUBLIC STATIC + \ ALIAS + \ DA + \ DAG + \ DEBUG_CONFIGURATIONS + \ DOBJ + \ IMPORTED + \ IMPORTED_NO_SONAME + \ INTERFACE + \ INTERFACE_LINK_LIBRARIES + \ LINK_FLAGS + \ LINK_INTERFACE_LIBRARIES + \ LINK_INTERFACE_LIBRARIES_DEBUG + \ LINK_INTERFACE_MULTIPLICITY + \ LINK_OPTIONS + \ LINK_PRIVATE + \ LINK_PUBLIC + \ OBJECT + \ OLD + \ PRIVATE + \ PUBLIC + \ SHARED + \ STATIC + \ TARGET_OBJECTS + +syn keyword cmakeKWtarget_link_options contained + \ ALIAS + \ BEFORE + \ CMAKE_ + \ CONFIG + \ CUDA_RESOLVE_DEVICE_SYMBOLS + \ CUDA_SEPARABLE_COMPILATION + \ DEVICE_LINK + \ GCC + \ HOST_LINK + \ IMPORTED + \ INTERFACE + \ INTERFACE_LINK_OPTIONS + \ LANG + \ LINKER + \ LINK_OPTIONS + \ PRIVATE + \ PUBLIC + \ SHELL + \ STATIC_LIBRARY_OPTIONS + \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ + \ _LINKER_WRAPPER_FLAG + \ _LINKER_WRAPPER_FLAG_SEP + +syn keyword cmakeKWtarget_precompile_headers contained + \ ALIAS + \ ANGLE + \ BUILD_INTERFACE + \ COMPILE_LANGUAGE + \ DISABLE_PRECOMPILE_HEADERS + \ EXPORT + \ FI + \ GCC + \ IMPORTED + \ INTERFACE + \ INTERFACE_PRECOMPILE_HEADERS + \ PRECOMPILE_HEADERS + \ PRECOMPILE_HEADERS_REUSE_FROM + \ PRIVATE + \ PUBLIC + \ REUSE_FROM + \ SKIP_PRECOMPILE_HEADERS syn keyword cmakeKWtarget_sources contained - \ IMPORTED INTERFACE INTERFACE_SOURCES PRIVATE PUBLIC SOURCES + \ ALIAS + \ BASE_DIRS + \ BUILD_INTERFACE + \ CONFIG + \ CORRECT + \ CXX_MODULES + \ CXX_MODULE_DIRS + \ CXX_MODULE_DIRS_ + \ CXX_MODULE_SETS + \ CXX_MODULE_SET_ + \ EXPORT + \ FILES + \ FILE_SET + \ FRAMEWORK + \ HEADERS + \ HEADER_DIRS + \ HEADER_DIRS_ + \ HEADER_FILE_ONLY + \ HEADER_SETS + \ HEADER_SET_ + \ IMPORTED + \ INCLUDE_DIRECTORIES + \ INTERFACE + \ INTERFACE_CXX_MODULE_SETS + \ INTERFACE_HEADER_SETS + \ INTERFACE_INCLUDE_DIRECTORIES + \ INTERFACE_SOURCES + \ NAME + \ PRIVATE + \ PUBLIC + \ SOURCES + \ SOURCE_DIR + \ TARGETS + \ TRUE + \ TYPE + \ WRONG syn keyword cmakeKWtry_compile contained - \ ALL_BUILD CMAKE_FLAGS COMPILE_DEFINITIONS COPY_FILE COPY_FILE_ERROR CUDA_EXTENSIONS CUDA_STANDARD CUDA_STANDARD_REQUIRED CXX_EXTENSIONS CXX_STANDARD CXX_STANDARD_REQUIRED C_EXTENSIONS C_STANDARD C_STANDARD_REQUIRED DEFINED DLINK_LIBRARIES DVAR FALSE INCLUDE_DIRECTORIES LANG LINK_DIRECTORIES LINK_LIBRARIES NOT OUTPUT_VARIABLE RESULT_VAR SOURCES TRUE TYPE VALUE _EXTENSIONS _STANDARD _STANDARD_REQUIRED + \ ALL_BUILD + \ BINARY_DIR + \ CMAKE_FLAGS + \ COMPILE_DEFINITIONS + \ COPY_FILE + \ COPY_FILE_ERROR + \ CUDA_EXTENSIONS + \ CUDA_STANDARD + \ CUDA_STANDARD_REQUIRED + \ CXX_EXTENSIONS + \ CXX_STANDARD + \ CXX_STANDARD_REQUIRED + \ C_EXTENSIONS + \ C_STANDARD + \ C_STANDARD_REQUIRED + \ DEFINED + \ DLINK_LIBRARIES + \ DVAR + \ EXECUTABLE + \ FALSE + \ GHS + \ HIP_EXTENSIONS + \ HIP_STANDARD + \ HIP_STANDARD_REQUIRED + \ INCLUDE_DIRECTORIES + \ LANG + \ LINK_DIRECTORIES + \ LINK_LIBRARIES + \ LINK_OPTIONS + \ LOG_DESCRIPTION + \ MULTI + \ NOT + \ NO_CACHE + \ NO_LOG + \ OBJCXX_EXTENSIONS + \ OBJCXX_STANDARD + \ OBJCXX_STANDARD_REQUIRED + \ OBJC_EXTENSIONS + \ OBJC_STANDARD + \ OBJC_STANDARD_REQUIRED + \ OUTPUT_VARIABLE + \ PRIVATE + \ PROJECT + \ RESULTVAR + \ SOURCES + \ SOURCE_DIR + \ SOURCE_FROM_CONTENT + \ SOURCE_FROM_FILE + \ SOURCE_FROM_VAR + \ STATIC_LIBRARY + \ STATIC_LIBRARY_OPTIONS + \ TARGET + \ TRUE + \ TYPE + \ VALUE + \ _EXTENSIONS + \ _STANDARD + \ _STANDARD_REQUIRED syn keyword cmakeKWtry_run contained - \ ARGS CMAKE_FLAGS COMPILE_DEFINITIONS COMPILE_OUTPUT_VARIABLE COMPILE_RESULT_VAR DLINK_LIBRARIES DVAR FAILED_TO_RUN FALSE INCLUDE_DIRECTORIES LINK_DIRECTORIES LINK_LIBRARIES RUN_OUTPUT_VARIABLE RUN_RESULT_VAR TRUE TYPE VALUE __TRYRUN_OUTPUT + \ ARGS + \ CMAKE_FLAGS + \ COMPILE_DEFINITIONS + \ COMPILE_OUTPUT_VARIABLE + \ COPY_FILE + \ COPY_FILE_ERROR + \ FAILED_TO_RUN + \ FALSE + \ LANG + \ LINK_LIBRARIES + \ LINK_OPTIONS + \ LOG_DESCRIPTION + \ NO_CACHE + \ NO_LOG + \ RUN_OUTPUT_STDERR_VARIABLE + \ RUN_OUTPUT_STDOUT_VARIABLE + \ RUN_OUTPUT_VARIABLE + \ SOURCES + \ SOURCE_FROM_CONTENT + \ SOURCE_FROM_FILE + \ SOURCE_FROM_VAR + \ TRUE + \ WORKING_DIRECTORY + \ _EXTENSIONS + \ _STANDARD + \ _STANDARD_REQUIRED + \ __TRYRUN_OUTPUT syn keyword cmakeKWunset contained - \ CACHE LD_LIBRARY_PATH PARENT_SCOPE + \ PARENT_SCOPE + \ VAR syn keyword cmakeKWuse_mangled_mesa contained - \ GL OUTPUT_DIRECTORY PATH_TO_MESA + \ GL + \ OUTPUT_DIRECTORY + \ PATH_TO_MESA syn keyword cmakeKWvariable_requires contained - \ RESULT_VARIABLE TEST_VARIABLE + \ RESULT_VARIABLE + \ TEST_VARIABLE syn keyword cmakeKWvariable_watch contained + \ APPEND \ COMMAND - -syn keyword cmakeKWwhile contained - \ ARGS + \ DEFINED + \ MODIFIED_ACCESS + \ READ_ACCESS + \ REMOVED_ACCESS + \ UNKNOWN_MODIFIED_ACCESS + \ UNKNOWN_READ_ACCESS syn keyword cmakeKWwrite_file contained - \ APPEND CONFIGURE_FILE NOTE WRITE + \ APPEND + \ CONFIGURE_FILE + \ NOTE + \ WRITE syn keyword cmakeGeneratorExpressions contained - \ LINK_LIBRARIES INCLUDE_DIRECTORIES COMPILE_DEFINITIONS CONFIG DEBUG_MODE BOOL AND NOT IF STREQUAL MAP_IMPORTED_CONFIG_ PLATFORM_ID C_COMPILER_ID CXX_COMPILER_ID VERSION_LESS VERSION_GREATER VERSION_EQUAL VERSION_LESS_EQUAL VERSION_GREATER_EQUAL C_COMPILER_VERSION CXX_COMPILER_VERSION TARGET_POLICY COMPILE_FEATURES C_STANDARD CXX_STANDARD COMPILE_LANGUAGE PRIVATE PUBLIC COMPILING_CXX GNU OLD_COMPILER CMAKE_CXX_COMPILER_VERSION CONFIGURATION TARGET_FILE TARGET_FILE_NAME TARGET_FILE_DIR TARGET_LINKER_FILE TARGET_LINKER_FILE_NAME TARGET_LINKER_FILE_DIR TARGET_SONAME_FILE TARGET_SONAME_FILE_NAME TARGET_SONAME_FILE_DIR TARGET_PDB_FILE PDB_NAME PDB_OUTPUT_DIRECTORY PDB_NAME_ PDB_OUTPUT_DIRECTORY_ TARGET_PDB_FILE_NAME TARGET_PDB_FILE_DIR TARGET_BUNDLE_DIR TARGET_BUNDLE_CONTENT_DIR SDK TARGET_PROPERTY INSTALL_PREFIX EXPORT JOIN ANGLE COMMA SEMICOLON TARGET_NAME LINK_ONLY INTERFACE_LINK_LIBRARIES INSTALL_INTERFACE BUILD_INTERFACE LOWER_CASE UPPER_CASE MAKE_C_IDENTIFIER TARGET_OBJECTS OBJECT_LIBRARY SHELL_PATH MSYS + \ ABSOLUTE_PATH + \ ACTION + \ AIX + \ ANGLE + \ APPEND + \ ARCHIVE_OUTPUT_NAME + \ ARCHIVE_OUTPUT_NAME_ + \ ASCENDING + \ BAR + \ BOOL + \ BUILD_INTERFACE + \ BUILD_LOCAL_INTERFACE + \ CMAKE_LINK_GROUP_USING_ + \ CMAKE_LINK_LIBRARY_USING_ + \ CMAKE_PATH + \ CODE + \ COMMAND_CONFIG + \ COMMAND_EXPAND_LISTS + \ COMPARE + \ COMPILE_DEFINITIONS + \ COMPILE_FEATURES + \ COMPILE_LANGUAGE + \ COMPILE_LANG_AND_ID + \ COMPILE_ONLY + \ COMPILING_CUDA + \ COMPILING_CXX + \ COMPILING_CXX_WITH_CLANG + \ COMPILING_CXX_WITH_INTEL + \ COMPILING_C_WITH_CLANG + \ CONFIG + \ CONFIGURATION + \ CONTENT + \ CUDA_COMPILER_ID + \ CUDA_COMPILER_VERSION + \ CUDA_RESOLVE_DEVICE_SYMBOLS + \ CUDA_SEPARABLE_COMPILATION + \ CUSTOM_KEYS + \ CXX_COMPILER_ID + \ CXX_COMPILER_VERSION + \ CXX_CONFIG + \ CXX_STANDARD + \ C_COMPILER_ID + \ C_COMPILER_VERSION + \ C_STANDARD + \ DEBUG_MODE + \ DEBUG_POSTFIX + \ DENABLE_SOME_FEATURE + \ DESCENDING + \ DEVICE_LINK + \ DLL + \ ENABLE_EXPORTS + \ EXCLUDE + \ EXPORT + \ EXTENSION_DEF + \ FALSE + \ FILENAME_DEF + \ FILE_BASENAME + \ FILTER + \ FIND + \ FOO_EXTRA_THINGS + \ GENERATE + \ GENEX_EVAL + \ GET_EXTENSION + \ GET_FILENAME + \ GET_PARENT_PATH + \ GET_RELATIVE_PART + \ GET_ROOT_DIRECTORY + \ GET_ROOT_NAME + \ GET_ROOT_PATH + \ GET_STEM + \ HAS_ + \ HAS_EXTENSION + \ HAS_FILENAME + \ HAS_PARENT_PATH + \ HAS_RELATIVE_PART + \ HAS_ROOT_DIRECTORY + \ HAS_ROOT_NAME + \ HAS_ROOT_PATH + \ HAS_STEM + \ HAVE_SOME_FEATURE + \ HIP_COMPILER_ID + \ HIP_COMPILER_VERSION + \ HIP_STANDARD + \ HOST_LINK + \ IF + \ IGNORE + \ IMPORTED_LOCATION + \ IMPORT_PREFIX + \ IMPORT_SUFFIX + \ INCLUDE_DIRECTORIES + \ INSENSITIVE + \ INSERT + \ INSTALL_INTERFACE + \ INSTALL_NAME_DIR + \ INSTALL_PREFIX + \ INSTALL_RPATH + \ INTERFACE_LINK_LIBRARIES + \ INTERFACE_LINK_LIBRARIES_DIRECT + \ IN_LIST + \ ISPC_COMPILER_ID + \ ISPC_COMPILER_VERSION + \ IS_ABSOLUTE + \ IS_PREFIX + \ IS_RELATIVE + \ JOIN + \ LANG + \ LANG_COMPILER_ID + \ LAST_ONLY + \ LENGTH + \ LIBRARY_OUTPUT_NAME + \ LIBRARY_OUTPUT_NAME_ + \ LINK_GROUP + \ LINK_GROUP_PREDEFINED_FEATURES + \ LINK_LANGUAGE + \ LINK_LANG_AND_ID + \ LINK_LIBRARIES + \ LINK_LIBRARY + \ LINK_LIBRARY_OVERRIDE + \ LINK_LIBRARY_OVERRIDE_ + \ LINK_LIBRARY_PREDEFINED_FEATURES + \ LINK_ONLY + \ LOWER_CASE + \ MAKE_C_IDENTIFIER + \ MAP_IMPORTED_CONFIG_ + \ MODULE + \ NATURAL + \ NO + \ NORMALIZE + \ NORMAL_PATH + \ NOT + \ OBJCXX_COMPILER_ID + \ OBJCXX_COMPILER_VERSION + \ OBJC_COMPILER_ID + \ OBJC_COMPILER_VERSION + \ OBJECT + \ OFF + \ OLD_COMPILER + \ ORDER + \ OUTPUT + \ OUTPUT_CONFIG + \ OUTPUT_NAME + \ OUTPUT_NAME_ + \ PATH + \ PATH_EQUAL + \ PDB_NAME + \ PDB_NAME_ + \ PDB_OUTPUT_DIRECTORY + \ PDB_OUTPUT_DIRECTORY_ + \ PLATFORM_ID + \ POP_BACK + \ POP_FRONT + \ POSIX + \ POST_BUILD + \ PREPEND + \ PRIVATE + \ PUBLIC + \ REGEX + \ RELATIVE_PATH + \ REMOVE_AT + \ REMOVE_DUPLICATES + \ REMOVE_EXTENSION + \ REMOVE_FILENAME + \ REMOVE_ITEM + \ REPLACE + \ REPLACE_EXTENSION + \ REPLACE_FILENAME + \ REQUIRED + \ RESCAN + \ REVERSE + \ RPATH + \ RUNTIME_DEPENDENCY_SET + \ RUNTIME_OUTPUT_NAME + \ RUNTIME_OUTPUT_NAME_ + \ SCRIPT + \ SDK + \ SELECTOR + \ SEMICOLON + \ SENSITIVE + \ SHARED + \ SHELL_PATH + \ SORT + \ STATIC + \ STREQUAL + \ STRING + \ STRIP + \ SUBLIST + \ TARGET_BUNDLE_CONTENT_DIR + \ TARGET_BUNDLE_DIR + \ TARGET_BUNDLE_DIR_NAME + \ TARGET_EXISTS + \ TARGET_FILE + \ TARGET_FILE_BASE_NAME + \ TARGET_FILE_DIR + \ TARGET_FILE_NAME + \ TARGET_FILE_PREFIX + \ TARGET_FILE_SUFFIX + \ TARGET_GENEX_EVAL + \ TARGET_IMPORT_FILE + \ TARGET_IMPORT_FILE_BASE_NAME + \ TARGET_IMPORT_FILE_DIR + \ TARGET_IMPORT_FILE_NAME + \ TARGET_IMPORT_FILE_PREFIX + \ TARGET_IMPORT_FILE_SUFFIX + \ TARGET_LINKER_FILE + \ TARGET_LINKER_FILE_BASE_NAME + \ TARGET_LINKER_FILE_DIR + \ TARGET_LINKER_FILE_NAME + \ TARGET_LINKER_FILE_PREFIX + \ TARGET_LINKER_FILE_SUFFIX + \ TARGET_LINKER_IMPORT_FILE + \ TARGET_LINKER_IMPORT_FILE_BASE_NAME + \ TARGET_LINKER_IMPORT_FILE_DIR + \ TARGET_LINKER_IMPORT_FILE_NAME + \ TARGET_LINKER_IMPORT_FILE_PREFIX + \ TARGET_LINKER_IMPORT_FILE_SUFFIX + \ TARGET_LINKER_LIBRARY_FILE + \ TARGET_LINKER_LIBRARY_FILE_BASE_NAME + \ TARGET_LINKER_LIBRARY_FILE_DIR + \ TARGET_LINKER_LIBRARY_FILE_NAME + \ TARGET_LINKER_LIBRARY_FILE_PREFIX + \ TARGET_LINKER_LIBRARY_FILE_SUFFIX + \ TARGET_NAME_IF_EXISTS + \ TARGET_OBJECTS + \ TARGET_PDB_FILE + \ TARGET_PDB_FILE_BASE_NAME + \ TARGET_PDB_FILE_DIR + \ TARGET_PDB_FILE_NAME + \ TARGET_POLICY + \ TARGET_PROPERTY + \ TARGET_RUNTIME_DLLS + \ TARGET_RUNTIME_DLL_DIRS + \ TARGET_SONAME_FILE + \ TARGET_SONAME_FILE_DIR + \ TARGET_SONAME_FILE_NAME + \ TARGET_SONAME_IMPORT_FILE + \ TARGET_SONAME_IMPORT_FILE_DIR + \ TARGET_SONAME_IMPORT_FILE_NAME + \ TOLOWER + \ TOUPPER + \ TRANSFORM + \ TRANSFORM_APPEND + \ TRANSFORM_REPLACE + \ TRANSFORM_STRIP + \ TRANSFORM_TOLOWER + \ UNKNOWN + \ UPPER_CASE + \ VERBATIM + \ VERSION_EQUAL + \ VERSION_GREATER_EQUAL + \ VERSION_LESS + \ VERSION_LESS_EQUAL + \ WHOLE_ARCHIVE + \ WRONG + \ _LINK_GROUP_USING_ + \ _LINK_LIBRARY_USING_ + \ _POSTFIX + \ _SUPPORTED syn case ignore syn keyword cmakeCommand - \ add_compile_options add_compile_definitions add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue create_test_sourcelist ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload define_property enable_language enable_testing endfunction endmacro execute_process export file find_file find_library find_package find_path find_program fltk_wrap_ui function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property include include_directories include_external_msproject include_guard include_regular_expression install link_directories list load_cache load_command macro mark_as_advanced math message option project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_libraries target_sources try_compile try_run unset variable_watch + \ add_compile_definitions + \ add_compile_options + \ add_custom_command + \ add_custom_target + \ add_definitions + \ add_dependencies + \ add_executable + \ add_library + \ add_link_options + \ add_subdirectory + \ add_test + \ aux_source_directory + \ block + \ break + \ build_command + \ cmake_file_api + \ cmake_host_system_information + \ cmake_language + \ cmake_minimum_required + \ cmake_parse_arguments + \ cmake_path + \ cmake_policy + \ configure_file + \ continue + \ create_test_sourcelist + \ ctest_build + \ ctest_configure + \ ctest_coverage + \ ctest_empty_binary_directory + \ ctest_memcheck + \ ctest_read_custom_files + \ ctest_run_script + \ ctest_sleep + \ ctest_start + \ ctest_submit + \ ctest_test + \ ctest_update + \ ctest_upload + \ define_property + \ enable_language + \ enable_testing + \ endblock + \ endfunction + \ endmacro + \ execute_process + \ export + \ file + \ find_file + \ find_library + \ find_package + \ find_path + \ find_program + \ fltk_wrap_ui + \ function + \ get_cmake_property + \ get_directory_property + \ get_filename_component + \ get_property + \ get_source_file_property + \ get_target_property + \ get_test_property + \ include + \ include_directories + \ include_external_msproject + \ include_guard + \ include_regular_expression + \ install + \ link_directories + \ list + \ load_cache + \ load_command + \ macro + \ mark_as_advanced + \ math + \ message + \ option + \ project + \ qt_wrap_cpp + \ qt_wrap_ui + \ remove_definitions + \ return + \ separate_arguments + \ set + \ set_directory_properties + \ set_property + \ set_source_files_properties + \ set_target_properties + \ set_tests_properties + \ site_name + \ source_group + \ string + \ target_compile_definitions + \ target_compile_features + \ target_compile_options + \ target_include_directories + \ target_link_directories + \ target_link_libraries + \ target_link_options + \ target_precompile_headers + \ target_sources + \ try_compile + \ try_run + \ unset + \ variable_watch \ nextgroup=cmakeArguments syn keyword cmakeCommandConditional - \ else elseif endif if + \ else + \ elseif + \ endif + \ if \ nextgroup=cmakeArguments syn keyword cmakeCommandRepeat - \ endforeach endwhile foreach while + \ endforeach + \ endwhile + \ foreach + \ while \ nextgroup=cmakeArguments syn keyword cmakeCommandDeprecated - \ build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file + \ build_name + \ exec_program + \ export_library_dependencies + \ install_files + \ install_programs + \ install_targets + \ link_libraries + \ make_directory + \ output_required_files + \ remove + \ subdir_depends + \ subdirs + \ use_mangled_mesa + \ utility_source + \ variable_requires + \ write_file \ nextgroup=cmakeArguments syn case match @@ -356,6 +4820,8 @@ syn keyword cmakeTodo \ TODO FIXME XXX \ contained +hi def link cmakeBracketArgument String +hi def link cmakeBracketComment Comment hi def link cmakeCommand Function hi def link cmakeCommandConditional Conditional hi def link cmakeCommandDeprecated WarningMsg @@ -365,7 +4831,6 @@ hi def link cmakeEnvironment Special hi def link cmakeEscaped Special hi def link cmakeGeneratorExpression WarningMsg hi def link cmakeGeneratorExpressions Constant -hi def link cmakeLuaComment Comment hi def link cmakeModule Include hi def link cmakeProperty Constant hi def link cmakeRegistry Underlined @@ -375,6 +4840,8 @@ hi def link cmakeVariableValue Type hi def link cmakeVariable Identifier hi def link cmakeKWExternalProject ModeMsg +hi def link cmakeKWFetchContent ModeMsg +hi def link cmakeKWadd_compile_definitions ModeMsg hi def link cmakeKWadd_compile_options ModeMsg hi def link cmakeKWadd_custom_command ModeMsg hi def link cmakeKWadd_custom_target ModeMsg @@ -382,13 +4849,17 @@ hi def link cmakeKWadd_definitions ModeMsg hi def link cmakeKWadd_dependencies ModeMsg hi def link cmakeKWadd_executable ModeMsg hi def link cmakeKWadd_library ModeMsg +hi def link cmakeKWadd_link_options ModeMsg hi def link cmakeKWadd_subdirectory ModeMsg hi def link cmakeKWadd_test ModeMsg +hi def link cmakeKWblock ModeMsg hi def link cmakeKWbuild_command ModeMsg -hi def link cmakeKWbuild_name ModeMsg +hi def link cmakeKWcmake_file_api ModeMsg hi def link cmakeKWcmake_host_system_information ModeMsg +hi def link cmakeKWcmake_language ModeMsg hi def link cmakeKWcmake_minimum_required ModeMsg hi def link cmakeKWcmake_parse_arguments ModeMsg +hi def link cmakeKWcmake_path ModeMsg hi def link cmakeKWcmake_policy ModeMsg hi def link cmakeKWconfigure_file ModeMsg hi def link cmakeKWcreate_test_sourcelist ModeMsg @@ -403,7 +4874,9 @@ hi def link cmakeKWctest_test ModeMsg hi def link cmakeKWctest_update ModeMsg hi def link cmakeKWctest_upload ModeMsg hi def link cmakeKWdefine_property ModeMsg +hi def link cmakeKWdoxygen_add_docs ModeMsg hi def link cmakeKWenable_language ModeMsg +hi def link cmakeKWenable_testing ModeMsg hi def link cmakeKWexec_program ModeMsg hi def link cmakeKWexecute_process ModeMsg hi def link cmakeKWexport ModeMsg @@ -433,17 +4906,20 @@ hi def link cmakeKWinstall ModeMsg hi def link cmakeKWinstall_files ModeMsg hi def link cmakeKWinstall_programs ModeMsg hi def link cmakeKWinstall_targets ModeMsg +hi def link cmakeKWlink_directories ModeMsg hi def link cmakeKWlist ModeMsg hi def link cmakeKWload_cache ModeMsg hi def link cmakeKWload_command ModeMsg hi def link cmakeKWmacro ModeMsg -hi def link cmakeKWmake_directory ModeMsg hi def link cmakeKWmark_as_advanced ModeMsg hi def link cmakeKWmath ModeMsg hi def link cmakeKWmessage ModeMsg hi def link cmakeKWoption ModeMsg hi def link cmakeKWproject ModeMsg +hi def link cmakeKWqt_wrap_cpp ModeMsg +hi def link cmakeKWqt_wrap_ui ModeMsg hi def link cmakeKWremove ModeMsg +hi def link cmakeKWreturn ModeMsg hi def link cmakeKWseparate_arguments ModeMsg hi def link cmakeKWset ModeMsg hi def link cmakeKWset_directory_properties ModeMsg @@ -451,6 +4927,7 @@ hi def link cmakeKWset_property ModeMsg hi def link cmakeKWset_source_files_properties ModeMsg hi def link cmakeKWset_target_properties ModeMsg hi def link cmakeKWset_tests_properties ModeMsg +hi def link cmakeKWsite_name ModeMsg hi def link cmakeKWsource_group ModeMsg hi def link cmakeKWstring ModeMsg hi def link cmakeKWsubdirs ModeMsg @@ -458,7 +4935,10 @@ hi def link cmakeKWtarget_compile_definitions ModeMsg hi def link cmakeKWtarget_compile_features ModeMsg hi def link cmakeKWtarget_compile_options ModeMsg hi def link cmakeKWtarget_include_directories ModeMsg +hi def link cmakeKWtarget_link_directories ModeMsg hi def link cmakeKWtarget_link_libraries ModeMsg +hi def link cmakeKWtarget_link_options ModeMsg +hi def link cmakeKWtarget_precompile_headers ModeMsg hi def link cmakeKWtarget_sources ModeMsg hi def link cmakeKWtry_compile ModeMsg hi def link cmakeKWtry_run ModeMsg @@ -466,9 +4946,32 @@ hi def link cmakeKWunset ModeMsg hi def link cmakeKWuse_mangled_mesa ModeMsg hi def link cmakeKWvariable_requires ModeMsg hi def link cmakeKWvariable_watch ModeMsg -hi def link cmakeKWwhile ModeMsg hi def link cmakeKWwrite_file ModeMsg +" Manually added - difficult to parse out of documentation +syn case ignore + +syn keyword cmakeCommandManuallyAdded + \ configure_package_config_file write_basic_package_version_file + \ nextgroup=cmakeArguments + +syn case match + +syn keyword cmakeKWconfigure_package_config_file contained + \ INSTALL_DESTINATION PATH_VARS NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO INSTALL_PREFIX + +syn keyword cmakeKWconfigure_package_config_file_constants contained + \ AnyNewerVersion SameMajorVersion SameMinorVersion ExactVersion + +syn keyword cmakeKWwrite_basic_package_version_file contained + \ VERSION COMPATIBILITY + +hi def link cmakeCommandManuallyAdded Function + +hi def link cmakeKWconfigure_package_config_file ModeMsg +hi def link cmakeKWwrite_basic_package_version_file ModeMsg +hi def link cmakeKWconfigure_package_config_file_constants Constant + let b:current_syntax = "cmake" let &cpo = s:keepcpo From df12e39b8b9dd39056e22b452276622cb7b617fd Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Sat, 16 Dec 2023 13:55:32 +0100 Subject: [PATCH 036/120] patch 9.0.2168: Moving tabpages on :drop may cause an endless loop Problem: Moving tabpages on :drop may cause an endless loop Solution: Disallow moving tabpages on :drop when cleaning up the arglist first Moving tabpages during drop command may cause an endless loop When executing a :tab drop command, Vim will close all windows not in the argument list. This triggers various autocommands. If a user has created an 'au Tabenter * :tabmove -' autocommand, this can cause Vim to end up in an endless loop, when trying to iterate over all tabs (which would trigger the tabmove autocommand, which will change the tpnext pointer, etc). So instead of blocking all autocommands before we actually try to edit the given file, lets simply disallow to move tabpages around. Otherwise, we may change the expected number of events triggered during a :drop command, which users may rely on (there is actually a test, that expects various TabLeave/TabEnter autocommands) and would therefore be a backwards incompatible change. Don't make this an error, as this could trigger several times during the drop command, but silently ignore the :tabmove command in this case (and it should in fact finally trigger successfully when loading the given file in a new tab). So let's just be quiet here instead. fixes: #13676 closes: #13686 Signed-off-by: Christian Brabandt --- src/arglist.c | 4 ++++ src/globals.h | 5 +++-- src/testdir/test_tabpage.vim | 19 +++++++++++++++++++ src/version.c | 2 ++ src/window.c | 3 +++ 5 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/arglist.c b/src/arglist.c index a63f6c72f8..d28b31da43 100644 --- a/src/arglist.c +++ b/src/arglist.c @@ -983,6 +983,9 @@ arg_all_close_unused_windows(arg_all_state_T *aall) if (aall->had_tab > 0) goto_tabpage_tp(first_tabpage, TRUE, TRUE); + + // moving tabpages around in an autocommand may cause an endless loop + tabpage_move_disallowed++; for (;;) { tpnext = curtab->tp_next; @@ -1093,6 +1096,7 @@ arg_all_close_unused_windows(arg_all_state_T *aall) goto_tabpage_tp(tpnext, TRUE, TRUE); } + tabpage_move_disallowed--; } /* diff --git a/src/globals.h b/src/globals.h index d54e311837..c03fe97db9 100644 --- a/src/globals.h +++ b/src/globals.h @@ -792,8 +792,9 @@ EXTERN int is_mac_terminal INIT(= FALSE); // recognized Terminal.app #endif EXTERN int autocmd_busy INIT(= FALSE); // Is apply_autocmds() busy? -EXTERN int autocmd_no_enter INIT(= FALSE); // *Enter autocmds disabled -EXTERN int autocmd_no_leave INIT(= FALSE); // *Leave autocmds disabled +EXTERN int autocmd_no_enter INIT(= FALSE); // Buf/WinEnter autocmds disabled +EXTERN int autocmd_no_leave INIT(= FALSE); // Buf/WinLeave autocmds disabled +EXTERN int tabpage_move_disallowed INIT(= FALSE); // moving tabpages around disallowed EXTERN int modified_was_set; // did ":set modified" EXTERN int did_filetype INIT(= FALSE); // FileType event found diff --git a/src/testdir/test_tabpage.vim b/src/testdir/test_tabpage.vim index eed26f7221..906fefcab6 100644 --- a/src/testdir/test_tabpage.vim +++ b/src/testdir/test_tabpage.vim @@ -903,4 +903,23 @@ func Test_tabpage_last_line() bwipe! endfunc +" this was causing an endless loop +func Test_tabpage_drop_tabmove() + augroup TestTabpageTabmove + au! + autocmd! TabEnter * :if tabpagenr() > 1 | tabmove - | endif + augroup end + $tab drop XTab_99.log + $tab drop XTab_98.log + $tab drop XTab_97.log + + autocmd! TestTabpageTabmove + augroup! TestTabpageTabmove + + " clean up + bwipe! + bwipe! + bwipe! +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index a81665af11..03f44e4626 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2168, /**/ 2167, /**/ diff --git a/src/window.c b/src/window.c index be010dc7fd..9f80657124 100644 --- a/src/window.c +++ b/src/window.c @@ -4970,6 +4970,9 @@ tabpage_move(int nr) if (first_tabpage->tp_next == NULL) return; + if (tabpage_move_disallowed) + return; + for (tp = first_tabpage; tp->tp_next != NULL && n < nr; tp = tp->tp_next) ++n; From d8bf87c9fbd92fd6b837446e886d47e557adadbc Mon Sep 17 00:00:00 2001 From: Ernie Rael Date: Sat, 16 Dec 2023 14:03:33 +0100 Subject: [PATCH 037/120] patch 9.0.2169: Vim9: builtin funcs may accept a non-value Problem: Vim9: builtin funcs may accept a non-value Solution: Restrict builtin functions that accept `type` This PR finishes off detection and prevention of using a type as a value. It takes care of builtin functions. However there are some builtin functions, that need to be able to handle types as well as non-args: instanceof(), type(), typename(), string(). A "bit", FE_X, is added to funcentry_T; when set, the builtin function can handle a type (class or type-alias) in addition to a value. Noteworthy change: Discovered that in compile_call() the builtin add() is compiled inline instead of calling the builtin. Had to add a check there. closes: #13688 Signed-off-by: Ernie Rael Signed-off-by: Christian Brabandt --- src/evalfunc.c | 75 +++++++++++--- src/proto/vim9type.pro | 1 - src/testdir/test_vim9_builtin.vim | 149 ++++++++++++++++++++++++++++ src/testdir/test_vim9_typealias.vim | 140 +++++++++++++++++++++++++- src/version.c | 2 + src/vim9expr.c | 2 + src/vim9type.c | 27 ++--- 7 files changed, 354 insertions(+), 42 deletions(-) diff --git a/src/evalfunc.c b/src/evalfunc.c index a8d8d2c587..f87c08ffc5 100644 --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -1651,7 +1651,7 @@ typedef struct char *f_name; // function name char f_min_argc; // minimal number of arguments char f_max_argc; // maximal number of arguments - char f_argtype; // for method: FEARG_ values + char f_argtype; // for method: FEARG_ values; bits FE_ argcheck_T *f_argcheck; // list of functions to check argument types; // use "arg_any" (not NULL) to accept an // argument of any type @@ -1666,10 +1666,12 @@ typedef struct #define VARGS CHAR_MAX // values for f_argtype; zero means it cannot be used as a method -#define FEARG_1 1 // base is the first argument -#define FEARG_2 2 // base is the second argument -#define FEARG_3 3 // base is the third argument -#define FEARG_4 4 // base is the fourth argument +#define FEARG_1 0x01 // base is the first argument +#define FEARG_2 0x02 // base is the second argument +#define FEARG_3 0x03 // base is the third argument +#define FEARG_4 0x04 // base is the fourth argument +#define FEARG_MASK 0x0F // bits in f_argtype used as argument index +#define FE_X 0x10 // builtin accepts a non-value (class, typealias) #if defined(HAVE_MATH_H) # define MATH_FUNC(name) name @@ -2181,7 +2183,7 @@ static funcentry_T global_functions[] = ret_string, f_inputsecret}, {"insert", 2, 3, FEARG_1, arg23_insert, ret_first_arg, f_insert}, - {"instanceof", 2, VARGS, FEARG_1, arg2_instanceof, + {"instanceof", 2, VARGS, FEARG_1|FE_X, arg2_instanceof, ret_bool, f_instanceof}, {"interrupt", 0, 0, 0, NULL, ret_void, f_interrupt}, @@ -2659,7 +2661,7 @@ static funcentry_T global_functions[] = ret_number, f_strgetchar}, {"stridx", 2, 3, FEARG_1, arg3_string_string_number, ret_number, f_stridx}, - {"string", 1, 1, FEARG_1, NULL, + {"string", 1, 1, FEARG_1|FE_X, NULL, ret_string, f_string}, {"strlen", 1, 1, FEARG_1, arg1_string_or_nr, ret_number, f_strlen}, @@ -2821,7 +2823,7 @@ static funcentry_T global_functions[] = ret_void, f_test_option_not_set}, {"test_override", 2, 2, FEARG_2, arg2_string_number, ret_void, f_test_override}, - {"test_refcount", 1, 1, FEARG_1, NULL, + {"test_refcount", 1, 1, FEARG_1|FE_X, NULL, ret_number, f_test_refcount}, {"test_setmouse", 2, 2, 0, arg2_number, ret_void, f_test_setmouse}, @@ -2853,9 +2855,9 @@ static funcentry_T global_functions[] = ret_string, f_trim}, {"trunc", 1, 1, FEARG_1, arg1_float_or_nr, ret_float, f_trunc}, - {"type", 1, 1, FEARG_1, NULL, + {"type", 1, 1, FEARG_1|FE_X, NULL, ret_number, f_type}, - {"typename", 1, 1, FEARG_1, NULL, + {"typename", 1, 1, FEARG_1|FE_X, NULL, ret_string, f_typename}, {"undofile", 1, 1, FEARG_1, arg1_string, ret_string, f_undofile}, @@ -2927,6 +2929,15 @@ static funcentry_T global_functions[] = ret_number, f_xor}, }; +/* + * Return true if specified function allows a type as an argument. + */ + static int +func_allows_type(int idx) +{ + return (global_functions[idx].f_argtype & FE_X) != 0; +} + /* * Function given to ExpandGeneric() to obtain the list of internal * or user defined function names. @@ -3059,6 +3070,15 @@ internal_func_check_arg_types( int argcount, cctx_T *cctx) { + // Some internal functions accept types like Class as arguments. For other + // functions, check the arguments are not types. + if (!(func_allows_type(idx))) + { + for (int i = 0; i < argcount; ++i) + if (check_type_is_value(types[i].type_curr) == FAIL) + return FAIL; + } + argcheck_T *argchecks = global_functions[idx].f_argcheck; if (argchecks == NULL) @@ -3143,7 +3163,7 @@ check_internal_func(int idx, int argcount) else if (argcount > global_functions[idx].f_max_argc) res = FCERR_TOOMANY; else - return global_functions[idx].f_argtype; + return global_functions[idx].f_argtype & FEARG_MASK; name = internal_func_name(idx); if (res == FCERR_TOOMANY) @@ -3153,6 +3173,24 @@ check_internal_func(int idx, int argcount) return -1; } +/* + * Some internal functions accept types like Class as arguments. For other + * functions, check the arguments are not types. + * + * Return OK/FAIL. + */ + static int +check_args_for_type(int idx, int argcount, typval_T *argvars) +{ + if (!func_allows_type(idx)) + { + for (int i = 0; i < argcount; ++i) + if (check_typval_is_value(&argvars[i]) == FAIL) + return FAIL; + } + return OK; +} + funcerror_T call_internal_func( char_u *name, @@ -3169,6 +3207,8 @@ call_internal_func( return FCERR_TOOFEW; if (argcount > global_functions[i].f_max_argc) return FCERR_TOOMANY; + if (check_args_for_type(i, argcount, argvars) == FAIL) + return FCERR_OTHER; argvars[argcount].v_type = VAR_UNKNOWN; global_functions[i].f_func(argvars, rettv); return FCERR_NONE; @@ -3200,14 +3240,16 @@ call_internal_method( fi = find_internal_func(name); if (fi < 0) return FCERR_UNKNOWN; - if (global_functions[fi].f_argtype == 0) + if ((global_functions[fi].f_argtype & FEARG_MASK) == 0) return FCERR_NOTMETHOD; if (argcount + 1 < global_functions[fi].f_min_argc) return FCERR_TOOFEW; if (argcount + 1 > global_functions[fi].f_max_argc) return FCERR_TOOMANY; + if (check_args_for_type(fi, argcount, argvars) == FAIL) + return FCERR_OTHER; - if (global_functions[fi].f_argtype == FEARG_2) + if ((global_functions[fi].f_argtype & FEARG_MASK) == FEARG_2) { if (argcount < 1) return FCERR_TOOFEW; @@ -3218,7 +3260,7 @@ call_internal_method( for (int i = 1; i < argcount; ++i) argv[i + 1] = argvars[i]; } - else if (global_functions[fi].f_argtype == FEARG_3) + else if ((global_functions[fi].f_argtype & FEARG_MASK) == FEARG_3) { if (argcount < 2) return FCERR_TOOFEW; @@ -3230,7 +3272,7 @@ call_internal_method( for (int i = 2; i < argcount; ++i) argv[i + 1] = argvars[i]; } - else if (global_functions[fi].f_argtype == FEARG_4) + else if ((global_functions[fi].f_argtype & FEARG_MASK) == FEARG_4) { if (argcount < 3) return FCERR_TOOFEW; @@ -3252,6 +3294,9 @@ call_internal_method( } argv[argcount + 1].v_type = VAR_UNKNOWN; + if (check_args_for_type(fi, argcount + 1, argv) == FAIL) + return FCERR_OTHER; + global_functions[fi].f_func(argv, rettv); return FCERR_NONE; } diff --git a/src/proto/vim9type.pro b/src/proto/vim9type.pro index 1643e0c0fb..093a5ec35f 100644 --- a/src/proto/vim9type.pro +++ b/src/proto/vim9type.pro @@ -36,7 +36,6 @@ type_T *get_member_type_from_stack(int count, int skip, cctx_T *cctx); char *vartype_name(vartype_T type); char *type_name(type_T *type, char **tofree); void f_typename(typval_T *argvars, typval_T *rettv); -int check_vartype_is_value(vartype_T typ); int check_typval_is_value(typval_T *tv); int check_type_is_value(type_T *type); /* vim: set ft=c : */ diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim index 1267936885..9af0d07090 100644 --- a/src/testdir/test_vim9_builtin.vim +++ b/src/testdir/test_vim9_builtin.vim @@ -5048,4 +5048,153 @@ def Test_writefile() v9.CheckDefExecAndScriptFailure(['writefile(["a"], "")'], 'E482: Can''t create file ') enddef +def Test_passing_type_to_builtin() + # type, typename, string, instanceof are allowed type argument + var lines =<< trim END + vim9script + class C + endclass + type T = number + type U = C + var x: any + x = type(C) + x = type(T) + x = typename(C) + x = typename(T) + x = string(C) + x = string(T) + x = instanceof(C.new(), U, C) + END + v9.CheckScriptSuccess(lines) + + # check argument to add at script level + # Note: add() is special cased in compile_call in vim9expr + lines =<< trim END + vim9script + class C + endclass + add([], C) + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + # check argument to add in :def + lines =<< trim END + vim9script + class C + endclass + def F() + add([], C) + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + # check member call argument to add at script level + lines =<< trim END + vim9script + class C + endclass + []->add(C) + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + # check member call argument to add in :def + lines =<< trim END + vim9script + class C + endclass + def F() + []->add(C) + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + # Try "empty()" builtin + # check argument to empty at script level + lines =<< trim END + vim9script + class C + endclass + empty(C) + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + # check argument to empty in :def + lines =<< trim END + vim9script + class C + endclass + def F() + empty(C) + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + # check member call argument to empty at script level + lines =<< trim END + vim9script + class C + endclass + C->empty() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + # check member call argument to empty in :def + lines =<< trim END + vim9script + class C + endclass + def F() + C->empty() + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + # Try "abs()" builtin + # check argument to abs at script level + lines =<< trim END + vim9script + class C + endclass + abs(C) + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + # check argument to abs in :def + lines =<< trim END + vim9script + class C + endclass + def F() + abs(C) + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + # check member call argument to abs at script level + lines =<< trim END + vim9script + class C + endclass + C->abs() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') + + # check member call argument to abs in :def + lines =<< trim END + vim9script + class C + endclass + def F() + C->abs() + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value') +enddef + " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker diff --git a/src/testdir/test_vim9_typealias.vim b/src/testdir/test_vim9_typealias.vim index e735e7980f..4f887689cf 100644 --- a/src/testdir/test_vim9_typealias.vim +++ b/src/testdir/test_vim9_typealias.vim @@ -296,7 +296,7 @@ def Test_typealias() type A = list var x = json_encode(A) END - v9.CheckSourceFailure(lines, 'E1161: Cannot json encode a typealias', 3) + v9.CheckSourceFailure(lines, 'E1403: Type alias "A" cannot be used as a value', 3) # Comparing type alias with a number (script level) lines =<< trim END @@ -452,9 +452,9 @@ def Test_typealias_with_builtin_functions() var lines =<< trim END vim9script type A = list - assert_equal(0, empty(A)) + var x = empty(A) END - v9.CheckScriptSuccess(lines) + v9.CheckScriptFailure(lines, 'E1403: Type alias "A" cannot be used as a value', 3) # Using a type alias with len() lines =<< trim END @@ -462,7 +462,7 @@ def Test_typealias_with_builtin_functions() type A = list var x = len(A) END - v9.CheckScriptFailure(lines, 'E701: Invalid type for len()', 3) + v9.CheckScriptFailure(lines, 'E1403: Type alias "A" cannot be used as a value', 3) # Using a type alias with len() lines =<< trim END @@ -473,7 +473,7 @@ def Test_typealias_with_builtin_functions() enddef Foo() END - v9.CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected list but got typealias', 1) + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value', 1) # Using a type alias with eval() lines =<< trim END @@ -780,4 +780,134 @@ def Test_class_as_func_argument_or_return_value() v9.CheckScriptFailure(lines, 'E1405: Class "C" cannot be used as a value', 1) enddef +def Test_passing_typealias_to_builtin() + # type, typename, string, instanceof are allowed type argument + var lines =<< trim END + vim9script + type T = number + var x: any + x = type(T) + x = typename(T) + x = string(T) + END + v9.CheckScriptSuccess(lines) + + # check argument to add at script level + # Note: add() is special cased in compile_call in vim9expr + lines =<< trim END + vim9script + type T = number + add([], T) + END + v9.CheckScriptFailure(lines, 'E1403: Type alias "T" cannot be used as a value') + + # check argument to add in :def + lines =<< trim END + vim9script + type T = number + def F() + add([], T) + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value') + + # check member call argument to add at script level + lines =<< trim END + vim9script + type T = number + []->add(T) + END + v9.CheckScriptFailure(lines, 'E1403: Type alias "T" cannot be used as a value') + + # check member call argument to add in :def + lines =<< trim END + vim9script + type T = number + def F() + []->add(T) + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value') + + # Try "empty()" builtin + # check argument to empty at script level + lines =<< trim END + vim9script + type T = number + empty(T) + END + v9.CheckScriptFailure(lines, 'E1403: Type alias "T" cannot be used as a value') + + # check argument to empty in :def + lines =<< trim END + vim9script + type T = number + def F() + empty(T) + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value') + + # check member call argument to empty at script level + lines =<< trim END + vim9script + type T = number + T->empty() + END + v9.CheckScriptFailure(lines, 'E1403: Type alias "T" cannot be used as a value') + + # check member call argument to empty in :def + lines =<< trim END + vim9script + type T = number + def F() + T->empty() + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value') + + # Try "abs()" builtin + # check argument to abs at script level + lines =<< trim END + vim9script + type T = number + abs(T) + END + v9.CheckScriptFailure(lines, 'E1403: Type alias "T" cannot be used as a value') + + # check argument to abs in :def + lines =<< trim END + vim9script + type T = number + def F() + abs(T) + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value') + + # check member call argument to abs at script level + lines =<< trim END + vim9script + type T = number + T->abs() + END + v9.CheckScriptFailure(lines, 'E1403: Type alias "T" cannot be used as a value') + + # check member call argument to abs in :def + lines =<< trim END + vim9script + type T = number + def F() + T->abs() + enddef + F() + END + v9.CheckScriptFailure(lines, 'E1407: Cannot use a Typealias as a variable or value') +enddef + " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker diff --git a/src/version.c b/src/version.c index 03f44e4626..771612024d 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2169, /**/ 2168, /**/ diff --git a/src/vim9expr.c b/src/vim9expr.c index a79bb39f7d..31fa824a7b 100644 --- a/src/vim9expr.c +++ b/src/vim9expr.c @@ -1143,6 +1143,8 @@ compile_call( if (STRCMP(name, "add") == 0 && argcount == 2) { type_T *type = get_decl_type_on_stack(cctx, 1); + if (check_type_is_value(get_type_on_stack(cctx, 0)) == FAIL) + goto theend; // add() can be compiled to instructions if we know the type if (type->tt_type == VAR_LIST) diff --git a/src/vim9type.c b/src/vim9type.c index 8840c37ccc..423043a84a 100644 --- a/src/vim9type.c +++ b/src/vim9type.c @@ -1867,6 +1867,8 @@ f_typename(typval_T *argvars, typval_T *rettv) int check_typval_is_value(typval_T *tv) { + if (tv == NULL) + return OK; if (tv->v_type == VAR_CLASS) { semsg(_(e_using_class_as_value_str), tv->vval.v_class->class_name); @@ -1886,6 +1888,8 @@ check_typval_is_value(typval_T *tv) int check_type_is_value(type_T *type) { + if (type == NULL) + return OK; if (type->tt_type == VAR_CLASS) { semsg(_(e_using_class_as_value_str), type->tt_class->class_name); @@ -1893,31 +1897,12 @@ check_type_is_value(type_T *type) } else if (type->tt_type == VAR_TYPEALIAS) { - // Not sure what could be done here to get a name - // TODO: MAYBE AN OPTIONAL ARGUMENT + // TODO: Not sure what could be done here to get a name. + // Maybe an optional argument? emsg(_(e_using_typealias_as_var_val)); return FAIL; } return OK; } -/* - * Same as above, except check vartype_T. - */ - int -check_vartype_is_value(vartype_T typ) -{ - if (typ == VAR_CLASS) - { - emsg(_(e_using_class_as_var_val)); - return FAIL; - } - else if (typ == VAR_TYPEALIAS) - { - emsg(_(e_using_typealias_as_var_val)); - return FAIL; - } - return OK; -} - #endif // FEAT_EVAL From e5437c542709b77ade084f96e60d84d4e847e6d3 Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Sat, 16 Dec 2023 14:11:19 +0100 Subject: [PATCH 038/120] patch 9.0.2170: Vim9: no support for const/final class/objects vars Problem: Vim9: no support for const/final class/objects vars Solution: Support final and const object and class variables closes: #13655 Signed-off-by: Yegappan Lakshmanan Signed-off-by: Christian Brabandt --- runtime/doc/tags | 5 + runtime/doc/todo.txt | 3 +- runtime/doc/vim9class.txt | 74 +++- src/errors.h | 16 +- src/eval.c | 7 + src/proto/vim9class.pro | 2 + src/structs.h | 6 +- src/testdir/test_vim9_class.vim | 608 ++++++++++++++++++++++++++++++++ src/version.c | 2 + src/vim9class.c | 114 +++++- src/vim9compile.c | 12 +- src/vim9execute.c | 6 +- 12 files changed, 834 insertions(+), 21 deletions(-) diff --git a/runtime/doc/tags b/runtime/doc/tags index 964789c316..0b9cdffaa4 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -4505,7 +4505,10 @@ E1401 vim9class.txt /*E1401* E1402 vim9class.txt /*E1402* E1403 vim9class.txt /*E1403* E1407 vim9class.txt /*E1407* +E1408 vim9class.txt /*E1408* +E1409 vim9class.txt /*E1409* E141 message.txt /*E141* +E1410 vim9class.txt /*E1410* E142 message.txt /*E142* E143 autocmd.txt /*E143* E144 various.txt /*E144* @@ -9096,6 +9099,8 @@ o_V motion.txt /*o_V* o_object-select motion.txt /*o_object-select* o_v motion.txt /*o_v* object vim9class.txt /*object* +object-const-variable vim9class.txt /*object-const-variable* +object-final-variable vim9class.txt /*object-final-variable* object-motions motion.txt /*object-motions* object-select motion.txt /*object-select* objects index.txt /*objects* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 5e844a0b03..afe5aed539 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 9.0. Last change: 2023 Jun 08 +*todo.txt* For Vim version 9.0. Last change: 2023 Dec 14 VIM REFERENCE MANUAL by Bram Moolenaar @@ -122,7 +122,6 @@ Upcoming larger works: Further Vim9 improvements: - Classes and Interfaces. See |vim9-classes| - - "final" object members - can only be set in the constructor. - Cannot use class type of itself in the method (Issue #12369) - Getting member of variable with "any" type should be handled at runtime. Remove temporary solution from #12096 / patch 9.0.1375. diff --git a/runtime/doc/vim9class.txt b/runtime/doc/vim9class.txt index 97813f0ee2..4dc67bd872 100644 --- a/runtime/doc/vim9class.txt +++ b/runtime/doc/vim9class.txt @@ -364,6 +364,78 @@ super class. Depending on the class where the member is used the corresponding class member will be used. The type of the class member in a child class can be different from that in the super class. + *object-final-variable* *E1409* +The |:final| keyword can be used to make a class or object variable a +constant. Examples: > + + class A + final v1 = [1, 2] # final object variable + public final v2 = {x: 1} # final object variable + static final v3 = 'abc' # final class variable + public static final v4 = 0z10 # final class variable + endclass +< +A final variable can be changed only from a constructor function. Example: > + + class A + final v1: list + def new() + this.v1 = [1, 2] + enddef + endclass + var a = A.new() + echo a.v1 +< +Note that the value of a final variable can be changed. Example: > + + class A + public final v1 = [1, 2] + endclass + var a = A.new() + a.v1[0] = 6 # OK + a.v1->add(3) # OK + a.v1 = [3, 4] # Error +< + *E1408* +Final variables are not supported in an interface. A class or object method +cannot be final. + + *object-const-variable* +The |:const| keyword can be used to make a class or object variable and the +value a constant. Examples: > + + class A + const v1 = [1, 2] # const object variable + public const v2 = {x: 1} # const object variable + static const v3 = 'abc' # const class variable + public static const v4 = 0z10 # const class variable + endclass +< +A const variable can be changed only from a constructor function. Example: > + + class A + const v1: list + def new() + this.v1 = [1, 2] + enddef + endclass + var a = A.new() + echo a.v1 +< +A const variable and its value cannot be changed. Example: > + + class A + public const v1 = [1, 2] + endclass + var a = A.new() + a.v1[0] = 6 # Error + a.v1->add(3) # Error + a.v1 = [3, 4] # Error +< + *E1410* +Const variables are not supported in an interface. A class or object method +cannot be a const. + ============================================================================== 4. Using an abstract class *Vim9-abstract-class* @@ -982,8 +1054,6 @@ function declaration syntax for class/object variables and methods. Vim9 also reuses the general function declaration syntax for methods. So, for the sake of consistency, we require "var" in these declarations. -This also allows for a natural use of "final" and "const" in the future. - Using "ClassName.new()" to construct an object ~ diff --git a/src/errors.h b/src/errors.h index b6abf4a1d8..5eac961237 100644 --- a/src/errors.h +++ b/src/errors.h @@ -3406,8 +3406,8 @@ EXTERN char e_invalid_class_variable_declaration_str[] INIT(= N_("E1329: Invalid class variable declaration: %s")); EXTERN char e_invalid_type_for_object_variable_str[] INIT(= N_("E1330: Invalid type for object variable: %s")); -EXTERN char e_public_must_be_followed_by_var_or_static[] - INIT(= N_("E1331: Public must be followed by \"var\" or \"static\"")); +EXTERN char e_public_must_be_followed_by_var_static_final_or_const[] + INIT(= N_("E1331: Public must be followed by \"var\" or \"static\" or \"final\" or \"const\"")); EXTERN char e_public_variable_name_cannot_start_with_underscore_str[] INIT(= N_("E1332: Public variable name cannot start with underscore: %s")); EXTERN char e_cannot_access_protected_variable_str[] @@ -3488,8 +3488,8 @@ EXTERN char e_cannot_access_protected_method_str[] INIT(= N_("E1366: Cannot access protected method: %s")); EXTERN char e_variable_str_of_interface_str_has_different_access[] INIT(= N_("E1367: Access level of variable \"%s\" of interface \"%s\" is different")); -EXTERN char e_static_must_be_followed_by_var_or_def[] - INIT(= N_("E1368: Static must be followed by \"var\" or \"def\"")); +EXTERN char e_static_must_be_followed_by_var_def_final_or_const[] + INIT(= N_("E1368: Static must be followed by \"var\" or \"def\" or \"final\" or \"const\"")); EXTERN char e_duplicate_variable_str[] INIT(= N_("E1369: Duplicate variable: %s")); EXTERN char e_cannot_define_new_method_as_static[] @@ -3568,8 +3568,14 @@ EXTERN char e_using_class_as_var_val[] INIT(= N_("E1406: Cannot use a Class as a variable or value")); EXTERN char e_using_typealias_as_var_val[] INIT(= N_("E1407: Cannot use a Typealias as a variable or value")); +EXTERN char e_final_variable_not_supported_in_interface[] + INIT(= N_("E1408: Final variable not supported in an interface")); +EXTERN char e_cannot_change_readonly_variable_str_in_class_str[] + INIT(= N_("E1409: Cannot change read-only variable \"%s\" in class \"%s\"")); +EXTERN char e_const_variable_not_supported_in_interface[] + INIT(= N_("E1410: Const variable not supported in an interface")); #endif -// E1408 - E1499 unused (reserved for Vim9 class support) +// E1411 - E1499 unused (reserved for Vim9 class support) EXTERN char e_cannot_mix_positional_and_non_positional_str[] INIT(= N_("E1500: Cannot mix positional and non-positional arguments: %s")); EXTERN char e_fmt_arg_nr_unused_str[] diff --git a/src/eval.c b/src/eval.c index 0579a85f69..877a20ff28 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1778,6 +1778,13 @@ get_lval( p, flags) == FAIL) return NULL; + // When lhs is used to modify the variable, check it is + // not a read-only variable. + if ((flags & GLV_READ_ONLY) == 0 + && (*p != '.' && *p != '[') + && oc_var_check_ro(cl, om)) + return NULL; + lp->ll_valtype = om->ocm_type; if (v_type == VAR_OBJECT) diff --git a/src/proto/vim9class.pro b/src/proto/vim9class.pro index 3000f57a38..99a14ccdc2 100644 --- a/src/proto/vim9class.pro +++ b/src/proto/vim9class.pro @@ -18,6 +18,8 @@ ocmember_T *member_lookup(class_T *cl, vartype_T v_type, char_u *name, size_t na void emsg_var_cl_define(char *msg, char_u *name, size_t len, class_T *cl); ufunc_T *method_lookup(class_T *cl, vartype_T v_type, char_u *name, size_t namelen, int *idx); int inside_class(cctx_T *cctx_arg, class_T *cl); +int oc_var_check_ro(class_T *cl, ocmember_T *m); +void obj_lock_const_vars(object_T *obj); void copy_object(typval_T *from, typval_T *to); void copy_class(typval_T *from, typval_T *to); void class_unref(class_T *cl); diff --git a/src/structs.h b/src/structs.h index de02bc6645..3b51e0c8f1 100644 --- a/src/structs.h +++ b/src/structs.h @@ -1523,14 +1523,18 @@ typedef enum { VIM_ACCESS_ALL // read/write everywhere } omacc_T; +#define OCMFLAG_HAS_TYPE 0x01 // type specified explicitly +#define OCMFLAG_FINAL 0x02 // "final" object/class member +#define OCMFLAG_CONST 0x04 // "const" object/class member + /* * Entry for an object or class member variable. */ typedef struct { char_u *ocm_name; // allocated omacc_T ocm_access; - int ocm_has_type; // type specified explicitly type_T *ocm_type; + int ocm_flags; char_u *ocm_init; // allocated } ocmember_T; diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim index bb806cce91..c28716aa1b 100644 --- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -9051,4 +9051,612 @@ def Test_compile_many_def_functions_in_funcref_instr() assert_equal(0, v:shell_error) enddef +" Test for 'final' class and object variables +def Test_final_class_object_variable() + # Test for changing a final object variable from an object function + var lines =<< trim END + vim9script + class A + final foo: string = "abc" + def Foo() + this.foo = "def" + enddef + endclass + defcompile A.Foo + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "foo" in class "A"', 1) + + # Test for changing a final object variable from the 'new' function + lines =<< trim END + vim9script + class A + final s1: string + final s2: string + def new(this.s1) + this.s2 = 'def' + enddef + endclass + var a = A.new('abc') + assert_equal('abc', a.s1) + assert_equal('def', a.s2) + END + v9.CheckSourceSuccess(lines) + + # Test for a final class variable + lines =<< trim END + vim9script + class A + static final s1: string = "abc" + endclass + assert_equal('abc', A.s1) + END + v9.CheckSourceSuccess(lines) + + # Test for changing a final class variable from a class function + lines =<< trim END + vim9script + class A + static final s1: string = "abc" + static def Foo() + s1 = "def" + enddef + endclass + A.Foo() + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "s1" in class "A"', 1) + + # Test for changing a public final class variable at script level + lines =<< trim END + vim9script + class A + public static final s1: string = "abc" + endclass + assert_equal('abc', A.s1) + A.s1 = 'def' + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "s1" in class "A"', 6) + + # Test for changing a public final class variable from a class function + lines =<< trim END + vim9script + class A + public static final s1: string = "abc" + static def Foo() + s1 = "def" + enddef + endclass + A.Foo() + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "s1" in class "A"', 1) + + # Test for changing a public final class variable from a function + lines =<< trim END + vim9script + class A + public static final s1: string = "abc" + endclass + def Foo() + A.s1 = 'def' + enddef + defcompile + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "s1" in class "A"', 1) + + # Test for using a final variable of composite type + lines =<< trim END + vim9script + class A + public final l: list + def new() + this.l = [1, 2] + enddef + def Foo() + this.l[0] = 3 + this.l->add(4) + enddef + endclass + var a = A.new() + assert_equal([1, 2], a.l) + a.Foo() + assert_equal([3, 2, 4], a.l) + END + v9.CheckSourceSuccess(lines) + + # Test for changing a final variable of composite type from another object + # function + lines =<< trim END + vim9script + class A + public final l: list = [1, 2] + def Foo() + this.l = [3, 4] + enddef + endclass + var a = A.new() + a.Foo() + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "l" in class "A"', 1) + + # Test for modifying a final variable of composite type at script level + lines =<< trim END + vim9script + class A + public final l: list = [1, 2] + endclass + var a = A.new() + a.l[0] = 3 + a.l->add(4) + assert_equal([3, 2, 4], a.l) + END + v9.CheckSourceSuccess(lines) + + # Test for modifying a final variable of composite type from a function + lines =<< trim END + vim9script + class A + public final l: list = [1, 2] + endclass + def Foo() + var a = A.new() + a.l[0] = 3 + a.l->add(4) + assert_equal([3, 2, 4], a.l) + enddef + Foo() + END + v9.CheckSourceSuccess(lines) + + # Test for modifying a final variable of composite type from another object + # function + lines =<< trim END + vim9script + class A + public final l: list = [1, 2] + def Foo() + this.l[0] = 3 + this.l->add(4) + enddef + endclass + var a = A.new() + a.Foo() + assert_equal([3, 2, 4], a.l) + END + v9.CheckSourceSuccess(lines) + + # Test for assigning a new value to a final variable of composite type at + # script level + lines =<< trim END + vim9script + class A + public final l: list = [1, 2] + endclass + var a = A.new() + a.l = [3, 4] + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "l" in class "A"', 6) + + # Test for assigning a new value to a final variable of composite type from + # another object function + lines =<< trim END + vim9script + class A + public final l: list = [1, 2] + def Foo() + this.l = [3, 4] + enddef + endclass + var a = A.new() + a.Foo() + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "l" in class "A"', 1) + + # Test for assigning a new value to a final variable of composite type from + # another function + lines =<< trim END + vim9script + class A + public final l: list = [1, 2] + endclass + def Foo() + var a = A.new() + a.l = [3, 4] + enddef + Foo() + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "l" in class "A"', 2) + + # Error case: Use 'final' with just a variable name + lines =<< trim END + vim9script + class A + final foo + endclass + var a = A.new() + END + v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) + + # Error case: Use 'final' followed by 'public' + lines =<< trim END + vim9script + class A + final public foo: number + endclass + var a = A.new() + END + v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) + + # Error case: Use 'final' followed by 'static' + lines =<< trim END + vim9script + class A + final static foo: number + endclass + var a = A.new() + END + v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) + + # Error case: 'final' cannot be used in an interface + lines =<< trim END + vim9script + interface A + final foo: number = 10 + endinterface + END + v9.CheckSourceFailure(lines, 'E1408: Final variable not supported in an interface', 3) + + # Error case: 'final' not supported for an object method + lines =<< trim END + vim9script + class A + final def Foo() + enddef + endclass + END + v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) + + # Error case: 'final' not supported for a class method + lines =<< trim END + vim9script + class A + static final def Foo() + enddef + endclass + END + v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) +enddef + +" Test for 'const' class and object variables +def Test_const_class_object_variable() + # Test for changing a const object variable from an object function + var lines =<< trim END + vim9script + class A + const foo: string = "abc" + def Foo() + this.foo = "def" + enddef + endclass + defcompile A.Foo + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "foo" in class "A"', 1) + + # Test for changing a const object variable from the 'new' function + lines =<< trim END + vim9script + class A + const s1: string + const s2: string + def new(this.s1) + this.s2 = 'def' + enddef + endclass + var a = A.new('abc') + assert_equal('abc', a.s1) + assert_equal('def', a.s2) + END + v9.CheckSourceSuccess(lines) + + # Test for changing a const object variable from an object method called from + # the 'new' function + lines =<< trim END + vim9script + class A + const s1: string = 'abc' + def new() + this.ChangeStr() + enddef + def ChangeStr() + this.s1 = 'def' + enddef + endclass + var a = A.new() + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "s1" in class "A"', 1) + + # Test for a const class variable + lines =<< trim END + vim9script + class A + static const s1: string = "abc" + endclass + assert_equal('abc', A.s1) + END + v9.CheckSourceSuccess(lines) + + # Test for changing a const class variable from a class function + lines =<< trim END + vim9script + class A + static const s1: string = "abc" + static def Foo() + s1 = "def" + enddef + endclass + A.Foo() + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "s1" in class "A"', 1) + + # Test for changing a public const class variable at script level + lines =<< trim END + vim9script + class A + public static const s1: string = "abc" + endclass + assert_equal('abc', A.s1) + A.s1 = 'def' + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "s1" in class "A"', 6) + + # Test for changing a public const class variable from a class function + lines =<< trim END + vim9script + class A + public static const s1: string = "abc" + static def Foo() + s1 = "def" + enddef + endclass + A.Foo() + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "s1" in class "A"', 1) + + # Test for changing a public const class variable from a function + lines =<< trim END + vim9script + class A + public static const s1: string = "abc" + endclass + def Foo() + A.s1 = 'def' + enddef + defcompile + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "s1" in class "A"', 1) + + # Test for changing a const List item from an object function + lines =<< trim END + vim9script + class A + public const l: list + def new() + this.l = [1, 2] + enddef + def Foo() + this.l[0] = 3 + enddef + endclass + var a = A.new() + assert_equal([1, 2], a.l) + a.Foo() + END + v9.CheckSourceFailure(lines, 'E1119: Cannot change locked list item', 1) + + # Test for adding a value to a const List from an object function + lines =<< trim END + vim9script + class A + public const l: list + def new() + this.l = [1, 2] + enddef + def Foo() + this.l->add(3) + enddef + endclass + var a = A.new() + a.Foo() + END + v9.CheckSourceFailure(lines, 'E741: Value is locked: add() argument', 1) + + # Test for reassigning a const List from an object function + lines =<< trim END + vim9script + class A + public const l: list = [1, 2] + def Foo() + this.l = [3, 4] + enddef + endclass + var a = A.new() + a.Foo() + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "l" in class "A"', 1) + + # Test for changing a const List item at script level + lines =<< trim END + vim9script + class A + public const l: list = [1, 2] + endclass + var a = A.new() + a.l[0] = 3 + END + v9.CheckSourceFailure(lines, 'E741: Value is locked:', 6) + + # Test for adding a value to a const List item at script level + lines =<< trim END + vim9script + class A + public const l: list = [1, 2] + endclass + var a = A.new() + a.l->add(4) + END + v9.CheckSourceFailure(lines, 'E741: Value is locked:', 6) + + # Test for changing a const List item from a function + lines =<< trim END + vim9script + class A + public const l: list = [1, 2] + endclass + def Foo() + var a = A.new() + a.l[0] = 3 + enddef + Foo() + END + v9.CheckSourceFailure(lines, 'E1119: Cannot change locked list item', 2) + + # Test for adding a value to a const List item from a function + lines =<< trim END + vim9script + class A + public const l: list = [1, 2] + endclass + def Foo() + var a = A.new() + a.l->add(4) + enddef + Foo() + END + v9.CheckSourceFailure(lines, 'E741: Value is locked: add() argument', 2) + + # Test for changing a const List item from an object method + lines =<< trim END + vim9script + class A + public const l: list = [1, 2] + def Foo() + this.l[0] = 3 + enddef + endclass + var a = A.new() + a.Foo() + END + v9.CheckSourceFailure(lines, 'E1119: Cannot change locked list item', 1) + + # Test for adding a value to a const List item from an object method + lines =<< trim END + vim9script + class A + public const l: list = [1, 2] + def Foo() + this.l->add(4) + enddef + endclass + var a = A.new() + a.Foo() + END + v9.CheckSourceFailure(lines, 'E741: Value is locked: add() argument', 1) + + # Test for reassigning a const List object variable at script level + lines =<< trim END + vim9script + class A + public const l: list = [1, 2] + endclass + var a = A.new() + a.l = [3, 4] + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "l" in class "A"', 6) + + # Test for reassigning a const List object variable from an object method + lines =<< trim END + vim9script + class A + public const l: list = [1, 2] + def Foo() + this.l = [3, 4] + enddef + endclass + var a = A.new() + a.Foo() + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "l" in class "A"', 1) + + # Test for reassigning a const List object variable from another function + lines =<< trim END + vim9script + class A + public const l: list = [1, 2] + endclass + def Foo() + var a = A.new() + a.l = [3, 4] + enddef + Foo() + END + v9.CheckSourceFailure(lines, 'E1409: Cannot change read-only variable "l" in class "A"', 2) + + # Error case: Use 'const' with just a variable name + lines =<< trim END + vim9script + class A + const foo + endclass + var a = A.new() + END + v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) + + # Error case: Use 'const' followed by 'public' + lines =<< trim END + vim9script + class A + const public foo: number + endclass + var a = A.new() + END + v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) + + # Error case: Use 'const' followed by 'static' + lines =<< trim END + vim9script + class A + const static foo: number + endclass + var a = A.new() + END + v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) + + # Error case: 'const' cannot be used in an interface + lines =<< trim END + vim9script + interface A + const foo: number = 10 + endinterface + END + v9.CheckSourceFailure(lines, 'E1410: Const variable not supported in an interface', 3) + + # Error case: 'const' not supported for an object method + lines =<< trim END + vim9script + class A + const def Foo() + enddef + endclass + END + v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) + + # Error case: 'const' not supported for a class method + lines =<< trim END + vim9script + class A + static const def Foo() + enddef + endclass + END + v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3) +enddef + " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker diff --git a/src/version.c b/src/version.c index 771612024d..281124e203 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2170, /**/ 2169, /**/ diff --git a/src/vim9class.c b/src/vim9class.c index 9d17140fd1..a1f4aa2732 100644 --- a/src/vim9class.c +++ b/src/vim9class.c @@ -152,6 +152,19 @@ parse_member( return OK; } +typedef struct oc_newmember_S oc_newmember_T; +struct oc_newmember_S +{ + garray_T *gap; + char_u *varname; + char_u *varname_end; + int has_public; + int has_final; + int has_type; + type_T *type; + char_u *init_expr; +}; + /* * Add a member to an object or a class. * Returns OK when successful, "init_expr" will be consumed then. @@ -163,6 +176,8 @@ add_member( char_u *varname, char_u *varname_end, int has_public, + int has_final, + int has_const, int has_type, type_T *type, char_u *init_expr) @@ -173,7 +188,12 @@ add_member( m->ocm_name = vim_strnsave(varname, varname_end - varname); m->ocm_access = has_public ? VIM_ACCESS_ALL : *varname == '_' ? VIM_ACCESS_PRIVATE : VIM_ACCESS_READ; - m->ocm_has_type = has_type; + if (has_final) + m->ocm_flags |= OCMFLAG_FINAL; + if (has_const) + m->ocm_flags |= OCMFLAG_CONST; + if (has_type) + m->ocm_flags |= OCMFLAG_HAS_TYPE; m->ocm_type = type; if (init_expr != NULL) m->ocm_init = init_expr; @@ -1132,7 +1152,7 @@ add_class_members(class_T *cl, exarg_T *eap, garray_T *type_list_gap) if (etv != NULL) { if (m->ocm_type->tt_type == VAR_ANY - && !m->ocm_has_type + && !(m->ocm_flags & OCMFLAG_HAS_TYPE) && etv->v_type != VAR_SPECIAL) // If the member variable type is not yet set, then use // the initialization expression type. @@ -1149,6 +1169,8 @@ add_class_members(class_T *cl, exarg_T *eap, garray_T *type_list_gap) tv->v_type = m->ocm_type->tt_type; tv->vval.v_string = NULL; } + if (m->ocm_flags & OCMFLAG_CONST) + item_lock(tv, DICT_MAXNEST, TRUE, TRUE); } } @@ -1558,9 +1580,10 @@ early_ret: has_public = TRUE; p = skipwhite(line + 6); - if (STRNCMP(p, "var", 3) != 0 && STRNCMP(p, "static", 6) != 0) + if (STRNCMP(p, "var", 3) != 0 && STRNCMP(p, "static", 6) != 0 + && STRNCMP(p, "final", 5) != 0 && STRNCMP(p, "const", 5) != 0) { - emsg(_(e_public_must_be_followed_by_var_or_static)); + emsg(_(e_public_must_be_followed_by_var_static_final_or_const)); break; } } @@ -1616,22 +1639,60 @@ early_ret: has_static = TRUE; p = skipwhite(ps + 6); - if (STRNCMP(p, "var", 3) != 0 && STRNCMP(p, "def", 3) != 0) + if (STRNCMP(p, "var", 3) != 0 && STRNCMP(p, "def", 3) != 0 + && STRNCMP(p, "final", 5) != 0 && STRNCMP(p, "const", 5) != 0) { - emsg(_(e_static_must_be_followed_by_var_or_def)); + emsg(_(e_static_must_be_followed_by_var_def_final_or_const)); break; } } + int has_final = FALSE; + int has_var = FALSE; + int has_const = FALSE; + if (checkforcmd(&p, "var", 3)) + has_var = TRUE; + else if (checkforcmd(&p, "final", 5)) + { + if (!is_class) + { + emsg(_(e_final_variable_not_supported_in_interface)); + break; + } + has_final = TRUE; + } + else if (checkforcmd(&p, "const", 5)) + { + if (!is_class) + { + emsg(_(e_const_variable_not_supported_in_interface)); + break; + } + has_const = TRUE; + } + p = skipwhite(p); + // object members (public, read access, private): // "var _varname" // "var varname" // "public var varname" + // "final _varname" + // "final varname" + // "public final varname" + // "const _varname" + // "const varname" + // "public const varname" // class members (public, read access, private): // "static var _varname" // "static var varname" // "public static var varname" - if (checkforcmd(&p, "var", 3)) + // "static final _varname" + // "static final varname" + // "public static final varname" + // "static const _varname" + // "static const varname" + // "public static const varname" + if (has_var || has_final || has_const) { char_u *varname = p; char_u *varname_end = NULL; @@ -1671,8 +1732,9 @@ early_ret: vim_free(init_expr); break; } - if (add_member(has_static ? &classmembers : &objmembers, varname, varname_end, - has_public, has_type, type, init_expr) == FAIL) + if (add_member(has_static ? &classmembers : &objmembers, varname, + varname_end, has_public, has_final, has_const, + has_type, type, init_expr) == FAIL) { vim_free(init_expr); break; @@ -2779,6 +2841,40 @@ inside_class(cctx_T *cctx_arg, class_T *cl) return FALSE; } +/* + * Return TRUE if object/class variable "m" is read-only. + * Also give an error message. + */ + int +oc_var_check_ro(class_T *cl, ocmember_T *m) +{ + if (m->ocm_flags & (OCMFLAG_FINAL | OCMFLAG_CONST)) + { + semsg(_(e_cannot_change_readonly_variable_str_in_class_str), + m->ocm_name, cl->class_name); + return TRUE; + } + return FALSE; +} + +/* + * Lock all the constant object variables. Called after creating and + * initializing a new object. + */ + void +obj_lock_const_vars(object_T *obj) +{ + for (int i = 0; i < obj->obj_class->class_obj_member_count; i++) + { + ocmember_T *ocm = &obj->obj_class->class_obj_members[i]; + if (ocm->ocm_flags & OCMFLAG_CONST) + { + typval_T *mtv = ((typval_T *)(obj + 1)) + i; + item_lock(mtv, DICT_MAXNEST, TRUE, TRUE); + } + } +} + /* * Make a copy of an object. */ diff --git a/src/vim9compile.c b/src/vim9compile.c index b2d8fa093e..7bf25526d8 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -1770,6 +1770,12 @@ compile_lhs( lhs->lhs_name); return FAIL; } + + ocmember_T *m = + &defcl->class_class_members[lhs->lhs_classmember_idx]; + if (oc_var_check_ro(defcl, m)) + return FAIL; + lhs->lhs_dest = dest_class_member; lhs->lhs_class = cctx->ctx_ufunc->uf_class; lhs->lhs_type = @@ -2040,6 +2046,10 @@ compile_lhs( return FAIL; } + if (!IS_CONSTRUCTOR_METHOD(cctx->ctx_ufunc) + && oc_var_check_ro(cl, m)) + return FAIL; + lhs->lhs_member_type = m->ocm_type; } else @@ -3356,7 +3366,7 @@ compile_def_function( type_T *type = get_type_on_stack(&cctx, 0); if (m->ocm_type->tt_type == VAR_ANY - && !m->ocm_has_type + && !(m->ocm_flags & OCMFLAG_HAS_TYPE) && type->tt_type != VAR_SPECIAL) { // If the member variable type is not yet set, then use diff --git a/src/vim9execute.c b/src/vim9execute.c index 882b13c61a..3bcdce410d 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -4455,7 +4455,11 @@ exec_instructions(ectx_T *ectx) else { *tv = *STACK_TV_VAR(0); - ++tv->vval.v_object->obj_refcount; + object_T *obj = tv->vval.v_object; + ++obj->obj_refcount; + + // Lock all the constant object variables + obj_lock_const_vars(obj); } // FALLTHROUGH From ffba4e952b25c9257a7b0bd860b85fca2c1e65f4 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 16 Dec 2023 14:14:36 +0100 Subject: [PATCH 039/120] patch 9.0.2171: The options[] array is still not sorted alphabetically Problem: The options[] array is still not sorted alphabetically (after: v9.0.2154), causing test failures Solution: Sort the remaining items This causes an failure for the vim/vim-win32-installer builds, so make sure it is completely sorted. closes: #13690 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- src/optiondefs.h | 26 +++++++++++++------------- src/version.c | 2 ++ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/optiondefs.h b/src/optiondefs.h index 658e17d16d..783b851f6c 100644 --- a/src/optiondefs.h +++ b/src/optiondefs.h @@ -337,10 +337,6 @@ static struct vimoption options[] = (char_u *)224L, #endif (char_u *)0L} SCTX_INIT}, - {"antialias", "anti", P_BOOL|P_VI_DEF|P_VIM|P_RCLR, - (char_u *)NULL, PV_NONE, NULL, NULL, - {(char_u *)FALSE, (char_u *)FALSE} - SCTX_INIT}, {"allowrevins", "ari", P_BOOL|P_VI_DEF|P_VIM, #ifdef FEAT_RIGHTLEFT (char_u *)&p_ari, PV_NONE, NULL, NULL, @@ -355,6 +351,10 @@ static struct vimoption options[] = (char_u *)&p_ambw, PV_NONE, did_set_ambiwidth, expand_set_ambiwidth, {(char_u *)"single", (char_u *)0L} SCTX_INIT}, + {"antialias", "anti", P_BOOL|P_VI_DEF|P_VIM|P_RCLR, + (char_u *)NULL, PV_NONE, NULL, NULL, + {(char_u *)FALSE, (char_u *)FALSE} + SCTX_INIT}, {"arabic", "arab", P_BOOL|P_VI_DEF|P_VIM|P_CURSWANT, #ifdef FEAT_ARABIC (char_u *)VAR_WIN, PV_ARAB, did_set_arabic, NULL, @@ -1762,6 +1762,13 @@ static struct vimoption options[] = {"mousetime", "mouset", P_NUM|P_VI_DEF, (char_u *)&p_mouset, PV_NONE, NULL, NULL, {(char_u *)500L, (char_u *)0L} SCTX_INIT}, + {"mzquantum", "mzq", P_NUM, +#ifdef FEAT_MZSCHEME + (char_u *)&p_mzq, PV_NONE, did_set_mzquantum, NULL, +#else + (char_u *)NULL, PV_NONE, NULL, NULL, +#endif + {(char_u *)100L, (char_u *)100L} SCTX_INIT}, {"mzschemedll", NULL, P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, #if defined(DYNAMIC_MZSCHEME) (char_u *)&p_mzschemedll, PV_NONE, NULL, NULL, @@ -1780,13 +1787,6 @@ static struct vimoption options[] = {(char_u *)"", (char_u *)0L} #endif SCTX_INIT}, - {"mzquantum", "mzq", P_NUM, -#ifdef FEAT_MZSCHEME - (char_u *)&p_mzq, PV_NONE, did_set_mzquantum, NULL, -#else - (char_u *)NULL, PV_NONE, NULL, NULL, -#endif - {(char_u *)100L, (char_u *)100L} SCTX_INIT}, {"novice", NULL, P_BOOL|P_VI_DEF, (char_u *)NULL, PV_NONE, NULL, NULL, {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, @@ -2793,10 +2793,10 @@ static struct vimoption options[] = {"visualbell", "vb", P_BOOL|P_VI_DEF, (char_u *)&p_vb, PV_NONE, NULL, NULL, {(char_u *)FALSE, (char_u *)0L} SCTX_INIT}, - {"w300", NULL, P_NUM|P_VI_DEF, + {"w1200", NULL, P_NUM|P_VI_DEF, (char_u *)NULL, PV_NONE, NULL, NULL, {(char_u *)0L, (char_u *)0L} SCTX_INIT}, - {"w1200", NULL, P_NUM|P_VI_DEF, + {"w300", NULL, P_NUM|P_VI_DEF, (char_u *)NULL, PV_NONE, NULL, NULL, {(char_u *)0L, (char_u *)0L} SCTX_INIT}, {"w9600", NULL, P_NUM|P_VI_DEF, diff --git a/src/version.c b/src/version.c index 281124e203..de90fcec5a 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2171, /**/ 2170, /**/ From 0378f07fbaee9fd8773f3cf8cef146606dd7bf72 Mon Sep 17 00:00:00 2001 From: Maxim Kim Date: Sun, 17 Dec 2023 00:22:44 +1100 Subject: [PATCH 040/120] runtime(colorschemes): Update colorschemes (#13691) Minor changes: - Regenerated using colortemplate 2.2.3 - Removed reversed gui-cursor for some of the colorschemes (retrobox, wildcharm, lunaperche) - Change MatchParen for some of colorschemes. Signed-off-by: Maxim Kim Signed-off-by: Christian Brabandt --- runtime/colors/blue.vim | 8 ++--- runtime/colors/darkblue.vim | 8 ++--- runtime/colors/delek.vim | 8 ++--- runtime/colors/desert.vim | 8 ++--- runtime/colors/elflord.vim | 8 ++--- runtime/colors/evening.vim | 8 ++--- runtime/colors/habamax.vim | 8 ++--- runtime/colors/industry.vim | 8 ++--- runtime/colors/koehler.vim | 8 ++--- runtime/colors/lunaperche.vim | 65 ++++++++++++++++++++++++++--------- runtime/colors/morning.vim | 8 ++--- runtime/colors/murphy.vim | 8 ++--- runtime/colors/pablo.vim | 8 ++--- runtime/colors/peachpuff.vim | 8 ++--- runtime/colors/quiet.vim | 8 ++--- runtime/colors/retrobox.vim | 40 ++++++++++----------- runtime/colors/ron.vim | 8 ++--- runtime/colors/shine.vim | 8 ++--- runtime/colors/slate.vim | 8 ++--- runtime/colors/sorbet.vim | 8 ++--- runtime/colors/torte.vim | 8 ++--- runtime/colors/wildcharm.vim | 56 +++++++++++++++--------------- runtime/colors/zaibatsu.vim | 8 ++--- runtime/colors/zellner.vim | 8 ++--- 24 files changed, 180 insertions(+), 149 deletions(-) diff --git a/runtime/colors/blue.vim b/runtime/colors/blue.vim index 7ac44c868c..c53f44f9d3 100644 --- a/runtime/colors/blue.vim +++ b/runtime/colors/blue.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Steven Vertigan " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:41:44 MSK +" Last Updated: Fri 15 Dec 2023 20:05:33 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'blue' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff'] @@ -583,4 +583,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/darkblue.vim b/runtime/colors/darkblue.vim index 140e7d47c9..207d1ea58f 100644 --- a/runtime/colors/darkblue.vim +++ b/runtime/colors/darkblue.vim @@ -4,16 +4,16 @@ " Maintainer: Original author Bohdan Vlasyuk " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:40:36 MSK +" Last Updated: Fri 15 Dec 2023 20:05:33 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'darkblue' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#8b0000', '#90f020', '#ffa500', '#00008b', '#8b008b', '#008b8b', '#c0c0c0', '#808080', '#ffa0a0', '#90f020', '#ffff60', '#0030ff', '#ff00ff', '#90fff0', '#ffffff'] @@ -467,4 +467,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/delek.vim b/runtime/colors/delek.vim index 9543b568f6..16de514b57 100644 --- a/runtime/colors/delek.vim +++ b/runtime/colors/delek.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer David Schweikert " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Sun 04 Sep 2022 09:31:26 MSK +" Last Updated: Fri 15 Dec 2023 20:05:34 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=light hi clear let g:colors_name = 'delek' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#ffffff', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#bcbcbc', '#ee0000', '#0000ff', '#00cd00', '#cd00cd', '#008b8b', '#0000ff', '#ff1493', '#000000'] @@ -408,4 +408,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/desert.vim b/runtime/colors/desert.vim index 41ed976fa4..e639653da2 100644 --- a/runtime/colors/desert.vim +++ b/runtime/colors/desert.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Hans Fugal " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:39:21 MSK +" Last Updated: Fri 15 Dec 2023 20:05:34 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'desert' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#7f7f8c', '#cd5c5c', '#9acd32', '#bdb76b', '#75a0ff', '#eeee00', '#cd853f', '#666666', '#8a7f7f', '#ff0000', '#89fb98', '#f0e68c', '#6dceeb', '#ffde9b', '#ffa0a0', '#c2bfa5'] @@ -397,4 +397,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/elflord.vim b/runtime/colors/elflord.vim index e9efd3de59..3a72dfb46c 100644 --- a/runtime/colors/elflord.vim +++ b/runtime/colors/elflord.vim @@ -3,16 +3,16 @@ " Maintainer: original maintainer Ron Aaron " Website: https://www.github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:44:22 MSK +" Last Updated: Fri 15 Dec 2023 20:05:35 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'elflord' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link Terminal Normal hi! link Boolean Constant @@ -446,4 +446,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/evening.vim b/runtime/colors/evening.vim index be6c43ff34..3ac3242dd1 100644 --- a/runtime/colors/evening.vim +++ b/runtime/colors/evening.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Steven Vertigan " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Sun 04 Sep 2022 09:48:34 MSK +" Last Updated: Fri 15 Dec 2023 20:05:35 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'evening' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0087ff', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff'] @@ -528,4 +528,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/habamax.vim b/runtime/colors/habamax.vim index 77a2f566a2..4880482417 100644 --- a/runtime/colors/habamax.vim +++ b/runtime/colors/habamax.vim @@ -4,16 +4,16 @@ " Maintainer: Maxim Kim " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 24 Mar 2023 20:28:06 AEDT +" Last Updated: Fri 15 Dec 2023 20:05:35 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'habamax' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#1c1c1c', '#d75f5f', '#87af87', '#afaf87', '#5f87af', '#af87af', '#5f8787', '#9e9e9e', '#767676', '#d7875f', '#afd7af', '#d7d787', '#87afd7', '#d7afd7', '#87afaf', '#bcbcbc'] @@ -465,4 +465,4 @@ endif " Color: white #dadada 253 white " Term colors: color00 color01 color02 color03 color04 color05 color06 color07 " Term colors: color08 color09 color10 color11 color12 color13 color14 color15 -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/industry.vim b/runtime/colors/industry.vim index 0946fe996b..dd40f34cf4 100644 --- a/runtime/colors/industry.vim +++ b/runtime/colors/industry.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Shian Lee. " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Sun 04 Sep 2022 09:50:04 MSK +" Last Updated: Fri 15 Dec 2023 20:05:36 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'industry' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#303030', '#870000', '#5fd75f', '#afaf00', '#87afff', '#af00af', '#00afaf', '#6c6c6c', '#444444', '#ff0000', '#00ff00', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff'] @@ -409,4 +409,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/koehler.vim b/runtime/colors/koehler.vim index 2505e8ec47..71858f0507 100644 --- a/runtime/colors/koehler.vim +++ b/runtime/colors/koehler.vim @@ -3,16 +3,16 @@ " Maintainer: original maintainer Ron Aaron " Website: https://www.github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:23:56 MSK +" Last Updated: Fri 15 Dec 2023 20:05:36 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'koehler' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link Terminal Normal hi! link Boolean Constant @@ -423,4 +423,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/lunaperche.vim b/runtime/colors/lunaperche.vim index 94a3863236..4e4678e81a 100644 --- a/runtime/colors/lunaperche.vim +++ b/runtime/colors/lunaperche.vim @@ -4,20 +4,36 @@ " Maintainer: Maxim Kim " Website: https://www.github.com/vim/colorschemes " License: Vim License (see `:help license`) -" Last Updated: Sun 26 Mar 2023 23:04:18 AEDT +" Last Updated: Fri 15 Dec 2023 20:05:37 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 hi clear let g:colors_name = 'lunaperche' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link helpVim Title hi! link helpHeader Title hi! link helpHyperTextJump Underlined +hi! link fugitiveSymbolicRef PreProc +hi! link fugitiveHeading Statement +hi! link fugitiveStagedHeading Statement +hi! link fugitiveUnstagedHeading Statement +hi! link fugitiveUntrackedHeading Statement +hi! link fugitiveStagedModifier PreProc +hi! link fugitiveUnstagedModifier PreProc +hi! link fugitiveHash Constant hi! link diffFile PreProc hi! link markdownHeadingDelimiter Special +hi! link rstSectionDelimiter Statement +hi! link rstDirective PreProc +hi! link rstHyperlinkReference Special +hi! link rstFieldName Constant +hi! link rstDelimiter Special +hi! link rstInterpretedText Special +hi! link rstCodeBlock Normal +hi! link rstLiteralBlock rstCodeBlock hi! link markdownUrl String hi! link colortemplateKey Statement hi! link xmlTagName Statement @@ -118,10 +134,10 @@ if &background ==# 'dark' hi WildMenu guifg=#000000 guibg=#ffd787 gui=bold cterm=bold hi debugPC guifg=#5f87af guibg=NONE gui=reverse cterm=reverse hi debugBreakpoint guifg=#5fafaf guibg=NONE gui=reverse cterm=reverse - hi Cursor guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE hi lCursor guifg=#ff5fff guibg=#000000 gui=reverse cterm=reverse hi Visual guifg=#ffffff guibg=#005f87 gui=NONE cterm=NONE - hi MatchParen guifg=#c5e7c5 guibg=#000000 gui=reverse cterm=reverse + hi MatchParen guifg=#ff00af guibg=NONE gui=bold cterm=bold hi VisualNOS guifg=#000000 guibg=#5fafaf gui=NONE cterm=NONE hi CursorLine guifg=NONE guibg=#262626 gui=NONE cterm=NONE hi CursorColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE @@ -208,10 +224,10 @@ else hi WildMenu guifg=#000000 guibg=#ffd787 gui=bold cterm=bold hi debugPC guifg=#005fd7 guibg=NONE gui=reverse cterm=reverse hi debugBreakpoint guifg=#005f5f guibg=NONE gui=reverse cterm=reverse - hi Cursor guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE hi lCursor guifg=#ff00ff guibg=#000000 gui=reverse cterm=reverse hi Visual guifg=#ffffff guibg=#5f87af gui=NONE cterm=NONE - hi MatchParen guifg=NONE guibg=#c5e7c5 gui=NONE cterm=NONE + hi MatchParen guifg=#ff00af guibg=NONE gui=bold cterm=bold hi VisualNOS guifg=#ffffff guibg=#008787 gui=NONE cterm=NONE hi CursorLine guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE hi CursorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE @@ -262,8 +278,24 @@ if s:t_Co >= 256 hi! link helpVim Title hi! link helpHeader Title hi! link helpHyperTextJump Underlined + hi! link fugitiveSymbolicRef PreProc + hi! link fugitiveHeading Statement + hi! link fugitiveStagedHeading Statement + hi! link fugitiveUnstagedHeading Statement + hi! link fugitiveUntrackedHeading Statement + hi! link fugitiveStagedModifier PreProc + hi! link fugitiveUnstagedModifier PreProc + hi! link fugitiveHash Constant hi! link diffFile PreProc hi! link markdownHeadingDelimiter Special + hi! link rstSectionDelimiter Statement + hi! link rstDirective PreProc + hi! link rstHyperlinkReference Special + hi! link rstFieldName Constant + hi! link rstDelimiter Special + hi! link rstInterpretedText Special + hi! link rstCodeBlock Normal + hi! link rstLiteralBlock rstCodeBlock hi! link markdownUrl String hi! link colortemplateKey Statement hi! link xmlTagName Statement @@ -362,7 +394,7 @@ if s:t_Co >= 256 hi debugPC ctermfg=67 ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=73 ctermbg=NONE cterm=reverse hi Visual ctermfg=231 ctermbg=24 cterm=NONE - hi MatchParen ctermfg=30 ctermbg=16 cterm=reverse + hi MatchParen ctermfg=199 ctermbg=NONE cterm=bold hi VisualNOS ctermfg=16 ctermbg=73 cterm=NONE hi CursorLine ctermfg=NONE ctermbg=235 cterm=NONE hi CursorColumn ctermfg=NONE ctermbg=235 cterm=NONE @@ -447,7 +479,7 @@ if s:t_Co >= 256 hi debugPC ctermfg=26 ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=23 ctermbg=NONE cterm=reverse hi Visual ctermfg=231 ctermbg=67 cterm=NONE - hi MatchParen ctermfg=30 ctermbg=231 cterm=reverse + hi MatchParen ctermfg=199 ctermbg=NONE cterm=bold hi VisualNOS ctermfg=231 ctermbg=30 cterm=NONE hi CursorLine ctermfg=NONE ctermbg=255 cterm=NONE hi CursorColumn ctermfg=NONE ctermbg=255 cterm=NONE @@ -537,8 +569,7 @@ if s:t_Co >= 16 hi WildMenu ctermfg=black ctermbg=yellow cterm=bold hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse - hi Visual ctermfg=white ctermbg=darkblue cterm=NONE - hi MatchParen ctermfg=darkcyan ctermbg=black cterm=reverse + hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=yellow cterm=NONE @@ -623,7 +654,7 @@ if s:t_Co >= 16 hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse hi Visual ctermfg=white ctermbg=darkblue cterm=NONE - hi MatchParen ctermfg=darkcyan ctermbg=white cterm=reverse + hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline hi VisualNOS ctermfg=black ctermbg=cyan cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=yellow cterm=NONE @@ -714,7 +745,7 @@ if s:t_Co >= 8 hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse - hi MatchParen ctermfg=darkcyan ctermbg=black cterm=reverse + hi MatchParen ctermfg=magenta ctermbg=NONE cterm=bold hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE @@ -781,7 +812,7 @@ if s:t_Co >= 8 hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse hi Visual ctermfg=NONE ctermbg=NONE cterm=reverse - hi MatchParen ctermfg=darkcyan ctermbg=grey cterm=reverse + hi MatchParen ctermfg=magenta ctermbg=NONE cterm=bold hi VisualNOS ctermfg=black ctermbg=darkcyan cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=darkyellow cterm=NONE @@ -906,7 +937,7 @@ endif " Color: colorC #FFFFFF 231 white " Color: colorlC #FF5FFF 207 magenta " Color: colorV #005F87 24 darkblue -" Color: colorMP #C5E7C5 30 darkcyan +" Color: colorMP #ff00af 199 magenta " Color: colorPMenuSel #4e4e4e 239 darkcyan " Color: colorDim #878787 102 grey " Color: diffAdd #875f87 96 darkmagenta @@ -941,7 +972,7 @@ endif " Color: colorC #000000 16 black " Color: colorlC #FF00FF 201 magenta " Color: colorV #5F87AF 67 darkblue -" Color: colorMP #C5E7C5 30 darkcyan +" Color: colorMP #ff00af 199 magenta " Color: colorPMenuSel #C6C6C6 251 darkcyan " Color: colorDim #626262 241 darkgrey " Color: diffAdd #D7AFD7 182 darkmagenta @@ -952,4 +983,4 @@ endif " Term colors: color00 color01 color02 color03 color04 color05 color06 color07 " Term colors: color08 color09 color10 color11 color12 color13 color14 color15 " Background: any -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/morning.vim b/runtime/colors/morning.vim index f1ac73fe3d..1644b04df8 100644 --- a/runtime/colors/morning.vim +++ b/runtime/colors/morning.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Bram Moolenaar " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:46:24 MSK +" Last Updated: Fri 15 Dec 2023 20:05:37 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=light hi clear let g:colors_name = 'morning' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#e4e4e4', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#bcbcbc', '#0000ff', '#a52a2a', '#ff00ff', '#6a0dad', '#008787', '#2e8b57', '#6a5acd', '#000000'] @@ -400,4 +400,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/murphy.vim b/runtime/colors/murphy.vim index 3dcff2c3c0..b829d4975e 100644 --- a/runtime/colors/murphy.vim +++ b/runtime/colors/murphy.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Ron Aaron . " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:47:20 MSK +" Last Updated: Fri 15 Dec 2023 20:05:38 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'murphy' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#303030', '#ffa700', '#005f00', '#ffd7af', '#87afff', '#ffafaf', '#00afaf', '#bcbcbc', '#444444', '#ff0000', '#00875f', '#ffff00', '#005fff', '#ff00ff', '#00ffff', '#ffffff'] @@ -394,4 +394,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/pablo.vim b/runtime/colors/pablo.vim index 17e3d7764f..bd5693ec8b 100644 --- a/runtime/colors/pablo.vim +++ b/runtime/colors/pablo.vim @@ -3,16 +3,16 @@ " Maintainer: Original maintainerRon Aaron " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Wed 14 Sep 2022 19:05:27 MSK +" Last Updated: Fri 15 Dec 2023 20:05:38 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'pablo' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff'] @@ -427,4 +427,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/peachpuff.vim b/runtime/colors/peachpuff.vim index 0622ce6f87..392945a375 100644 --- a/runtime/colors/peachpuff.vim +++ b/runtime/colors/peachpuff.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer David Ne\v{c}as (Yeti) " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:50:02 MSK +" Last Updated: Fri 15 Dec 2023 20:05:39 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=light hi clear let g:colors_name = 'peachpuff' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#ffdab9', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#737373', '#406090', '#a52a2a', '#c00058', '#cd00cd', '#008b8b', '#2e8b57', '#6a5acd', '#000000'] @@ -405,4 +405,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/quiet.vim b/runtime/colors/quiet.vim index fc30b165f3..1a8603a8a0 100644 --- a/runtime/colors/quiet.vim +++ b/runtime/colors/quiet.vim @@ -4,14 +4,14 @@ " Maintainer: Maxence Weynans " Website: https://github.com/vim/colorschemes " License: Vim License (see `:help license`)` -" Last Updated: Wed 15 Mar 2023 06:45:06 PM CET +" Last Updated: Fri 15 Dec 2023 20:05:39 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 hi clear let g:colors_name = 'quiet' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link Terminal Normal hi! link StatusLineTerm StatusLine @@ -742,4 +742,4 @@ endif " Term colors: light0 light1 light2 light3 light4 light5 light6 light7 " Term colors: light8 light9 light10 light11 light12 light13 light14 light15 " Background: any -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/retrobox.vim b/runtime/colors/retrobox.vim index 2295ae7936..46d269f983 100644 --- a/runtime/colors/retrobox.vim +++ b/runtime/colors/retrobox.vim @@ -4,14 +4,14 @@ " Maintainer: Maxim Kim , ported from gruvbox8 of Lifepillar " Website: https://www.github.com/vim/colorschemes " License: Vim License (see `:help license`) -" Last Updated: Sun 12 Mar 2023 15:14:04 AEDT +" Last Updated: Fri 15 Dec 2023 20:05:40 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 hi clear let g:colors_name = 'retrobox' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link CursorColumn CursorLine hi! link StatusLineTerm StatusLine @@ -61,7 +61,7 @@ if &background ==# 'dark' hi WildMenu guifg=#83a598 guibg=#504945 gui=bold cterm=bold hi EndOfBuffer guifg=#504945 guibg=NONE gui=NONE cterm=NONE hi Conceal guifg=#83a598 guibg=NONE gui=NONE cterm=NONE - hi Cursor guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor guifg=#1c1c1c guibg=#fbf1c7 gui=NONE cterm=NONE hi DiffAdd guifg=#b8bb26 guibg=#1c1c1c gui=reverse cterm=reverse hi DiffChange guifg=#8ec07c guibg=#1c1c1c gui=reverse cterm=reverse hi DiffDelete guifg=#fb4934 guibg=#1c1c1c gui=reverse cterm=reverse @@ -112,7 +112,7 @@ if &background ==# 'dark' hi Type guifg=#fabd2f guibg=NONE gui=NONE cterm=NONE hi Typedef guifg=#fabd2f guibg=NONE gui=NONE cterm=NONE hi Underlined guifg=#83a598 guibg=NONE gui=underline cterm=underline - hi CursorIM guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM guifg=#1c1c1c guibg=#fbf1c7 gui=NONE cterm=NONE else " Light background if (has('termguicolors') && &termguicolors) || has('gui_running') @@ -152,7 +152,7 @@ else hi WildMenu guifg=#076678 guibg=#e5d4b1 gui=bold cterm=bold hi EndOfBuffer guifg=#e5d4b1 guibg=NONE gui=NONE cterm=NONE hi Conceal guifg=#076678 guibg=NONE gui=NONE cterm=NONE - hi Cursor guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor guifg=#fbf1c7 guibg=#282828 gui=NONE cterm=NONE hi DiffAdd guifg=#79740e guibg=#fbf1c7 gui=reverse cterm=reverse hi DiffChange guifg=#427b58 guibg=#fbf1c7 gui=reverse cterm=reverse hi DiffDelete guifg=#9d0006 guibg=#fbf1c7 gui=reverse cterm=reverse @@ -203,7 +203,7 @@ else hi Type guifg=#b57614 guibg=NONE gui=NONE cterm=NONE hi Typedef guifg=#b57614 guibg=NONE gui=NONE cterm=NONE hi Underlined guifg=#076678 guibg=NONE gui=underline cterm=underline - hi CursorIM guifg=NONE guibg=NONE gui=reverse ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM guifg=#fbf1c7 guibg=#282828 gui=NONE cterm=NONE endif if s:t_Co >= 256 @@ -242,7 +242,7 @@ if s:t_Co >= 256 hi WildMenu ctermfg=109 ctermbg=239 cterm=bold hi EndOfBuffer ctermfg=239 ctermbg=NONE cterm=NONE hi Conceal ctermfg=109 ctermbg=NONE cterm=NONE - hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor ctermfg=234 ctermbg=230 cterm=NONE hi DiffAdd ctermfg=142 ctermbg=234 cterm=reverse hi DiffChange ctermfg=107 ctermbg=234 cterm=reverse hi DiffDelete ctermfg=203 ctermbg=234 cterm=reverse @@ -293,7 +293,7 @@ if s:t_Co >= 256 hi Type ctermfg=214 ctermbg=NONE cterm=NONE hi Typedef ctermfg=214 ctermbg=NONE cterm=NONE hi Underlined ctermfg=109 ctermbg=NONE cterm=underline - hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM ctermfg=234 ctermbg=230 cterm=NONE else " Light background hi Normal ctermfg=237 ctermbg=230 cterm=NONE @@ -330,7 +330,7 @@ if s:t_Co >= 256 hi WildMenu ctermfg=23 ctermbg=188 cterm=bold hi EndOfBuffer ctermfg=188 ctermbg=NONE cterm=NONE hi Conceal ctermfg=23 ctermbg=NONE cterm=NONE - hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor ctermfg=230 ctermbg=235 cterm=NONE hi DiffAdd ctermfg=64 ctermbg=230 cterm=reverse hi DiffChange ctermfg=29 ctermbg=230 cterm=reverse hi DiffDelete ctermfg=124 ctermbg=230 cterm=reverse @@ -381,7 +381,7 @@ if s:t_Co >= 256 hi Type ctermfg=172 ctermbg=NONE cterm=NONE hi Typedef ctermfg=172 ctermbg=NONE cterm=NONE hi Underlined ctermfg=23 ctermbg=NONE cterm=underline - hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM ctermfg=230 ctermbg=235 cterm=NONE endif unlet s:t_Co finish @@ -423,7 +423,7 @@ if s:t_Co >= 16 hi WildMenu ctermfg=White ctermbg=Black cterm=bold hi EndOfBuffer ctermfg=DarkGray ctermbg=NONE cterm=NONE hi Conceal ctermfg=Blue ctermbg=NONE cterm=NONE - hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor ctermfg=Black ctermbg=White cterm=NONE hi DiffAdd ctermfg=Green ctermbg=Black cterm=reverse hi DiffChange ctermfg=Cyan ctermbg=Black cterm=reverse hi DiffDelete ctermfg=Red ctermbg=Black cterm=reverse @@ -474,7 +474,7 @@ if s:t_Co >= 16 hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE hi Typedef ctermfg=Yellow ctermbg=NONE cterm=NONE hi Underlined ctermfg=Blue ctermbg=NONE cterm=underline - hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM ctermfg=Black ctermbg=White cterm=NONE else " Light background hi Normal ctermfg=Black ctermbg=White cterm=NONE @@ -511,7 +511,7 @@ if s:t_Co >= 16 hi WildMenu ctermfg=Black ctermbg=White cterm=bold hi EndOfBuffer ctermfg=Grey ctermbg=NONE cterm=NONE hi Conceal ctermfg=Blue ctermbg=NONE cterm=NONE - hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor ctermfg=White ctermbg=DarkGray cterm=NONE hi DiffAdd ctermfg=Green ctermbg=White cterm=reverse hi DiffChange ctermfg=Cyan ctermbg=White cterm=reverse hi DiffDelete ctermfg=Red ctermbg=White cterm=reverse @@ -562,7 +562,7 @@ if s:t_Co >= 16 hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE hi Typedef ctermfg=Yellow ctermbg=NONE cterm=NONE hi Underlined ctermfg=Blue ctermbg=NONE cterm=underline - hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM ctermfg=White ctermbg=DarkGray cterm=NONE endif unlet s:t_Co finish @@ -604,7 +604,7 @@ if s:t_Co >= 8 hi WildMenu ctermfg=Blue ctermbg=DarkGray cterm=bold hi EndOfBuffer ctermfg=NONE ctermbg=NONE cterm=NONE hi Conceal ctermfg=Blue ctermbg=NONE cterm=NONE - hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor ctermfg=Black ctermbg=White cterm=NONE hi DiffAdd ctermfg=Green ctermbg=Black cterm=reverse hi DiffChange ctermfg=Cyan ctermbg=Black cterm=reverse hi DiffDelete ctermfg=Red ctermbg=Black cterm=reverse @@ -655,7 +655,7 @@ if s:t_Co >= 8 hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE hi Typedef ctermfg=Yellow ctermbg=NONE cterm=NONE hi Underlined ctermfg=Blue ctermbg=NONE cterm=underline - hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM ctermfg=Black ctermbg=White cterm=NONE else " Light background hi Normal ctermfg=Black ctermbg=Grey cterm=NONE @@ -692,7 +692,7 @@ if s:t_Co >= 8 hi WildMenu ctermfg=Blue ctermbg=Grey cterm=bold hi EndOfBuffer ctermfg=NONE ctermbg=NONE cterm=NONE hi Conceal ctermfg=Blue ctermbg=NONE cterm=NONE - hi Cursor ctermfg=NONE ctermbg=NONE cterm=reverse + hi Cursor ctermfg=White ctermbg=DarkGray cterm=NONE hi DiffAdd ctermfg=Green ctermbg=White cterm=reverse hi DiffChange ctermfg=Cyan ctermbg=White cterm=reverse hi DiffDelete ctermfg=Red ctermbg=White cterm=reverse @@ -743,7 +743,7 @@ if s:t_Co >= 8 hi Type ctermfg=Yellow ctermbg=NONE cterm=NONE hi Typedef ctermfg=Yellow ctermbg=NONE cterm=NONE hi Underlined ctermfg=Blue ctermbg=NONE cterm=underline - hi CursorIM ctermfg=NONE ctermbg=NONE cterm=reverse + hi CursorIM ctermfg=White ctermbg=DarkGray cterm=NONE endif unlet s:t_Co finish @@ -871,4 +871,4 @@ endif " Term colors: fg1 neutralred neutralgreen neutralyellow neutralblue neutralpurple neutralaqua fg4 " Term colors: grey red green yellow blue purple aqua bg0 " Background: any -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/ron.vim b/runtime/colors/ron.vim index a7302a44eb..684b485067 100644 --- a/runtime/colors/ron.vim +++ b/runtime/colors/ron.vim @@ -3,16 +3,16 @@ " Maintainer: original maintainer Ron Aaron " Website: https://www.github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:50:56 MSK +" Last Updated: Fri 15 Dec 2023 20:05:41 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'ron' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link Terminal Normal hi! link Boolean Constant @@ -441,4 +441,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/shine.vim b/runtime/colors/shine.vim index fe1ee15203..ec7da8cb17 100644 --- a/runtime/colors/shine.vim +++ b/runtime/colors/shine.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer is Yasuhiro Matsumoto " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:51:42 MSK +" Last Updated: Fri 15 Dec 2023 20:05:41 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=light hi clear let g:colors_name = 'shine' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#8b0000', '#006400', '#ffff00', '#00008b', '#6a0dad', '#008b8b', '#dadada', '#767676', '#ffafaf', '#90ee90', '#ffff60', '#add8e6', '#ff00ff', '#00ffff', '#ffffff'] @@ -413,4 +413,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/slate.vim b/runtime/colors/slate.vim index 8c43fb6ed6..d58d07850d 100644 --- a/runtime/colors/slate.vim +++ b/runtime/colors/slate.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Ralph Amissah " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:52:25 MSK +" Last Updated: Fri 15 Dec 2023 20:05:41 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'slate' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff'] @@ -428,4 +428,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/sorbet.vim b/runtime/colors/sorbet.vim index 6b73c27087..a762dfb613 100644 --- a/runtime/colors/sorbet.vim +++ b/runtime/colors/sorbet.vim @@ -4,16 +4,16 @@ " Maintainer: Maxence Weynans " Website: https://github.com/vim/colorschemes " License: Vim License (see `:help license`)` -" Last Updated: Wed 15 Mar 2023 05:40:19 PM CET +" Last Updated: Fri 15 Dec 2023 20:05:42 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'sorbet' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link Terminal Normal hi! link StatusLineTerm StatusLine @@ -441,4 +441,4 @@ endif " Color: errorred #ff5f5f 203 red " Term colors: dark0 dark1 dark2 dark3 dark4 dark5 dark6 dark7 " Term colors: dark8 dark9 dark10 dark11 dark12 dark13 dark14 dark15 -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/torte.vim b/runtime/colors/torte.vim index 7ea5a69196..2ad17b05b0 100644 --- a/runtime/colors/torte.vim +++ b/runtime/colors/torte.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Thorsten Maerz " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:53:21 MSK +" Last Updated: Fri 15 Dec 2023 20:05:42 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'torte' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#000000', '#cd0000', '#00cd00', '#cdcd00', '#0000ee', '#cd00cd', '#00cdcd', '#e5e5e5', '#7f7f7f', '#ff0000', '#00ff00', '#ffff00', '#5c5cff', '#ff00ff', '#00ffff', '#ffffff'] @@ -420,4 +420,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/wildcharm.vim b/runtime/colors/wildcharm.vim index 900e948a94..31facfa918 100644 --- a/runtime/colors/wildcharm.vim +++ b/runtime/colors/wildcharm.vim @@ -4,14 +4,14 @@ " Maintainer: Maxim Kim " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Sun 12 Mar 2023 18:46:06 AEDT +" Last Updated: Fri 15 Dec 2023 20:05:43 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 hi clear let g:colors_name = 'wildcharm' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) hi! link Terminal Normal hi! link StatuslineTerm Statusline @@ -51,8 +51,8 @@ if &background ==# 'dark' hi PmenuExtra guifg=#767676 guibg=#303030 gui=NONE cterm=NONE hi PmenuExtraSel guifg=#000000 guibg=#ffaf00 gui=NONE cterm=NONE hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE - hi Error guifg=#ffffff guibg=#d7005f gui=NONE cterm=NONE - hi ErrorMsg guifg=#ffffff guibg=#d7005f gui=NONE cterm=NONE + hi Error guifg=#d7005f guibg=#ffffff gui=reverse cterm=reverse + hi ErrorMsg guifg=#d7005f guibg=#ffffff gui=reverse cterm=reverse hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold hi MoreMsg guifg=#00d75f guibg=NONE gui=NONE cterm=NONE hi Question guifg=#ff87ff guibg=NONE gui=NONE cterm=NONE @@ -63,9 +63,9 @@ if &background ==# 'dark' hi WildMenu guifg=#000000 guibg=#ffaf00 gui=NONE cterm=NONE hi debugPC guifg=#0087d7 guibg=NONE gui=reverse cterm=reverse hi debugBreakpoint guifg=#00afaf guibg=NONE gui=reverse cterm=reverse - hi Cursor guifg=#ffffff guibg=#000000 gui=reverse cterm=reverse - hi lCursor guifg=#ff5fff guibg=#000000 gui=reverse cterm=reverse - hi Visual guifg=#000000 guibg=#0087d7 gui=NONE cterm=NONE + hi Cursor guifg=#000000 guibg=#ffffff gui=NONE cterm=NONE + hi lCursor guifg=#000000 guibg=#ff5fff gui=NONE cterm=NONE + hi Visual guifg=#0087d7 guibg=#000000 gui=reverse cterm=reverse hi VisualNOS guifg=#000000 guibg=#00afff gui=NONE cterm=NONE hi CursorLine guifg=NONE guibg=#262626 gui=NONE cterm=NONE hi CursorColumn guifg=NONE guibg=#262626 gui=NONE cterm=NONE @@ -125,8 +125,8 @@ else hi PmenuExtra guifg=#808080 guibg=#e4e4e4 gui=NONE cterm=NONE hi PmenuExtraSel guifg=#ffffff guibg=#d78700 gui=NONE cterm=NONE hi SignColumn guifg=NONE guibg=NONE gui=NONE ctermfg=NONE ctermbg=NONE cterm=NONE - hi Error guifg=#ffffff guibg=#d70000 gui=NONE cterm=NONE - hi ErrorMsg guifg=#ffffff guibg=#d70000 gui=NONE cterm=NONE + hi Error guifg=#d70000 guibg=#ffffff gui=reverse cterm=reverse + hi ErrorMsg guifg=#d70000 guibg=#ffffff gui=reverse cterm=reverse hi ModeMsg guifg=NONE guibg=NONE gui=bold ctermfg=NONE ctermbg=NONE cterm=bold hi MoreMsg guifg=#008700 guibg=NONE gui=NONE cterm=NONE hi Question guifg=#870087 guibg=NONE gui=NONE cterm=NONE @@ -137,9 +137,9 @@ else hi WildMenu guifg=#ffffff guibg=#d78700 gui=NONE cterm=NONE hi debugPC guifg=#005faf guibg=NONE gui=reverse cterm=reverse hi debugBreakpoint guifg=#008787 guibg=NONE gui=reverse cterm=reverse - hi Cursor guifg=#000000 guibg=#ffffff gui=reverse cterm=reverse - hi lCursor guifg=#ff00ff guibg=#000000 gui=reverse cterm=reverse - hi Visual guifg=#ffffff guibg=#0087d7 gui=NONE cterm=NONE + hi Cursor guifg=#ffffff guibg=#000000 gui=NONE cterm=NONE + hi lCursor guifg=#000000 guibg=#ff00ff gui=NONE cterm=NONE + hi Visual guifg=#0087d7 guibg=#ffffff gui=reverse cterm=reverse hi VisualNOS guifg=#ffffff guibg=#005faf gui=NONE cterm=NONE hi CursorLine guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE hi CursorColumn guifg=NONE guibg=#eeeeee gui=NONE cterm=NONE @@ -207,8 +207,8 @@ if s:t_Co >= 256 hi PmenuExtra ctermfg=243 ctermbg=236 cterm=NONE hi PmenuExtraSel ctermfg=16 ctermbg=214 cterm=NONE hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE - hi Error ctermfg=231 ctermbg=161 cterm=NONE - hi ErrorMsg ctermfg=231 ctermbg=161 cterm=NONE + hi Error ctermfg=161 ctermbg=231 cterm=reverse + hi ErrorMsg ctermfg=161 ctermbg=231 cterm=reverse hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold hi MoreMsg ctermfg=41 ctermbg=NONE cterm=NONE hi Question ctermfg=213 ctermbg=NONE cterm=NONE @@ -219,7 +219,7 @@ if s:t_Co >= 256 hi WildMenu ctermfg=16 ctermbg=214 cterm=NONE hi debugPC ctermfg=32 ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=37 ctermbg=NONE cterm=reverse - hi Visual ctermfg=16 ctermbg=32 cterm=NONE + hi Visual ctermfg=32 ctermbg=16 cterm=reverse hi VisualNOS ctermfg=16 ctermbg=39 cterm=NONE hi CursorLine ctermfg=NONE ctermbg=235 cterm=NONE hi CursorColumn ctermfg=NONE ctermbg=235 cterm=NONE @@ -276,8 +276,8 @@ if s:t_Co >= 256 hi PmenuExtra ctermfg=240 ctermbg=254 cterm=NONE hi PmenuExtraSel ctermfg=231 ctermbg=172 cterm=NONE hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE - hi Error ctermfg=231 ctermbg=160 cterm=NONE - hi ErrorMsg ctermfg=231 ctermbg=160 cterm=NONE + hi Error ctermfg=160 ctermbg=231 cterm=reverse + hi ErrorMsg ctermfg=160 ctermbg=231 cterm=reverse hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold hi MoreMsg ctermfg=28 ctermbg=NONE cterm=NONE hi Question ctermfg=90 ctermbg=NONE cterm=NONE @@ -288,7 +288,7 @@ if s:t_Co >= 256 hi WildMenu ctermfg=231 ctermbg=172 cterm=NONE hi debugPC ctermfg=25 ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=30 ctermbg=NONE cterm=reverse - hi Visual ctermfg=231 ctermbg=32 cterm=NONE + hi Visual ctermfg=32 ctermbg=231 cterm=reverse hi VisualNOS ctermfg=231 ctermbg=25 cterm=NONE hi CursorLine ctermfg=NONE ctermbg=255 cterm=NONE hi CursorColumn ctermfg=NONE ctermbg=255 cterm=NONE @@ -350,8 +350,8 @@ if s:t_Co >= 16 hi PmenuExtra ctermfg=darkgrey ctermbg=grey cterm=NONE hi PmenuExtraSel ctermfg=black ctermbg=darkyellow cterm=NONE hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE - hi Error ctermfg=white ctermbg=darkred cterm=NONE - hi ErrorMsg ctermfg=white ctermbg=darkred cterm=NONE + hi Error ctermfg=darkred ctermbg=white cterm=reverse + hi ErrorMsg ctermfg=darkred ctermbg=white cterm=reverse hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold hi MoreMsg ctermfg=green ctermbg=NONE cterm=NONE hi Question ctermfg=magenta ctermbg=NONE cterm=NONE @@ -362,7 +362,7 @@ if s:t_Co >= 16 hi WildMenu ctermfg=black ctermbg=yellow cterm=NONE hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse - hi Visual ctermfg=black ctermbg=darkblue cterm=NONE + hi Visual ctermfg=darkblue ctermbg=black cterm=reverse hi VisualNOS ctermfg=black ctermbg=blue cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=yellow cterm=NONE @@ -419,8 +419,8 @@ if s:t_Co >= 16 hi PmenuExtra ctermfg=darkgrey ctermbg=grey cterm=NONE hi PmenuExtraSel ctermfg=black ctermbg=darkyellow cterm=NONE hi SignColumn ctermfg=NONE ctermbg=NONE cterm=NONE - hi Error ctermfg=white ctermbg=red cterm=NONE - hi ErrorMsg ctermfg=white ctermbg=red cterm=NONE + hi Error ctermfg=red ctermbg=white cterm=reverse + hi ErrorMsg ctermfg=red ctermbg=white cterm=reverse hi ModeMsg ctermfg=NONE ctermbg=NONE cterm=bold hi MoreMsg ctermfg=darkgreen ctermbg=NONE cterm=NONE hi Question ctermfg=darkmagenta ctermbg=NONE cterm=NONE @@ -431,7 +431,7 @@ if s:t_Co >= 16 hi WildMenu ctermfg=white ctermbg=yellow cterm=NONE hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse - hi Visual ctermfg=white ctermbg=blue cterm=NONE + hi Visual ctermfg=blue ctermbg=white cterm=reverse hi VisualNOS ctermfg=white ctermbg=darkblue cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline hi CursorColumn ctermfg=black ctermbg=yellow cterm=NONE @@ -505,7 +505,7 @@ if s:t_Co >= 8 hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse - hi Visual ctermfg=black ctermbg=darkblue cterm=NONE + hi Visual ctermfg=darkblue ctermbg=black cterm=reverse hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline hi VisualNOS ctermfg=black ctermbg=darkblue cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline @@ -572,7 +572,7 @@ if s:t_Co >= 8 hi WildMenu ctermfg=black ctermbg=darkyellow cterm=NONE hi debugPC ctermfg=darkblue ctermbg=NONE cterm=reverse hi debugBreakpoint ctermfg=darkcyan ctermbg=NONE cterm=reverse - hi Visual ctermfg=grey ctermbg=darkblue cterm=NONE + hi Visual ctermfg=darkblue ctermbg=grey cterm=reverse hi MatchParen ctermfg=NONE ctermbg=NONE cterm=bold,underline hi VisualNOS ctermfg=black ctermbg=darkblue cterm=NONE hi CursorLine ctermfg=NONE ctermbg=NONE cterm=underline @@ -750,4 +750,4 @@ endif " Term colors: color00 color01 color02 color03 color04 color05 color06 color07 " Term colors: color08 color09 color10 color11 color12 color13 color14 color15 " Background: any -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/zaibatsu.vim b/runtime/colors/zaibatsu.vim index d574c5eb6f..dba860397d 100644 --- a/runtime/colors/zaibatsu.vim +++ b/runtime/colors/zaibatsu.vim @@ -4,16 +4,16 @@ " Maintainer: Romain Lafourcade " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Sun Mar 12 17:21:15 2023 +" Last Updated: Fri 15 Dec 2023 20:05:43 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=dark hi clear let g:colors_name = 'zaibatsu' -let s:t_Co = exists('&t_Co') && !empty(&t_Co) && &t_Co > 1 ? &t_Co : 1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#0e0024', '#d7005f', '#00af5f', '#ffaf00', '#5f5fff', '#d700ff', '#00afff', '#d7d5db', '#878092', '#ff5faf', '#00d700', '#ffd700', '#8787ff', '#ff87ff', '#00ffff', '#ffffff'] @@ -560,4 +560,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 diff --git a/runtime/colors/zellner.vim b/runtime/colors/zellner.vim index 86340eb5b0..8a15004d5e 100644 --- a/runtime/colors/zellner.vim +++ b/runtime/colors/zellner.vim @@ -4,16 +4,16 @@ " Maintainer: Original maintainer Ron Aaron " Website: https://github.com/vim/colorschemes " License: Same as Vim -" Last Updated: Fri 02 Sep 2022 09:54:15 MSK +" Last Updated: Fri 15 Dec 2023 20:05:44 -" Generated by Colortemplate v2.2.0 +" Generated by Colortemplate v2.2.3 set background=light hi clear let g:colors_name = 'zellner' -let s:t_Co = exists('&t_Co') && !has('gui_running') ? (&t_Co ?? 0) : -1 +let s:t_Co = has('gui_running') ? -1 : (&t_Co ?? 0) if (has('termguicolors') && &termguicolors) || has('gui_running') let g:terminal_ansi_colors = ['#ffffff', '#a52a2a', '#ff00ff', '#a020f0', '#0000ff', '#0000ff', '#ff00ff', '#a9a9a9', '#ff0000', '#a52a2a', '#ff00ff', '#a020f0', '#0000ff', '#0000ff', '#ff00ff', '#000000'] @@ -408,4 +408,4 @@ endif " Color: fgDiffB #000000 16 black " Color: bgDiffC8 #5F87AF 67 darkblue " Color: bgDiffD8 #AF5FAF 133 darkmagenta -" vim: et ts=2 sw=2 +" vim: et ts=8 sw=2 sts=2 From 5eb9cb53d619f89251d22299e2cb4f21918d9d38 Mon Sep 17 00:00:00 2001 From: "D. Ben Knoble" Date: Sat, 16 Dec 2023 08:24:15 -0500 Subject: [PATCH 041/120] runtime(racket): update Racket runtime files (#13693) This brings the included Racket runtime files to commit 43bfc87 (update headers, 2023-12-15) of https://github.com/benknoble/vim-racket. Note that not all files from that repository are included. (In particular, the ftdetect script is omitted for now.) Signed-off-by: D. Ben Knoble Signed-off-by: Christian Brabandt --- runtime/autoload/racket.vim | 213 ++++++++++++++++++++++++++++++++++++ runtime/indent/racket.vim | 17 ++- runtime/syntax/racket.vim | 9 +- 3 files changed, 231 insertions(+), 8 deletions(-) create mode 100644 runtime/autoload/racket.vim diff --git a/runtime/autoload/racket.vim b/runtime/autoload/racket.vim new file mode 100644 index 0000000000..50c24b0b06 --- /dev/null +++ b/runtime/autoload/racket.vim @@ -0,0 +1,213 @@ +" Maintainer: D. Ben Knoble +" URL: https://github.com/benknoble/vim-racket +" Last Change: 2023 Sep 22 +vim9script + +def MakePatternFromLiterals(xs: list): string + return printf('\V%s', xs->mapnew((_, v) => escape(v, '\'))->join('\|')) +enddef + +const openers = ['(', '[', '{'] +const closers = {'(': ')', '[': ']', '{': '}'} +const brackets_pattern: string = closers->items()->flattennew()->MakePatternFromLiterals() + +# transliterated from a modified copy of src/indent.c + +export def Indent(): number + if InHerestring(v:lnum) + return -1 + endif + # Indent from first column to avoid odd results from nested forms. + cursor(v:lnum, 1) + const bracket = FindBracket() + if bracket == null_dict || !bracket.found + return -1 + endif + + # assert_report(printf('{lnum: %d, str: %s, found: %s, line: %d, column: %d}', + # v:lnum, getline(bracket.line)[bracket.column - 1], bracket.found, bracket.line, bracket.column)) + # N.B. Column =/= Line Index; Columns start at 1 + const amount: number = bracket.column + const line = getline(bracket.line) + + const lw = Lispword(line[bracket.column :]) + if !IsForFold(lw) # skip: see comments about for/fold special case below + # "Extra trick" + var current = prevnonblank(v:lnum - 1) + while current > bracket.line + cursor(current, 1) + if getline(current) !~# '^\s*;' && synID(current, 1, 0)->synIDattr('name') !~? 'string' && FindBracket() == bracket + return indent(current) + endif + current = prevnonblank(current - 1) + endwhile + cursor(v:lnum, 1) + endif + + if index(openers, line[bracket.column - 1]) >= 0 && !empty(lw) + # Special case for/fold &co. The iterator clause (2nd form) is indented + # under the accumulator clause (1st form). Everything else is standard. + const start_of_first_form = match(line[bracket.column :], MakePatternFromLiterals(openers)) + # assert_report(printf('{line: %s}', line)) + # assert_report(printf('{start: %s}', start_of_first_form >= 0 ? line[bracket.column + start_of_first_form :] : '')) + if IsForFold(lw) && IsSecondForm(bracket.line, bracket.column, v:lnum) && start_of_first_form >= 0 + return amount + start_of_first_form + else + # Lispword, but not for/fold second form (or first form couldn't be + # found): indent like define or lambda. + # 2 extra indent, but subtract 1 for columns starting at 1. + # Current vim9 doesn't constant fold "x + 2 - 1", so write "x + 1" + return amount + 1 + endif + else + # assert_report(printf('{line: %s}', line[bracket.column :])) + return amount + IndentForContinuation(bracket.line, bracket.column, line[bracket.column :]) + endif +enddef + +def InHerestring(start: number): bool + return synID(start, col([start, '$']) - 1, 0)->synIDattr('name') =~? 'herestring' +enddef + +def FindBracket(): dict + const paren = FindMatch('(', ')') + const square = FindMatch('\[', ']') + const curly = FindMatch('{', '}') + return null_dict + ->MatchMax(paren) + ->MatchMax(square) + ->MatchMax(curly) +enddef + +def Lispword(line: string): string + # assume keyword on same line as opener + const word: string = matchstr(line, '^\s*\k\+\>')->trim() + # assert_report(printf('line: %s; word: %s', line, word)) + # assert_report(&l:lispwords->split(',')->index(word) >= 0 ? 't' : 'f') + return &l:lispwords->split(',')->index(word) >= 0 ? word : '' +enddef + +# line contains everything on line_nr after column +def IndentForContinuation(line_nr: number, column: number, line: string): number + const end = len(line) + var indent = match(line, '[^[:space:]]') + # first word is a string or some other literal (or maybe a form); assume that + # the current line is outside such a thing + if indent < end && ['"', '#']->index(line[indent]) >= 0 + return indent + endif + if indent < end && ["'", '`']->index(line[indent]) >= 0 + # could be a form or a word. Advance one and see. + ++indent + endif + if indent < end && ['(', '[', '{']->index(line[indent]) >= 0 + # there's a form; assume outside, but need to skip it to see if any others + cursor(line_nr, column + indent + 1) + # assert_report(getline(line_nr)[column + indent :]) + normal! % + const [_, matched_line, matched_col, _, _] = getcursorcharpos() + if line_nr != matched_line || matched_col == column + indent + 1 + return indent + endif + indent = matched_col - column + endif + var in_delim: bool + var quoted: bool + while indent < end && (line[indent] !~# '\s' || in_delim || quoted) + if line[indent] == '\' && !in_delim + quoted = true + else + quoted = false + endif + if line[indent] == '|' && !quoted + in_delim = !in_delim + endif + ++indent + endwhile + # not handling newlines in first words + if quoted || in_delim + return 0 + endif + # no other word on this line + if indent == end + return 0 + endif + # find beginning of next word + indent += match(line[indent :], '[^[:space:]]') + return indent +enddef + +def FindMatch(start: string, end: string): dict + # TODO too slow… + # could try replicating C? might have false positives. Or make "100" + # configurable number: for amounts of indent bodies, we're still fast enough… + const [linenr, column] = searchpairpos(start, '', end, 'bnzW', + () => + synID(line('.'), col('.'), 0)->synIDattr('name') =~? 'char\|string\|comment', + line('.') > 100 ? line('.') - 100 : 0) + if linenr > 0 && column > 0 + return {found: true, line: linenr, column: column} + else + return {found: false, line: linenr, column: column} + endif +enddef + +def MatchMax(left: dict, right: dict): dict + if left == null_dict || !left.found + return right + endif + if right == null_dict || !right.found + return left + endif + # left and right non-null, both found + return PosLT(left, right) ? right : left +enddef + +def PosLT(left: dict, right: dict): bool + return left.line != right.line + \ ? left.line < right.line + \ : (left.column != right.column && left.column < right.column) +enddef + +def IsForFold(word: string): bool + return ['for/fold', 'for/foldr', 'for*/fold', 'for*/foldr']->index(word) >= 0 +enddef + +def IsSecondForm(blnum: number, bcol: number, vlnum: number): bool + var forms_seen: number # "top-level" (inside for/fold) counter only + var [lnum, col] = [blnum, bcol + 1] + cursor(lnum, col) + var stack: list = [] + + while lnum <= vlnum + const found = search(brackets_pattern, '', vlnum, 0, () => + synID(line('.'), col('.'), 0)->synIDattr('name') =~? 'char\|string\|comment') + if found <= 0 + break + endif + const pos = getcursorcharpos() + lnum = pos[1] + col = pos[2] + var current_char = getline(lnum)[col - 1] + # assert_report(printf('search: %d, %d: %s', lnum, col, current_char)) + # assert_report(printf('forms seen post-search: %d', forms_seen)) + if index(openers, current_char) >= 0 + insert(stack, current_char) + elseif !empty(stack) && current_char ==# closers[stack[0]] + stack = stack[1 :] + if empty(stack) + ++forms_seen + endif + else + # parse failure of some kind: not an opener or not the correct closer + return false + endif + # assert_report(printf('forms seen pre-check: %d', forms_seen)) + if forms_seen > 2 + return false + endif + endwhile + + # assert_report(printf('forms seen pre-return: %d', forms_seen)) + return forms_seen == 2 || (forms_seen == 1 && !empty(stack)) +enddef diff --git a/runtime/indent/racket.vim b/runtime/indent/racket.vim index 93bd38fbff..2d45d89242 100644 --- a/runtime/indent/racket.vim +++ b/runtime/indent/racket.vim @@ -3,7 +3,7 @@ " Maintainer: D. Ben Knoble " Previous Maintainer: Will Langstroth " URL: https://github.com/benknoble/vim-racket -" Last Change: 2022 Aug 12 +" Last Change: 2023 Jul 17 if exists("b:did_indent") finish @@ -11,18 +11,25 @@ endif let b:did_indent = 1 setlocal lisp autoindent nosmartindent +if has('vim9script') + setlocal indentexpr=racket#Indent() lispoptions+=expr:1 +endif -setlocal lispwords+=module,module*,module+,parameterize,let-values,let*-values,letrec-values,local +setlocal lispwords+=module,module*,module+,parameterize,parameterize*,let-values,let*-values,letrec-values,local setlocal lispwords+=define/contract setlocal lispwords+=λ setlocal lispwords+=with-handlers setlocal lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case,syntax-parse setlocal lispwords+=define-for-syntax,define-syntax-parser,define-syntax-parse-rule,define-syntax-class,define-splicing-syntax-class +setlocal lispwords+=define-syntax-parameter,syntax-parameterize setlocal lispwords+=define-signature,unit,unit/sig,compund-unit/sig,define-values/invoke-unit/sig setlocal lispwords+=define-opt/c,define-syntax-rule -setlocal lispwords+=define-test-suite +setlocal lispwords+=define-test-suite,test-case setlocal lispwords+=struct setlocal lispwords+=with-input-from-file,with-output-to-file +setlocal lispwords+=begin,begin0 +setlocal lispwords+=place +setlocal lispwords+=cond " Racket OOP " TODO missing a lot of define-like forms here (e.g., define/augment, etc.) @@ -41,6 +48,8 @@ setlocal lispwords+=for/hash,for/hasheq,for/hasheqv,for/sum,for/flvector,for*/fl setlocal lispwords+=for/async setlocal lispwords+=for/set,for*/set setlocal lispwords+=for/first,for*/first +setlocal lispwords+=for/last,for*/last +setlocal lispwords+=for/stream,for*/stream setlocal lispwords+=match,match*,match/values,define/match,match-lambda,match-lambda*,match-lambda** setlocal lispwords+=match-let,match-let*,match-let-values,match-let*-values @@ -57,4 +66,4 @@ setlocal lispwords+=if-view,case-view,cond-view,list-view,dyn-view setlocal lispwords+=case/dep setlocal lispwords+=define/obs -let b:undo_indent = "setlocal lisp< ai< si< lw<" +let b:undo_indent = "setlocal indentexpr< lisp< lispoptions< ai< si< lw<" diff --git a/runtime/syntax/racket.vim b/runtime/syntax/racket.vim index b1ed2b454c..fcd64a7c9b 100644 --- a/runtime/syntax/racket.vim +++ b/runtime/syntax/racket.vim @@ -4,7 +4,7 @@ " Previous Maintainer: Will Langstroth " URL: https://github.com/benknoble/vim-racket " Description: Contains all of the keywords in #lang racket -" Last Change: 2022 Aug 12 +" Last Change: 2023 Sep 22 " Initializing: if exists("b:current_syntax") @@ -514,13 +514,13 @@ syntax region racketString start=/\%(\\\)\@ Date: Sat, 16 Dec 2023 13:27:09 +0000 Subject: [PATCH 042/120] runtime(logtalk): Update Logtalk runtime files for the latest language spec (#13697) Signed-off-by: Paulo Moura Signed-off-by: Christian Brabandt --- runtime/ftplugin/logtalk.dict | 19 ++++++++----- runtime/syntax/logtalk.vim | 51 ++++++++++++++++++----------------- 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/runtime/ftplugin/logtalk.dict b/runtime/ftplugin/logtalk.dict index 3fcdfc6f6a..0d076b7b3e 100644 --- a/runtime/ftplugin/logtalk.dict +++ b/runtime/ftplugin/logtalk.dict @@ -18,10 +18,7 @@ atan2 atom atomic atom_chars -atom_chars atom_codes -atom_codes -atom_concat atom_concat atom_length at_end_of_stream @@ -32,6 +29,7 @@ call callable calls catch +catchall_catch category category_property ceiling @@ -45,9 +43,9 @@ coinduction coinductive compare complements -complements complements_object compound +conditionals conforms_to_protocol context context_switching_calls @@ -87,6 +85,7 @@ end_object end_protocol engines ensure_loaded +error evaluation_error events existence_error @@ -152,12 +151,13 @@ nonvar number numbervars number_chars -number_chars -number_codes number_codes object object_property once +one +one_or_error +one_or_more op open optimize @@ -226,6 +226,7 @@ term_variables this threaded threaded_call +threaded_cancel threaded_engine threaded_engine_create threaded_engine_destroy @@ -250,6 +251,7 @@ type_error undefined_predicates underscore_variables unify_with_occurs_check +uninstantiation_error unknown_entities unknown_predicates uses @@ -260,3 +262,8 @@ write writeq write_canonical xor +zero +zero_or_error +zero_or_more +zero_or_one +zero_or_one_or_error diff --git a/runtime/syntax/logtalk.vim b/runtime/syntax/logtalk.vim index bc70ef41b4..2c6c82aaa0 100644 --- a/runtime/syntax/logtalk.vim +++ b/runtime/syntax/logtalk.vim @@ -1,8 +1,9 @@ " Vim syntax file " " Language: Logtalk -" Maintainer: Paulo Moura -" Last Change: August 3, 2018 +" Maintainer: Paulo Moura +" Last Change: December 16, 2023 + " quit when a syntax file was already loaded @@ -30,7 +31,7 @@ syn match logtalkOperator ":-" " Logtalk quoted atoms and strings -syn region logtalkString start=+"+ skip=+\\"+ end=+"+ +syn region logtalkString start=+"+ skip=+\\"+ end=+"+ contains=logtalkEscapeSequence syn region logtalkAtom start=+'+ skip=+\\'+ end=+'+ contains=logtalkEscapeSequence syn match logtalkEscapeSequence contained "\\\([\\abfnrtv\"\']\|\(x[a-fA-F0-9]\+\|[0-7]\+\)\\\)" @@ -39,7 +40,7 @@ syn match logtalkEscapeSequence contained "\\\([\\abfnrtv\"\']\|\(x[a-fA-F0-9]\+ " Logtalk message sending operators syn match logtalkOperator "::" -syn match logtalkOperator ":" +syn match logtalkOperator "\(0'\)\@" syn match logtalkBuiltIn "\<\(for\|retract\)all\ze(" -syn match logtalkBuiltIn "\" syn match logtalkKeyword "\" syn match logtalkKeyword "\" syn match logtalkKeyword "\" syn match logtalkOperator "->" syn match logtalkKeyword "\" -syn match logtalkKeyword "\<\(type\|domain\|existence\|permission\|representation\|evaluation\|resource\|syntax\)_error\ze(" +syn match logtalkKeyword "\<\(uninstantiation\|type\|domain\|existence\|permission\|representation\|evaluation\|resource\|syntax\)_error\ze(" " Term unification -syn match logtalkOperator "=" +syn match logtalkOperator "\(0'\)\@" syn match logtalkOperator "=:=" syn match logtalkOperator "=\\=" -syn match logtalkOperator "<" +syn match logtalkOperator "\(0'\)\@" +syn match logtalkOperator "\(0'\)\@" syn match logtalkOperator ">=" @@ -310,11 +311,11 @@ syn match logtalkKeyword "\<\(key\)\?sort\ze(" " Evaluable functors -syn match logtalkOperator "+" -syn match logtalkOperator "-" -syn match logtalkOperator "\*" +syn match logtalkOperator "\(0'\)\@" @@ -330,7 +331,7 @@ syn match logtalkKeyword "\>" syn match logtalkOperator "<<" syn match logtalkOperator "/\\" syn match logtalkOperator "\\/" -syn match logtalkOperator "\\" +syn match logtalkOperator "0'\@" syn match logtalkNumber "\<\d\+\.\d\+\>" syn match logtalkNumber "\<\d\+[eE][-+]\=\d\+\>" syn match logtalkNumber "\<\d\+\.\d\+[eE][-+]\=\d\+\>" -syn match logtalkNumber "\<0'[\\]\?.\|0''\|0'\"\>" +syn match logtalkNumber "0'[\\]\?." syn match logtalkNumber "\<0b[0-1]\+\>" syn match logtalkNumber "\<0o\o\+\>" syn match logtalkNumber "\<0x\x\+\>" @@ -374,13 +375,13 @@ syn match logtalkNumber "\<0x\x\+\>" " Logtalk end-of-clause -syn match logtalkOperator "\." +syn match logtalkOperator "\(0'\)\@ Date: Sat, 16 Dec 2023 07:30:12 -0600 Subject: [PATCH 043/120] translation(ie): Updated Irish translation (#13699) Signed-off-by: Kevin Scannell Signed-off-by: Christian Brabandt --- src/po/ga.po | 388 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 282 insertions(+), 106 deletions(-) diff --git a/src/po/ga.po b/src/po/ga.po index ae907fe15c..e81ef69d0f 100644 --- a/src/po/ga.po +++ b/src/po/ga.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Vim 7.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-23 21:51+0000\n" +"POT-Creation-Date: 2023-12-15 23:11+0000\n" "PO-Revision-Date: 2023-08-24 15:41-0500\n" "Last-Translator: Kevin Patrick Scannell \n" "Language-Team: Irish \n" @@ -298,27 +298,39 @@ msgstr "[criptithe]" #, c-format msgid "xchacha20v2: using custom opslimit \"%llu\" for Key derivation." -msgstr "xchacha20v2: ag baint úsáide as opslimit saincheaptha \"%llu\" agus an eochair á díorthú." +msgstr "" +"xchacha20v2: ag baint úsáide as opslimit saincheaptha \"%llu\" agus an " +"eochair á díorthú." #, c-format msgid "xchacha20v2: using default opslimit \"%llu\" for Key derivation." -msgstr "xchacha20v2: ag baint úsáide as an opslimit réamhshocraithe \"%llu\" agus an eochair á díorthú." +msgstr "" +"xchacha20v2: ag baint úsáide as an opslimit réamhshocraithe \"%llu\" agus an " +"eochair á díorthú." #, c-format msgid "xchacha20v2: using custom memlimit \"%lu\" for Key derivation." -msgstr "xchacha20v2: ag baint úsáide as memlimit saincheaptha \"%lu\" agus an eochair á díorthú." +msgstr "" +"xchacha20v2: ag baint úsáide as memlimit saincheaptha \"%lu\" agus an " +"eochair á díorthú." #, c-format msgid "xchacha20v2: using default memlimit \"%lu\" for Key derivation." -msgstr "xchacha20v2: ag baint úsáide as an memlimit réamhshocraithe \"%lu\" agus an eochair á díorthú." +msgstr "" +"xchacha20v2: ag baint úsáide as an memlimit réamhshocraithe \"%lu\" agus an " +"eochair á díorthú." #, c-format msgid "xchacha20v2: using custom algorithm \"%d\" for Key derivation." -msgstr "xchacha20v2: ag baint úsáide as algartam saincheaptha \"%d\" agus an eochair á díorthú." +msgstr "" +"xchacha20v2: ag baint úsáide as algartam saincheaptha \"%d\" agus an eochair " +"á díorthú." #, c-format msgid "xchacha20v2: using default algorithm \"%d\" for Key derivation." -msgstr "xchacha20v2: ag baint úsáide as an algartam réamhshocraithe \"%d\" agus an eochair á díorthú." +msgstr "" +"xchacha20v2: ag baint úsáide as an algartam réamhshocraithe \"%d\" agus an " +"eochair á díorthú." msgid "Entering Debug mode. Type \"cont\" to continue." msgstr "Mód dífhabhtaithe á thosú. Clóscríobh \"cont\" le dul ar aghaidh." @@ -1693,7 +1705,8 @@ msgstr "" "teirminéal" msgid "--gui-dialog-file {fname} For testing: write dialog text" -msgstr "--gui-dialog-file {fname} Le haghaidh tástála: scríobh téacs na dialóige" +msgstr "" +"--gui-dialog-file {fname} Le haghaidh tástála: scríobh téacs na dialóige" msgid "--ttyfail\t\tExit if input or output is not a terminal" msgstr "--ttyfail\t\tScoir mura bhfuil ionchur nó aschur ina theirminéal" @@ -4000,7 +4013,8 @@ msgstr "E10: Ba ch msgid "E11: Invalid in command-line window; :q closes the window" msgstr "" -"E11: Neamhbhailí i bhfuinneog líne na n-orduithe; :q chun an fhuinneog a dhúnadh" +"E11: Neamhbhailí i bhfuinneog líne na n-orduithe; :q chun an fhuinneog a " +"dhúnadh" msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" msgstr "" @@ -5076,7 +5090,9 @@ msgid "E339: Pattern too long" msgstr "E339: Slonn rófhada" msgid "E340: Internal error; if you can reproduce please report a bug" -msgstr "E340: Earráid inmheánach: más féidir leat an fhadhb a chruthú arís, cuir tuairisc chugainn, le do thoil" +msgstr "" +"E340: Earráid inmheánach: más féidir leat an fhadhb a chruthú arís, cuir " +"tuairisc chugainn, le do thoil" #, c-format msgid "E342: Out of memory! (allocating %lu bytes)" @@ -5373,7 +5389,7 @@ msgid "E423: Illegal argument: %s" msgstr "E423: Argóint neamhcheadaithe: %s" msgid "E424: Too many different highlighting attributes in use" -msgstr "E424: An iomarca tréithe aibhsithe in úsáid" +msgstr "E424: An iomarca aitreabúidí aibhsithe in úsáid" msgid "E425: Cannot go before first matching tag" msgstr "E425: Ní féidir a dhul roimh an chéad chlib chomhoiriúnach" @@ -6043,9 +6059,6 @@ msgstr "E613: Cl msgid "E614: Class required" msgstr "E614: Aicme ag teastáil" -msgid "E615: Object required" -msgstr "E615: Réad ag teastáil" - #, c-format msgid "E616: Object required for argument %d" msgstr "E616: Réad ag teastáil in argóint %d" @@ -6154,9 +6167,6 @@ msgstr "E647: Aitheant msgid "E648: Invalid buffer identifier in close" msgstr "E648: Aitheantóir maoláin neamhbhailí in close" -msgid "E649: Invalid buffer identifier in close" -msgstr "E649: Aitheantóir maoláin neamhbhailí in close" - msgid "E650: Invalid buffer identifier in defineAnnoType" msgstr "E650: Aitheantóir maoláin neamhbhailí in defineAnnoType" @@ -6284,8 +6294,9 @@ msgstr "E687: N msgid "E688: More targets than List items" msgstr "E688: Níos mó spriocanna ná míreanna Liosta" -msgid "E689: Can only index a List, Dictionary or Blob" -msgstr "E689: Ní féidir ach Liosta, Foclóir, nó Bloba a innéacsú" +#, c-format +msgid "E689: Index not allowed after a %s: %s" +msgstr "E689: Ní cheadaítear innéacs tar éis %s: %s" msgid "E690: Missing \"in\" after :for" msgstr "E690: \"in\" ar iarraidh i ndiaidh :for" @@ -6297,8 +6308,8 @@ msgid "E692: Invalid operation for List" msgstr "E692: Oibríocht neamhbhailí ar Liostaí" #, c-format -msgid "E693: List or Class required for argument %d" -msgstr "E693: Liosta nó Aicme ag teastáil le hargóint %d" +msgid "E693: Class or class typealias required for argument %d" +msgstr "E693: Aicme nó ailias aicme ag teastáil le hargóint %d" msgid "E694: Invalid operation for Funcrefs" msgstr "E694: Oibríocht neamhbhailí ar Funcref" @@ -7251,8 +7262,8 @@ msgid "E962: Invalid action: '%s'" msgstr "E962: Gníomh neamhbhailí: '%s'" #, c-format -msgid "E963: Setting %s to value with wrong type" -msgstr "E963: %s á shocrú go dtí luach den chineál mícheart" +msgid "E963: Setting v:%s to value with wrong type" +msgstr "E963: v:%s á shocrú le luach den chineál mícheart" #, c-format msgid "E964: Invalid column number: %ld" @@ -7667,7 +7678,8 @@ msgid "E1077: Missing argument type for %s" msgstr "E1077: Cineál argóinte ar iarraidh le haghaidh %s" msgid "E1078: Invalid command \"nested\", did you mean \"++nested\"?" -msgstr "E1078: Ordú \"nested\" neamhbhailí; an é \"++nested\" a bhí i gceist agat?" +msgstr "" +"E1078: Ordú \"nested\" neamhbhailí; an é \"++nested\" a bhí i gceist agat?" msgid "E1079: Cannot declare a variable on the command line" msgstr "E1079: Ní féidir athróg a fhógairt ar líne na n-orduithe" @@ -8117,8 +8129,8 @@ msgid "E1202: No white space allowed after '%s': %s" msgstr "E1202: Ní cheadaítear spás bán tar éis '%s': %s" #, c-format -msgid "E1203: Dot can only be used on a dictionary: %s" -msgstr "E1203: Is féidir an ponc a úsáid le foclóirí amháin: %s" +msgid "E1203: Dot not allowed after a %s: %s" +msgstr "E1203: Ní cheadaítear ponc tar éis %s: %s" #, c-format msgid "E1204: No Number allowed after .: '\\%%%c'" @@ -8342,7 +8354,8 @@ msgid "E1262: Cannot import the same script twice: %s" msgstr "E1262: Ní féidir an script chéanna a iompórtáil faoi dhó: %s" msgid "E1263: Cannot use name with # in Vim9 script, use export instead" -msgstr "E1263: Ní féidir ainm le # a úsáid i script Vim9; úsáid easpórtáil ina áit" +msgstr "" +"E1263: Ní féidir ainm le # a úsáid i script Vim9; úsáid easpórtáil ina áit" #, c-format msgid "E1264: Autoload import cannot use absolute or relative path: %s" @@ -8357,12 +8370,12 @@ msgid "" "E1266: Critical error in python3 initialization, check your python3 " "installation" msgstr "" -"E1266: Earráid chriticiúil agus python3 á thosú; seiceáil python3 ar do ríomhaire" +"E1266: Earráid chriticiúil agus python3 á thosú; seiceáil python3 ar do " +"ríomhaire" #, c-format msgid "E1267: Function name must start with a capital: %s" -msgstr "" -"E1267: Caithfidh ceannlitir a bheith ar dtús ainm feidhme: %s" +msgstr "E1267: Caithfidh ceannlitir a bheith ar dtús ainm feidhme: %s" #, c-format msgid "E1268: Cannot use s: in Vim9 script: %s" @@ -8460,13 +8473,15 @@ msgid "E1293: Cannot use a negative id after adding a textprop with text" msgstr "E1293: Ní féidir ID diúltach a úsáid tar éis airíonna a chur le téacs" msgid "E1294: Can only use text_align when column is zero" -msgstr "E1294: Ní féidir text_align a úsáid mura bhfuil an colún cothrom le náid" +msgstr "" +"E1294: Ní féidir text_align a úsáid mura bhfuil an colún cothrom le náid" msgid "E1295: Cannot specify both 'type' and 'types'" msgstr "E1295: Ní féidir 'type' agus 'types' araon a shonrú" msgid "E1296: Can only use left padding when column is zero" -msgstr "E1296: Ní féidir stuáil ar chlé a úsáid mura bhfuil an colún cothrom le náid" +msgstr "" +"E1296: Ní féidir stuáil ar chlé a úsáid mura bhfuil an colún cothrom le náid" #, c-format msgid "E1297: Non-NULL Dictionary required for argument %d" @@ -8500,7 +8515,8 @@ msgstr "E1304: N msgid "" "E1305: Cannot use \"length\", \"end_col\" and \"end_lnum\" with \"text\"" msgstr "" -"E1305: Ní féidir \"length\", \"end_col\" agus \"end_lnum\" a úsáid le \"text\"" +"E1305: Ní féidir \"length\", \"end_col\" agus \"end_lnum\" a úsáid le " +"\"text\"" msgid "E1306: Loop nesting too deep" msgstr "E1306: Neadú ródhomhain i lúb" @@ -8522,7 +8538,8 @@ msgid "E1311: Cannot change user commands while listing" msgstr "E1311: Ní féidir an t-ordú úsáideora a athrú le linn liostaithe" msgid "E1312: Not allowed to change the window layout in this autocmd" -msgstr "E1312: Níl cead agat leagan amach na fuinneoige a athrú san uathordú seo" +msgstr "" +"E1312: Níl cead agat leagan amach na fuinneoige a athrú san uathordú seo" #, c-format msgid "E1313: Not allowed to add or remove entries (%s)" @@ -8540,38 +8557,38 @@ msgid "E1316: Class can only be defined in Vim9 script" msgstr "E1316: Is féidir aicme a shainmhíniú i script Vim9 amháin" #, c-format -msgid "E1317: Invalid object member declaration: %s" -msgstr "E1317: Fógairt neamhbhailí ar bhall réada: %s" +msgid "E1317: Invalid object variable declaration: %s" +msgstr "E1317: Fógairt neamhbhailí ar athróg réada: %s" #, c-format msgid "E1318: Not a valid command in a class: %s" msgstr "E1318: Ní ordú bailí in aicme é seo: %s" -msgid "E1319: Using a class as a Number" +msgid "E1319: Using a Class as a Number" msgstr "E1319: Aicme á húsáid mar Uimhir" -msgid "E1320: Using an object as a Number" +msgid "E1320: Using an Object as a Number" msgstr "E1320: Réad á úsáid mar Uimhir" -msgid "E1321: Using a class as a Float" +msgid "E1321: Using a Class as a Float" msgstr "E1321: Aicme á húsáid mar Shnámhphointe" -msgid "E1322: Using an object as a Float" +msgid "E1322: Using an Object as a Float" msgstr "E1322: Réad á úsáid mar Shnámhphointe" -msgid "E1323: Using a class as a String" +msgid "E1323: Using a Class as a String" msgstr "E1323: Aicme á húsáid mar Theaghrán" -msgid "E1324: Using an object as a String" +msgid "E1324: Using an Object as a String" msgstr "E1324: Réad á úsáid mar Theaghrán" #, c-format -msgid "E1325: Method not found on class \"%s\": %s" -msgstr "E1325: Modh gan aimsiú san aicme \"%s\": %s" +msgid "E1325: Method \"%s\" not found in class \"%s\"" +msgstr "E1325: Modh \"%s\" gan aimsiú in aicme \"%s\"" #, c-format -msgid "E1326: Member not found on object \"%s\": %s" -msgstr "E1326: Ball gan aimsiú sa réad \"%s\": %s" +msgid "E1326: Variable \"%s\" not found in object \"%s\"" +msgstr "E1326: Athróg \"%s\" gan aimsiú i réad \"%s\"" #, c-format msgid "E1327: Object required, found %s" @@ -8579,47 +8596,42 @@ msgstr "E1327: R #, c-format msgid "E1328: Constructor default value must be v:none: %s" -msgstr "E1328: Ní mór v:none: a shonrú mar luach réamhshocraithe i gcruthaitheoir: %s" +msgstr "" +"E1328: Ní mór v:none: a shonrú mar luach réamhshocraithe i gcruthaitheoir: %s" #, c-format -msgid "E1329: Cannot get object member type from initializer: %s" -msgstr "E1329: Ní féídir cineál an bhaill a fháil ó thúsaitheoir: %s" +msgid "E1329: Invalid class variable declaration: %s" +msgstr "E1329: Fógairt neamhbhailí ar athróg aicme: %s" #, c-format -msgid "E1330: Invalid type for object member: %s" -msgstr "E1330: Cineál neamhbhailí ar bhall réada: %s" +msgid "E1330: Invalid type for object variable: %s" +msgstr "E1330: Cineál neamhbhailí ar athróg réada: %s" -msgid "E1331: Public must be followed by \"this\" or \"static\"" -msgstr "E1331: \"this\" nó \"static\" ag teastáil tar éis \"public\"" +msgid "E1331: Public must be followed by \"var\" or \"static\"" +msgstr "E1331: \"var\" nó \"static\" ag teastáil tar éis \"public\"" #, c-format -msgid "E1332: Public member name cannot start with underscore: %s" -msgstr "E1332: Ní féidir fostríoc a úsáid ag tús ainm baill phoiblí: %s" +msgid "E1332: Public variable name cannot start with underscore: %s" +msgstr "E1332: Ní cheadaítear fostríoc ag tús athróige poiblí: %s" #, c-format -msgid "E1333: Cannot access private member: %s" -msgstr "E1333: Ní féidir ball príobháideach a rochtain: %s" +msgid "E1333: Cannot access protected variable \"%s\" in class \"%s\"" +msgstr "E1333: Ní féidir athróg chosanta \"%s\" in aicme \"%s\" a rochtain" #, c-format -msgid "E1334: Object member not found: %s" -msgstr "E1334: Ball réada gan aimsiú: %s" +msgid "E1335: Variable \"%s\" in class \"%s\" is not writable" +msgstr "E1335: Níl athróg \"%s\" in aicme \"%s\" inscríofa" #, c-format -msgid "E1335: Member is not writable: %s" -msgstr "E1335: Ní féidir scríobh ar an mball: %s" - -#, c-format -msgid "E1337: Class member not found: %s" -msgstr "E1337: Ball aicme gan aimsiú: %s" - -#, c-format -msgid "E1338: Member not found on class \"%s\": %s" -msgstr "E1338: Ball gan aimsiú in aicme \"%s\": %s" +msgid "E1337: Class variable \"%s\" not found in class \"%s\"" +msgstr "E1337: Athróg aicme \"%s\" gan aimsiú in aicme \"%s\"" msgid "" "E1339: Cannot add a textprop with text after using a textprop with a " "negative id" -msgstr "E1339: Ní féidir airíonna a chur le téacs tar éis airíonna a úsáid le ID diúltach" +msgstr "" +"E1339: Ní féidir airíonna a chur le téacs tar éis airíonna a úsáid le ID " +"diúltach" #, c-format msgid "E1340: Argument already declared in the class: %s" @@ -8636,8 +8648,8 @@ msgstr "E1342: Is f msgid "E1343: Interface name must start with an uppercase letter: %s" msgstr "E1343: Caithfidh ceannlitir a bheith ag tús ainm an chomhéadain: %s" -msgid "E1344: Cannot initialize a member in an interface" -msgstr "E1344: Ní féidir ball a thúsú i gcomhéadan" +msgid "E1344: Cannot initialize a variable in an interface" +msgstr "E1344: Ní féidir athróg a thúsú i gcomhéadan" #, c-format msgid "E1345: Not a valid command in an interface: %s" @@ -8652,12 +8664,12 @@ msgid "E1347: Not a valid interface: %s" msgstr "E1347: Ní comhéadan bailí é seo: %s" #, c-format -msgid "E1348: Member \"%s\" of interface \"%s\" not implemented" -msgstr "E1348: Ball \"%s\" i gcomhéadan \"%s\" gan feidhmiú" +msgid "E1348: Variable \"%s\" of interface \"%s\" is not implemented" +msgstr "E1348: Níor cuireadh athróg \"%s\" i gcomhéadan \"%s\" i bhfeidhm" #, c-format -msgid "E1349: Function \"%s\" of interface \"%s\" not implemented" -msgstr "E1349: Feidhm \"%s\" i gcomhéadan \"%s\" gan feidhmiú" +msgid "E1349: Method \"%s\" of interface \"%s\" is not implemented" +msgstr "E1349: Níor cuireadh modh \"%s\" i gcomhéadan \"%s\" i bhfeidhm" msgid "E1350: Duplicate \"implements\"" msgstr "E1350: \"implements\" dúbailte" @@ -8684,14 +8696,14 @@ msgstr "E1355: Feidhm dh msgid "E1356: \"super\" must be followed by a dot" msgstr "E1356: Ní mór ponc a chur i ndiaidh \"super\"" -msgid "E1357: Using \"super\" not in a class function" -msgstr "E1357: \"super\" taobh amuigh d'fheidhm aicme" +msgid "E1357: Using \"super\" not in a class method" +msgstr "E1357: Ag baint úsáide as \"super\" taobh amuigh de mhodh aicme" msgid "E1358: Using \"super\" not in a child class" msgstr "E1358: \"super\" taobh amuigh de mhacaicme" -msgid "E1359: Cannot define a \"new\" function in an abstract class" -msgstr "E1359: Ní féidir feidhm \"new\" a shainmhíniú in aicme theibí" +msgid "E1359: Cannot define a \"new\" method in an abstract class" +msgstr "E1359: Ní féidir modh \"new\" a shainmhíniú in aicme theibí" msgid "E1360: Using a null object" msgstr "E1360: Ag baint úsáide as réad nialasach" @@ -8708,42 +8720,205 @@ msgstr "E1363: Cine msgid "E1364: Warning: Pointer block corrupted" msgstr "E1364: Rabhadh: Bloc pointeoirí truaillithe" -msgid "E1365: Cannot use a return type with the \"new\" function" -msgstr "E1365: Ní féidir luach a aischur ó fheidhm \"new\"" +msgid "E1365: Cannot use a return type with the \"new\" method" +msgstr "E1365: Ní féidir luach a aischur ón modh \"new\"" #, c-format -msgid "E1400: Cannot mix positional and non-positional arguments: %s" -msgstr "E1400: Ní féidir argóintí suíomhacha agus neamhshuíomhacha a úsáid le chéile: %s" +msgid "E1366: Cannot access protected method: %s" +msgstr "E1366: Ní féidir modh cosanta a rochtain: %s" #, c-format -msgid "E1401: format argument %d unused in $-style format: %s" -msgstr "E1401: argóint formáide %d gan úsáid i bhformáid $-stíle: %s" +msgid "E1367: Access level of variable \"%s\" of interface \"%s\" is different" +msgstr "E1367: Leibhéal rochtana difriúil ar athróg \"%s\" i gcomhéadan \"%s\"" + +msgid "E1368: Static must be followed by \"var\" or \"def\"" +msgstr "E1368: \"var\" nó \"def\" ag teastáil tar éis \"static\"" + +#, c-format +msgid "E1369: Duplicate variable: %s" +msgstr "E1369: Athróg dhúbailte: %s" + +msgid "E1370: Cannot define a \"new\" method as static" +msgstr "E1370: Ní féidir modh \"new\" a shainmhíniú mar mhodh statach" + +msgid "E1371: Abstract must be followed by \"def\"" +msgstr "E1371: \"def\" ag teastáil tar éis \"abstract\"" + +#, c-format +msgid "E1372: Abstract method \"%s\" cannot be defined in a concrete class" +msgstr "E1372: Ní cheadaítear modh teibí \"%s\" in aicme choincréiteach" + +#, c-format +msgid "E1373: Abstract method \"%s\" is not implemented" +msgstr "E1373: Níor cuireadh modh teibí \"%s\" i bhfeidhm" + +#, c-format +msgid "E1374: Class variable \"%s\" accessible only inside class \"%s\"" +msgstr "E1374: Ní féidir athróg aicme \"%s\" a úsáid taobh amuigh den aicme \"%s\"" + +#, c-format +msgid "E1375: Class variable \"%s\" accessible only using class \"%s\"" +msgstr "E1375: Ní féidir athróg aicme \"%s\" a úsáid gan aicme \"%s\"" + +#, c-format +msgid "E1376: Object variable \"%s\" accessible only using class \"%s\" object" +msgstr "E1376: Ní féidir athróg réada \"%s\" a úsáid gan réad den aicme \"%s\"" + +#, c-format +msgid "E1377: Access level of method \"%s\" is different in class \"%s\"" +msgstr "E1377: Tá leibhéal rochtana an mhodha \"%s\" difriúil in aicme \"%s\"" + +msgid "E1378: Static member not supported in an interface" +msgstr "E1378: Ní thacaítear le ball statach i gcomhéadan" + +msgid "E1379: Protected variable not supported in an interface" +msgstr "E1379: Ní thacaítear le hathróg chosanta i gcomhéadan" + +msgid "E1380: Protected method not supported in an interface" +msgstr "E1380: Ní thacaítear le modh cosanta i gcomhéadan" + +msgid "E1381: Interface cannot use \"implements\"" +msgstr "E1381: Ní féidir \"implements\" a úsáid i gcomhéadan" + +#, c-format +msgid "E1382: Variable \"%s\": type mismatch, expected %s but got %s" +msgstr "E1382: Athróg \"%s\": neamhréir cineálacha, bhíothas ag súil le %s ach fuarthas %s" + +#, c-format +msgid "E1383: Method \"%s\": type mismatch, expected %s but got %s" +msgstr "E1383: Modh \"%s\": neamhréir cineálacha, bhíothas ag súil le %s ach fuarthas %s" + +#, c-format +msgid "E1384: Class method \"%s\" accessible only inside class \"%s\"" +msgstr "E1384: Ní féidir modh aicme \"%s\" a úsáid taobh amuigh den aicme \"%s\"" + +#, c-format +msgid "E1385: Class method \"%s\" accessible only using class \"%s\"" +msgstr "E1385: Ní féidir modh aicme \"%s\" a úsáid gan aicme \"%s\"" + +#, c-format +msgid "E1386: Object method \"%s\" accessible only using class \"%s\" object" +msgstr "E1386: Ní féidir modh réada \"%s\" a úsáid gan réad den aicme \"%s\"" + +msgid "E1387: Public variable not supported in an interface" +msgstr "E1387: Ní thacaítear le hathróg phoiblí i gcomhéadan" + +msgid "E1388: Public keyword not supported for a method" +msgstr "E1388: Ní féidir an eochairfhocal \"public\" a úsáid le modh" + +msgid "E1389: Missing name after implements" +msgstr "E1389: Ainm ar iarraidh tar éis \"implements\"" #, c-format msgid "" -"E1402: Positional argument %d used as field width reused as different type: " +"E1390: Cannot use an object variable \"this.%s\" except with the \"new\" " +"method" +msgstr "E1390: Ní féidir athróg réada \"this.%s\" a úsáid seachas taobh istigh de mhodh \"new\"" + +#, c-format +msgid "E1391: Cannot (un)lock variable \"%s\" in class \"%s\"" +msgstr "E1391: Ní féidir athróg \"%s\" a ghlasáil nó a dhíghlasáil in aicme \"%s\"" + +#, c-format +msgid "E1392: Cannot (un)lock class variable \"%s\" in class \"%s\"" +msgstr "E1392: Ní féidir athróg aicme \"%s\" a ghlasáil nó a dhíghlasáil in aicme \"%s\"" + +msgid "E1393: Type can only be defined in Vim9 script" +msgstr "E1393: Is i script Vim9 amháin gur féidir cineál a shainmhíniú" + +#, c-format +msgid "E1394: Type name must start with an uppercase letter: %s" +msgstr "E1394: Caithfidh ceannlitir a bheith ag tús ainm na haicme: %s" + +#, c-format +msgid "E1395: Type alias \"%s\" cannot be modified" +msgstr "E1395: Ní féidir ailias cineáil \"%s\" a athrú" + +#, c-format +msgid "E1396: Type alias \"%s\" already exists" +msgstr "E1396: Tá ailias cineáil \"%s\" ann cheana" + +msgid "E1397: Missing type alias name" +msgstr "E1397: Ainm an ailiais ar iarraidh" + +msgid "E1398: Missing type alias type" +msgstr "E1398: Cineál ar iarraidh ó ailias cineáil" + +msgid "E1399: Type can only be used in a script" +msgstr "E1399: Ní féidir an cineál a úsáid ach i script" + +#, c-format +msgid "E1400: Using type alias \"%s\" as a Number" +msgstr "E1400: Ailias cineáil \"%s\" á úsáid mar Uimhir" + +#, c-format +msgid "E1401: Using type alias \"%s\" as a Float" +msgstr "E1401: Ailias cineáil \"%s\" á úsáid mar Shnámhphointe" + +#, c-format +msgid "E1402: Using type alias \"%s\" as a String" +msgstr "E1402: Ailias cineáil \"%s\" á úsáid mar Theaghrán" + +#, c-format +msgid "E1403: Type alias \"%s\" cannot be used as a value" +msgstr "E1403: Ní féidir ailias cineáil \"%s\" a úsáid mar luach" + +msgid "E1404: Abstract cannot be used in an interface" +msgstr "E1404: Ní féidir \"abstract\" a úsáid i gcomhéadan" + +#, c-format +msgid "E1405: Class \"%s\" cannot be used as a value" +msgstr "E1405: Ní féidir aicme \"%s\" a úsáid mar luach" + +msgid "E1406: Cannot use a Class as a variable or value" +msgstr "E1406: Ní féidir aicme a úsáid mar athróg ná mar luach" + +msgid "E1407: Cannot use a Typealias as a variable or value" +msgstr "E1407: Ní féidir ailias cineáil a úsáid mar athróg ná mar luach" + +#, c-format +msgid "E1500: Cannot mix positional and non-positional arguments: %s" +msgstr "E1500: Ní féidir argóintí suíomhacha agus neamhshuíomhacha a úsáid le chéile: %s" + +#, c-format +msgid "E1501: format argument %d unused in $-style format: %s" +msgstr "E1501: argóint formáide %d gan úsáid i bhformáid $-stíle: %s" + +#, c-format +msgid "" +"E1502: Positional argument %d used as field width reused as different type: " "%s/%s" -msgstr "E1402: Úsáideadh argóint shuíomhach %d mar leithead réimse, ansin mar chineál difriúil: %s/%s" +msgstr "" +"E1502: Úsáideadh argóint shuíomhach %d mar leithead réimse, ansin mar " +"chineál difriúil: %s/%s" #, c-format -msgid "E1403: Positional argument %d out of bounds: %s" -msgstr "E1403: Argóint shuíomhach %d thar teorainn: %s" +msgid "E1503: Positional argument %d out of bounds: %s" +msgstr "E1503: Argóint shuíomhach %d thar teorainn: %s" #, c-format -msgid "E1404: Positional argument %d type used inconsistently: %s/%s" -msgstr "E1404: Úsáideadh cineál argóint shuíomhach %d ar bhealaí difriúla: %s/%s" +msgid "E1504: Positional argument %d type used inconsistently: %s/%s" +msgstr "" +"E1504: Úsáideadh cineál argóint shuíomhach %d ar bhealaí difriúla: %s/%s" #, c-format -msgid "E1405: Invalid format specifier: %s" -msgstr "E1405: Sonraitheoir formáide neamhbhailí: %s" +msgid "E1505: Invalid format specifier: %s" +msgstr "E1505: Sonraitheoir formáide neamhbhailí: %s" + +msgid "E1506: Buffer too small to copy xattr value or key" +msgstr "E1506: Tá an maolán róbheag le luach nó eochair xattr a chóipeáil" + +#~ msgid "" +#~ "E1508: Size of the extended attribute value is larger than the maximum size " +#~ "allowed" +#~ msgstr "" + +msgid "E1509: Error occurred when reading or writing extended attribute" +msgstr "E1509: Tharla earráid agus aitreabúid bhreisithe á léamh nó á scríobh" #, c-format -msgid "E1406: Member \"%s\": type mismatch, expected %s but got %s" -msgstr "E1406: Ball \"%s\": neamhréir cineálacha; bhíothas ag súil le %s ach fuarthas %s" - -#, c-format -msgid "E1407: Member \"%s\": type mismatch, expected %s but got %s" -msgstr "E1407: Ball \"%s\": neamhréir cineálacha; bhíothas ag súil le %s ach fuarthas %s" +msgid "E1510: Value too large: %s" +msgstr "E1510: Luach rómhór: %s" msgid "--No lines in buffer--" msgstr "--Tá an maolán folamh--" @@ -8844,7 +9019,7 @@ msgid "number must be greater or equal to zero" msgstr "ní mór don uimhir a bheith >= 0" msgid "can't delete OutputObject attributes" -msgstr "ní féidir tréithe OutputObject a scriosadh" +msgstr "ní féidir aitreabúidí OutputObject a scriosadh" #, c-format msgid "invalid attribute: %s" @@ -8869,14 +9044,14 @@ msgid "internal error: imp.find_module returned tuple with NULL" msgstr "earráid inmheánach: fuarthas codach NULL ar ais ó imp.find_module" msgid "cannot delete vim.Dictionary attributes" -msgstr "ní féidir tréithe vim.Dictionary a scriosadh" +msgstr "ní féidir aitreabúidí vim.Dictionary a scriosadh" msgid "cannot modify fixed dictionary" msgstr "ní féidir foclóir socraithe a athrú" #, c-format msgid "cannot set attribute %s" -msgstr "ní féidir tréith %s a shocrú" +msgstr "ní féidir aitreabúid %s a shocrú" msgid "hashtab changed during iteration" msgstr "athraíodh an haistáb le linn atriallta" @@ -8920,7 +9095,7 @@ msgid "failed to add item to list" msgstr "níorbh fhéidir mír a chur leis an liosta" msgid "cannot delete vim.List attributes" -msgstr "ní féidir tréithe vim.List a scriosadh" +msgstr "ní féidir aitreabúidí vim.List a scriosadh" msgid "cannot modify fixed list" msgstr "ní féidir liosta socraithe a athrú" @@ -8964,7 +9139,7 @@ msgid "attempt to refer to deleted window" msgstr "rinneadh iarracht ar fhuinneog scriosta a rochtain" msgid "readonly attribute: buffer" -msgstr "tréith inléite amháin: maolán" +msgstr "aitreabúid inléite amháin: maolán" msgid "cursor position outside buffer" msgstr "cúrsóir taobh amuigh den mhaolán" @@ -10478,4 +10653,5 @@ msgstr "l #~ msgstr "" msgid "You discovered the command-line window! You can close it with \":q\"." -msgstr "D'aimsigh tú fuinneog líne na n-orduithe! Is féidir í a dhúnadh le \":q\"." +msgstr "" +"D'aimsigh tú fuinneog líne na n-orduithe! Is féidir í a dhúnadh le \":q\"." From a185a31fc05c2dd15315cd59afc02b69aabb5893 Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Sat, 16 Dec 2023 14:36:08 +0100 Subject: [PATCH 044/120] patch 9.0.2172: Vim9: compiling :defer may fail Problem: Vim9: compiling :defer may fail Solution: compile defer, when ctx_skip is not SKIP_YES compiling defer fails in an if statement with false condition, so check the ctx_skip value when compiling :defer fixes: #13698 closes: #13702 Signed-off-by: Yegappan Lakshmanan Signed-off-by: Christian Brabandt --- src/testdir/test_vim9_script.vim | 13 ++++++++++ src/version.c | 2 +- src/vim9cmds.c | 42 ++++++++++++++++++-------------- 3 files changed, 38 insertions(+), 19 deletions(-) diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index b64f05e89d..2aca20ad8d 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -4783,6 +4783,19 @@ def Test_multidefer_with_exception() v9.CheckSourceSuccess(lines) enddef +" Test for using ":defer" inside an if statement with a false condition +def Test_defer_skipped() + var lines =<< trim END + def Foo() + if false + defer execute('echow "hello"', "") + endif + enddef + defcompile + END + v9.CheckSourceSuccess(lines) +enddef + " Keep this last, it messes up highlighting. def Test_substitute_cmd() new diff --git a/src/version.c b/src/version.c index de90fcec5a..213a0e7c21 100644 --- a/src/version.c +++ b/src/version.c @@ -705,7 +705,7 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ - 2171, + 2172, /**/ 2170, /**/ diff --git a/src/vim9cmds.c b/src/vim9cmds.c index 392bab4120..07e6501a9b 100644 --- a/src/vim9cmds.c +++ b/src/vim9cmds.c @@ -2020,11 +2020,14 @@ compile_defer(char_u *arg_start, cctx_T *cctx) *paren = '('; // check for function type - type = get_type_on_stack(cctx, 0); - if (type->tt_type != VAR_FUNC) + if (cctx->ctx_skip != SKIP_YES) { - emsg(_(e_function_name_required)); - return NULL; + type = get_type_on_stack(cctx, 0); + if (type->tt_type != VAR_FUNC) + { + emsg(_(e_function_name_required)); + return NULL; + } } // compile the arguments @@ -2032,24 +2035,27 @@ compile_defer(char_u *arg_start, cctx_T *cctx) if (compile_arguments(&arg, cctx, &argcount, CA_NOT_SPECIAL) == FAIL) return NULL; - if (func_idx >= 0) + if (cctx->ctx_skip != SKIP_YES) { - type2_T *argtypes = NULL; - type2_T shuffled_argtypes[MAX_FUNC_ARGS]; + if (func_idx >= 0) + { + type2_T *argtypes = NULL; + type2_T shuffled_argtypes[MAX_FUNC_ARGS]; - if (check_internal_func_args(cctx, func_idx, argcount, FALSE, - &argtypes, shuffled_argtypes) == FAIL) + if (check_internal_func_args(cctx, func_idx, argcount, FALSE, + &argtypes, shuffled_argtypes) == FAIL) + return NULL; + } + else if (check_func_args_from_type(cctx, type, argcount, TRUE, + arg_start) == FAIL) + return NULL; + + defer_var_idx = get_defer_var_idx(cctx); + if (defer_var_idx == 0) + return NULL; + if (generate_DEFER(cctx, defer_var_idx - 1, argcount) == FAIL) return NULL; } - else if (check_func_args_from_type(cctx, type, argcount, TRUE, - arg_start) == FAIL) - return NULL; - - defer_var_idx = get_defer_var_idx(cctx); - if (defer_var_idx == 0) - return NULL; - if (generate_DEFER(cctx, defer_var_idx - 1, argcount) == FAIL) - return NULL; return skipwhite(arg); } From 062bb6b9099f4c92e10465e5ff98db092a3eac1b Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Sat, 16 Dec 2023 14:46:40 +0100 Subject: [PATCH 045/120] patch 9.0.2173: Vim9: crash when compiling for statement and non-existing type Problem: Vim9: Vim crashes when compiling a for statement with a non-existing type Solution: Error out when lhs_type is not null closes: #13703 Signed-off-by: Yegappan Lakshmanan Signed-off-by: Christian Brabandt --- src/testdir/test_vim9_script.vim | 110 +++++++++++++++++++++++++++++++ src/version.c | 2 + src/vim9cmds.c | 2 + 3 files changed, 114 insertions(+) diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index 2aca20ad8d..7ae4d553e3 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -2698,6 +2698,37 @@ def Test_for_loop_fails() v9.CheckDefSuccess(lines) v9.CheckDefFailure(['for x in range(3)'] + lines + ['endfor'], 'E1306:') + + # Test for too many for loops + lines =<< trim END + vim9script + def Foo() + for a in range(1) + for b in range(1) + for c in range(1) + for d in range(1) + for e in range(1) + for f in range(1) + for g in range(1) + for h in range(1) + for i in range(1) + for j in range(1) + for k in range(1) + endfor + endfor + endfor + endfor + endfor + endfor + endfor + endfor + endfor + endfor + endfor + enddef + defcompile + END + v9.CheckSourceFailure(lines, 'E1306: Loop nesting too deep', 11) enddef def Test_for_loop_script_var() @@ -4796,6 +4827,85 @@ def Test_defer_skipped() v9.CheckSourceSuccess(lines) enddef +" Test for using defer without parenthesis for the function name +def Test_defer_func_without_paren() + var lines =<< trim END + vim9script + def Foo() + defer Bar + enddef + defcompile + END + v9.CheckScriptFailure(lines, 'E107: Missing parentheses: Bar', 1) +enddef + +" Test for using defer without parenthesis for the function name +def Test_defer_non_existing_func() + var lines =<< trim END + vim9script + def Foo() + defer Bar() + enddef + defcompile + END + v9.CheckScriptFailure(lines, 'E1001: Variable not found: Bar', 1) +enddef + +" Test for using defer with an invalid function name +def Test_defer_invalid_func() + var lines =<< trim END + vim9script + def Foo() + var Abc = 10 + defer Abc() + enddef + defcompile + END + v9.CheckScriptFailure(lines, 'E129: Function name required', 2) +enddef + +" Test for using defer with an invalid argument to a function +def Test_defer_invalid_func_arg() + var lines =<< trim END + vim9script + def Bar(x: number) + enddef + def Foo() + defer Bar(a) + enddef + defcompile + END + v9.CheckScriptFailure(lines, 'E1001: Variable not found: a', 1) +enddef + +" Test for using an non-existing type in a "for" statement. +def Test_invalid_type_in_for() + var lines =<< trim END + vim9script + def Foo() + for b: x in range(10) + endfor + enddef + defcompile + END + v9.CheckSourceFailure(lines, 'E1010: Type not recognized: x in range(10)', 1) +enddef + +" Test for using a line break between the variable name and the type in a for +" statement. +def Test_for_stmt_space_before_type() + var lines =<< trim END + vim9script + def Foo() + for a + :number in range(10) + endfor + enddef + defcompile + END + v9.CheckSourceFailure(lines, 'E1059: No white space allowed before colon: :number in range(10)', 2) +enddef + " Keep this last, it messes up highlighting. def Test_substitute_cmd() new diff --git a/src/version.c b/src/version.c index 213a0e7c21..779e116965 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2173, /**/ 2172, /**/ diff --git a/src/vim9cmds.c b/src/vim9cmds.c index 07e6501a9b..a276d53237 100644 --- a/src/vim9cmds.c +++ b/src/vim9cmds.c @@ -1088,6 +1088,8 @@ compile_for(char_u *arg_start, cctx_T *cctx) } p = skipwhite(p + 1); lhs_type = parse_type(&p, cctx->ctx_type_list, TRUE); + if (lhs_type == NULL) + goto failed; } if (get_var_dest(name, &dest, CMD_for, &opt_flags, From 82f19734bfcbddbaee8d5d837f7b7a7119366020 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sat, 16 Dec 2023 14:53:52 +0100 Subject: [PATCH 046/120] runtime(doc): remove deprecation warning for gdefault Deprecated can be misunderstood as being slated for removal; slightly change wording to be clearer. Signed-off-by: dundargoc Signed-off-by: Christian Brabandt --- runtime/doc/options.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 7de9c5458a..54ee56f0b5 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 9.0. Last change: 2023 Nov 20 +*options.txt* For Vim version 9.0. Last change: 2023 Dec 16 VIM REFERENCE MANUAL by Bram Moolenaar @@ -3838,9 +3838,9 @@ A jump table for the options with a short description can be found at |Q_op|. :s///gg subst. all subst. one NOTE: This option is reset when 'compatible' is set. - DEPRECATED: Setting this option may break plugins that are not aware - of this option. Also, many users get confused that adding the /g flag - has the opposite effect of that it normally does. + Setting this option may break plugins that rely on the default + behavior of the 'g' flag. This will also make the 'g' flag have the + opposite effect of that documented in |:s_g|. This option is not used in |Vim9| script. *'grepformat'* *'gfm'* From ec497574fc06f97a5239fb08a7a76107a51383c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 07:30:50 +0000 Subject: [PATCH 047/120] CI: bump github/codeql-action from 2 to 3 (#13716) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Christian Brabandt --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 13281405af..d84920b22e 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -48,7 +48,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -59,7 +59,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # â„¹ï¸ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -73,4 +73,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 From b5011089860b24f60db1a74f91c0adf8897c4401 Mon Sep 17 00:00:00 2001 From: Ernie Rael Date: Mon, 18 Dec 2023 08:34:41 +0100 Subject: [PATCH 048/120] patch 9.0.2174: Vim9: segfault when assigning to type Problem: Vim9: segfault when assigning to type Solution: do not clear typeval, add missing patch number closes: #13714 closes: #13715 Signed-off-by: Ernie Rael Signed-off-by: Christian Brabandt --- src/evalvars.c | 1 - src/testdir/test_vim9_assign.vim | 8 ++++++++ src/version.c | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/evalvars.c b/src/evalvars.c index 343f6367dc..f787e81cc3 100644 --- a/src/evalvars.c +++ b/src/evalvars.c @@ -3978,7 +3978,6 @@ set_var_const( { semsg(_(e_cannot_modify_typealias), di->di_tv.vval.v_typealias->ta_name); - clear_tv(&di->di_tv); goto failed; } diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim index d582000be1..c6828e32df 100644 --- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -3076,6 +3076,7 @@ def Test_type_check() vim9script class A endclass + type T = number var N: number = 1 var S: string = 'abc' var d: dict = {} @@ -3091,6 +3092,7 @@ def Test_type_check() assert_fails('Fn = N', 'E1012: Type mismatch; expected func(...): unknown but got number') assert_fails('A = N', 'E1012: Type mismatch; expected class but got number') assert_fails('o = N', 'E1012: Type mismatch; expected object but got number') + assert_fails('T = N', 'E1395: Type alias "T" cannot be modified') # Use a compound operator with different LHS types assert_fails('d += N', 'E734: Wrong variable type for +=') @@ -3099,6 +3101,7 @@ def Test_type_check() assert_fails('Fn += N', 'E734: Wrong variable type for +=') assert_fails('A += N', 'E734: Wrong variable type for +=') assert_fails('o += N', 'E734: Wrong variable type for +=') + assert_fails('T += N', 'E1395: Type alias "T" cannot be modified') # Assign to a number variable assert_fails('N = d', 'E1012: Type mismatch; expected number but got dict') @@ -3107,6 +3110,7 @@ def Test_type_check() assert_fails('N = Fn', 'E1012: Type mismatch; expected number but got func([unknown]): number') assert_fails('N = A', 'E1405: Class "A" cannot be used as a value') assert_fails('N = o', 'E1012: Type mismatch; expected number but got object') + assert_fails('N = T', 'E1403: Type alias "T" cannot be used as a value') # Use a compound operator with different RHS types assert_fails('N += d', 'E734: Wrong variable type for +=') @@ -3115,6 +3119,7 @@ def Test_type_check() assert_fails('N += Fn', 'E734: Wrong variable type for +=') assert_fails('N += A', 'E1405: Class "A" cannot be used as a value') assert_fails('N += o', 'E1320: Using an Object as a Number') + assert_fails('N += T', 'E1403: Type alias "T" cannot be used as a value') # Initialize multiple variables using [] assert_fails('var [X1: number, Y: number] = [1, d]', 'E1012: Type mismatch; expected number but got dict') @@ -3123,6 +3128,7 @@ def Test_type_check() assert_fails('var [X4: number, Y: number] = [1, Fn]', 'E1012: Type mismatch; expected number but got func([unknown]): number') assert_fails('var [X7: number, Y: number] = [1, A]', 'E1405: Class "A" cannot be used as a value') assert_fails('var [X8: number, Y: number] = [1, o]', 'E1012: Type mismatch; expected number but got object') + assert_fails('var [X8: number, Y: number] = [1, T]', 'E1403: Type alias "T" cannot be used as a value') # String concatenation with various LHS types assert_fails('S ..= d', 'E734: Wrong variable type for .=') @@ -3131,6 +3137,7 @@ def Test_type_check() assert_fails('S ..= Fn', 'E734: Wrong variable type for .=') assert_fails('S ..= A', 'E1405: Class "A" cannot be used as a value') assert_fails('S ..= o', 'E1324: Using an Object as a String') + assert_fails('S ..= T', 'E1403: Type alias "T" cannot be used as a value') # String concatenation with various RHS types assert_fails('d ..= S', 'E734: Wrong variable type for .=') @@ -3139,6 +3146,7 @@ def Test_type_check() assert_fails('Fn ..= S', 'E734: Wrong variable type for .=') assert_fails('A ..= S', 'E734: Wrong variable type for .=') assert_fails('o ..= S', 'E734: Wrong variable type for .=') + assert_fails('T ..= S', 'E1395: Type alias "T" cannot be modified') END v9.CheckSourceSuccess(lines) diff --git a/src/version.c b/src/version.c index 779e116965..50660311da 100644 --- a/src/version.c +++ b/src/version.c @@ -704,10 +704,14 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2174, /**/ 2173, /**/ 2172, +/**/ + 2171, /**/ 2170, /**/ From 71cbe8e17a8c0c29b91943a7e9da596d718c79cf Mon Sep 17 00:00:00 2001 From: Ajit-Thakkar <142174202+Ajit-Thakkar@users.noreply.github.com> Date: Mon, 18 Dec 2023 08:53:21 +0100 Subject: [PATCH 049/120] runtime(fortan): update fortran syntax rules and doc notes Update to the Fortran 2023 standard. Reorganize some code to reflect the dropping of dialect support in the previous commit. Minor improvements. closes: #13712 Signed-off-by: Ajit-Thakkar <142174202+Ajit-Thakkar@users.noreply.github.com> Signed-off-by: Christian Brabandt --- runtime/doc/syntax.txt | 35 ++--- runtime/syntax/fortran.vim | 295 +++++++++++++++++-------------------- 2 files changed, 156 insertions(+), 174 deletions(-) diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index 74087620f8..679654efa8 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 9.0. Last change: 2023 Dec 09 +*syntax.txt* For Vim version 9.0. Last change: 2023 Dec 17 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1589,13 +1589,14 @@ edit F# or Fortran at all, use this in your startup vimrc: > FORTRAN *fortran.vim* *ft-fortran-syntax* Default highlighting and dialect ~ -Highlighting appropriate for Fortran 2008 is used by default. This choice -should be appropriate for most users most of the time because Fortran 2008 is -almost a superset of previous versions (Fortran 2003, 95, 90, and 77). A -small number of features new to Fortran 2018 and Fortran 2023 are supported -and the complete transition to Fortran 2023 will be completed in the future. -A few legacy constructs deleted or declared obsolescent in recent Fortran -standards are highlighted as todo items. +Vim highlights according to Fortran 2023 (the most recent standard) by +default. This choice should be appropriate for most users most of the time +because Fortran 2023 is almost a superset of previous versions (Fortran 2018, +2008, 2003, 95, 90, and 77). A small number of features new to Fortran 2018 +and Fortran 2023 may have been omitted at present; the transition to Fortran +2023 will be completed in the near future. A few legacy constructs deleted or +declared obsolescent in recent Fortran standards are highlighted as todo +items. The syntax script no longer supports Fortran dialects. The variable fortran_dialect is now silently ignored. Since computers are much faster now, @@ -1605,7 +1606,7 @@ Fortran source code form ~ Fortran code can be in either fixed or free source form. Note that the syntax highlighting will not be correct if the form is incorrectly set. -When you create a new fortran file, the syntax script assumes fixed source +When you create a new Fortran file, the syntax script assumes fixed source form. If you always use free source form, then > :let fortran_free_source=1 in your .vimrc prior to the :syntax on command. If you always use fixed @@ -1619,10 +1620,10 @@ file. For more information on ftplugin files, see |ftplugin|. Note that this will work only if the "filetype plugin indent on" command precedes the "syntax on" command in your .vimrc file. -When you edit an existing fortran file, the syntax script will assume free +When you edit an existing Fortran file, the syntax script will assume free source form if the fortran_free_source variable has been set, and assumes -fixed source form if the fortran_fixed_source variable has been set. If -neither of these variables have been set, the syntax script attempts to +fixed source form if the fortran_fixed_source variable has been set. Suppose +neither of these variables have been set. In that case, the syntax script attempts to determine which source form has been used by examining the file extension using conventions common to the ifort, gfortran, Cray, NAG, and PathScale compilers (.f, .for, .f77 for fixed-source, .f90, .f95, .f03, .f08 for @@ -1657,17 +1658,17 @@ command such as > :let fortran_vendor_intrinsics=1 placed prior to the :syntax on command. -Tabs in fortran files ~ +Tabs in Fortran files ~ Tabs are not recognized by the Fortran standards. Tabs are not a good idea in -fixed format fortran source code which requires fixed column boundaries. +fixed format Fortran source code which requires fixed column boundaries. Therefore, tabs are marked as errors. Nevertheless, some programmers like -using tabs. If your fortran files contain tabs, then you should set the +using tabs. If your Fortran files contain tabs, then you should set the variable fortran_have_tabs in your .vimrc with a command such as > :let fortran_have_tabs=1 placed prior to the :syntax on command. Unfortunately, the use of tabs will mean that the syntax file will not be able to detect incorrect margins. -Syntax folding of fortran files ~ +Syntax folding of Fortran files ~ If you wish to use foldmethod=syntax, then you must first set the variable fortran_fold with a command such as > :let fortran_fold=1 @@ -1700,7 +1701,7 @@ Parenthesis checking does not catch too few closing parentheses. Hollerith strings are not recognized. Some keywords may be highlighted incorrectly because Fortran90 has no reserved words. -For further information related to fortran, see |ft-fortran-indent| and +For further information related to Fortran, see |ft-fortran-indent| and |ft-fortran-plugin|. FREEBASIC *freebasic.vim* *ft-freebasic-syntax* diff --git a/runtime/syntax/fortran.vim b/runtime/syntax/fortran.vim index 971a2b633d..7ed4f8a268 100644 --- a/runtime/syntax/fortran.vim +++ b/runtime/syntax/fortran.vim @@ -1,6 +1,6 @@ " Vim syntax file -" Language: Fortran 2008 (and Fortran 2003, 95, 90, and 77) -" Version: (v106) 2023 December 4 +" Language: Fortran 2023 (and Fortran 2018, 2008, 2003, 95, 90, and 77) +" Version: (v107) 2023 December 17 " Maintainers: Ajit J. Thakkar ; " Joshua Hollett " Usage: For instructions, do :help fortran-syntax from Vim @@ -71,24 +71,73 @@ endif syn match fortranConstructName "\(\" -syn match fortranUserUnit "\(\(end\s*\)\?\(subroutine\|function\|module\|program\|submodule\|block\)\s\+\)\@12<=\a\w\+" +syn match fortranUnitName "\(\(end\s*\)\?\(subroutine\|function\|module\|program\|submodule\)\s\+\)\@12<=\a\w\+" +syn match fortranUnitHeader "\" -syn match fortranType "\" -syn keyword fortranType intrinsic -syn match fortranType "\\s\+\(none\(\s\+\\)\?\)\?" -syn keyword fortranStructure dimension -syn keyword fortranStorageClass parameter save -syn match fortranCall "call\s\+\a\w*" -syn match fortranUnitHeader "\(end\s*\)\?\(subroutine\|function\|module\|program\|submodule\|block\)" -syn keyword fortranKeyword return -syn match fortranKeyword "\(error\s\+\)\=stop" -syn keyword fortranConditional else then -syn match fortranConditional "\" -syn match fortranConditionalDel "\\ze\s*(' +syn match fortranIntrinsic "\" +syn match fortranType "^\s*implicit\s\+none" +syn match fortranType "\(class\|type\)\(of\)\?" +syn match fortranType "\(end\s*\)\?\" +syn match fortranType "\" +syn match fortranType "\(end\s*\)\?enumeration\s\+type" +syn match fortranType "\(end\s*\)\?\(\" +syn match fortranTypeR display "double\s*precision" +syn match fortranTypeR display "double\s\+complex" +syn keyword fortranAttribute value bind deferred contiguous intrinsic non_intrinsic +syn keyword fortranAttribute asynchronous nopass non_overridable pass volatile extends +syn keyword fortranAttribute abstract external private public protected intent optional +syn keyword fortranAttribute pointer target allocatable dimension codimension sequence parameter save + +syn keyword fortranUnitHeader result operator assignment +syn match fortranUnitHeader "\(end\s*\)\?\(subroutine\|function\|module\|program\|submodule\)\>" +syn match fortranBlock "\(end\s*\)\?\(block\|critical\|associate\)\>" +syn match fortranCalled "\(call\s\+\)\@7<=\a\w*" syn match fortranRepeat "\" +syn keyword fortranRepeat concurrent +syn keyword fortranRepeatR while +syn match fortranRepeat "\" syn keyword fortranTodo contained bug note debug todo fixme @@ -99,11 +148,13 @@ syn match fortranParenError ")" syn match fortranOperator "\.\s*n\=eqv\s*\." syn match fortranOperator "\.\s*\(and\|or\|not\)\s*\." syn match fortranOperator "\(+\|-\|/\|\*\)" -syn match fortranTypeOb "\\|<\)=\=\|==\|/=\|=\)" +syn match fortranOperator "\(%\|?\|=>\)" +syn match fortranOperator "\([\|]\)" +syn match fortranOperatorR "\.\s*[gl][et]\s*\." +syn match fortranOperatorR "\.\s*\(eq\|ne\)\s*\." -syn match fortranBoolean "\.\s*\(true\|false\)\s*\." - -syn keyword fortranReadWrite print +syn keyword fortranReadWrite print flush syn match fortranReadWrite '\<\(backspace\|close\|endfile\|inquire\|open\|read\|rewind\|write\)\ze\s*(' "If tabs are allowed then the left margin checks do not work @@ -113,24 +164,6 @@ else syn match fortranTab "\t" endif -syn match fortranIO '\%(\((\|,\|, *&\n\)\s*\)\@<=\(access\|blank\|direct\|exist\|file\|fmt\|form\|formatted\|iostat\|name\|named\|nextrec\|number\|opened\|rec\|recl\|sequential\|status\|unformatted\|unit\)\ze\s*=' - -" Intrinsics provided by some vendors -syn keyword fortranExtraIntrinsic algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh - -syn keyword fortranIntrinsic abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh -syn match fortranIntrinsic "\\(\s\+is\>\)\?" -syn match fortranType "^\s*\(type\s\+\(is\)\? \)\?\s*\(real\|integer\|logical\|complex\|character\)\>" -syn match fortranType "^\s*\(implicit \)\?\s*\(real\|integer\|logical\|complex\|character\)\>" - "Numbers of various sorts " Integers syn match fortranNumber display "\<\d\+\(_\a\w*\)\=\>" @@ -157,129 +190,75 @@ syn match fortranFormatSpec display "\d*\(d\|q\|g\)\d\+\.\d\+\(e\d+\)\=" syn match fortranFormatSpec display "\d\+x\>" " The next match cannot be used because it would pick up identifiers as well " syn match fortranFormatSpec display "\<\(a\|i\)\d\+" - " Numbers as labels syn match fortranLabelNumber display "^\d\{1,5}\s"me=e-1 syn match fortranLabelNumber display "^ \d\{1,4}\s"ms=s+1,me=e-1 syn match fortranLabelNumber display "^ \d\{1,3}\s"ms=s+2,me=e-1 syn match fortranLabelNumber display "^ \d\d\=\s"ms=s+3,me=e-1 syn match fortranLabelNumber display "^ \d\s"ms=s+4,me=e-1 - " Numbers as targets syn match fortranTarget display "\(\" syn match fortranTarget display "\(\" syn match fortranTarget display "\(\" -syn keyword fortranTypeR external -syn keyword fortranIOR format +syn match fortranBoolean "\.\s*\(true\|false\)\s*\." + +syn match fortranKeyword "call" +syn keyword fortranKeyword use only contains +syn match fortranKeyword "fail\s\+image\>" +syn match fortranKeyword "\(error\s\+\)\=stop" syn match fortranKeyword "\" syn match fortranKeyword "^\s*\d\+\s\+continue\>" syn match fortranKeyword "\" syn match fortranKeywordDel "\" -syn match fortranStorageClass "\" -syn keyword fortranKeyword allocate deallocate nullify cycle exit -syn match fortranConditional "\" -syn match fortranConditional "\" -syn keyword fortranConditional where elsewhere - -syn match fortranOperator "\(\(>\|<\)=\=\|==\|/=\|=\)" -syn match fortranOperator "\(%\|?\|=>\)" - +syn region fortranString start=+'+ end=+'+ contains=fortranLeftMargin,fortranContinueMark,fortranSerialNumber syn region fortranString start=+"+ end=+"+ contains=fortranLeftMargin,fortranContinueMark,fortranSerialNumber + +syn match fortranIO '\%(\((\|,\|, *&\n\)\s*\)\@<=\(access\|blank\|direct\|exist\|file\|fmt\|form\|formatted\|iostat\|name\|named\|nextrec\|number\|opened\|rec\|recl\|sequential\|status\|unformatted\|unit\)\ze\s*=' +syn keyword fortranIOR format namelist syn keyword fortranIO pad position action delim readwrite syn keyword fortranIO eor advance nml +syn keyword fortranIO newunit decimal round iomsg +syn match fortranIO contains=fortranOperator "\\ze\s*(' -syn match fortranIntrinsic "\\(\s*\.\)\@!"me=s+3 -syn match fortranIntrinsic "\\s*[(,]"me=s+4 - -syn match fortranUnitHeader "\" -syn keyword fortranIOR namelist -syn keyword fortranConditionalR while -syn keyword fortranIntrinsicR achar iachar transfer dble dprod dim lge lgt lle llt mod -syn keyword fortranIntrinsicOb alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl +syn keyword fortranConditional else then where elsewhere +syn match fortranConditional "\" +syn match fortranConditional "\" +syn match fortranConditional "\(case\|rank\)\(\s\+default\)\?" +syn match fortranConditionalDel "\" +syn match fortranImageControl "\(change\|form\|end\)\s\+team\>" +syn match fortranImageControl "event\s\+\(post\|wait\)" +syn match fortranImageControl "\(un\)\?lock\ze\s*(" +syn match fortranImageControl "notify\s\+wait\ze\s*(" syn keyword fortranUnitHeaderOb entry -syn match fortranTypeR display "double\s\+precision" -syn match fortranTypeR display "double\s\+complex" -syn match fortranUnitHeaderOb display "block\s\+data" -syn match fortranStorageClass "^\s*data\>\(\s\+\a\w*\s*/\)\@=" -syn match fortranStorageClassOb "^\s*common\>\(\s*/\)\@=" +syn match fortranUnitHeaderOb display "block\s*data" + +syn keyword fortranStorageClass in out +syn match fortranStorageClass "\" +syn match fortranStorageClass "\\(\s\+\a\w*\s*/\)\@=" +syn match fortranStorageClassOb "^\s*common\>" +syn match fortranStorageClassOb "^\s*common\>\(\s*/\)\@=" syn keyword fortranStorageClassOb equivalence -syn match fortranOperatorR "\.\s*[gl][et]\s*\." -syn match fortranOperatorR "\.\s*\(eq\|ne\)\s*\." -syn keyword fortranRepeatOb forall -syn match fortranRepeatOb "\" -syn match fortranType "\" -syn match fortranType "\" -syn match fortranType "\" -syn match fortranConstructNameOb "\(\" - -" F2003 -syn keyword fortranIntrinsic command_argument_count get_command get_command_argument get_environment_variable is_iostat_end is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of -" ISO_C_binding syn keyword fortranConstant c_null_char c_alert c_backspace c_form_feed c_new_line c_carriage_return c_horizontal_tab c_vertical_tab syn keyword fortranConstant c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr -syn keyword fortranIntrinsic iso_c_binding c_loc c_funloc c_associated c_f_pointer c_f_procpointer -syn keyword fortranType c_ptr c_funptr -" ISO_Fortran_env -syn keyword fortranConstant iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit -" IEEE_arithmetic -syn keyword fortranIntrinsic ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode - -syn keyword fortranReadWrite flush wait -syn keyword fortranIO decimal round iomsg -syn keyword fortranType asynchronous nopass non_overridable pass protected volatile extends import -syn keyword fortranType non_intrinsic value bind deferred generic final enumerator -syn match fortranType "\" -syn match fortranType "\" -syn match fortranType "\" -syn match fortranType "\" -syn match fortranConditional "\" -syn match fortranUnitHeader "\" -syn match fortranOperator "\([\|]\)" - -" F2008 -syn keyword fortranIntrinsic acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 -syn keyword fortranIntrinsic atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits -syn keyword fortranIntrinsic bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image -syn keyword fortranIO newunit -syn keyword fortranType contiguous -syn keyword fortranRepeat concurrent +syn keyword fortranConstant iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit stat_failed_image stat_unlocked_failed_image +syn keyword fortranConstant int8 int16 int32 int64 real16 real32 real64 real128 character_kinds integer_kinds logical_kinds real_kinds iostat_inquire_internal_unit +syn keyword fortranConstant ieee_negative_subnormal ieee_positive_subnormal " CUDA fortran if exists("fortran_CUDA") @@ -322,14 +301,13 @@ syn cluster fortranCommentGroup contains=fortranTodo if (b:fortran_fixed_source == 1) if !exists("fortran_have_tabs") - " Fixed format requires a textwidth of 72 for code, - " but some vendor extensions allow longer lines if exists("fortran_extended_line_length") + " Vendor extensions allow lines with a text width of 132 syn match fortranSerialNumber excludenl "^.\{133,}$"lc=132 - elseif exists("fortran_cardimage_line_length") - syn match fortranSerialNumber excludenl "^.\{81,}$"lc=80 else - syn match fortranSerialNumber excludenl "^.\{73,}$"lc=72 + " Standard requires fixed format to have a text width of 72, + " but all current compilers use 80 instead + syn match fortranSerialNumber excludenl "^.\{81,}$"lc=80 endif "Flag left margin errors syn match fortranLabelError "^.\{-,4}[^0-9 ]" contains=fortranTab @@ -344,6 +322,7 @@ endif syn match fortranComment excludenl "!.*$" contains=@fortranCommentGroup,@spell syn match fortranOpenMP excludenl "^\s*!\$\(OMP\)\=&\=\s.*$" +syn match fortranEndStatement display ";" "cpp is often used with Fortran syn match cPreProc "^\s*#\s*\(define\|ifdef\)\>.*" @@ -390,15 +369,15 @@ if exists("fortran_fold") if exists("fortran_fold_conditionals") if (b:fortran_fixed_source == 1) - syn region fortran77Loop transparent fold keepend start="\ Date: Mon, 18 Dec 2023 08:58:29 +0100 Subject: [PATCH 050/120] patch 9.0.2175: Compiler warning for uninitialized var Problem: Compiler warning for uninitialized var Solution: initialize variable to NULL closes: #13711 Signed-off-by: Yegappan Lakshmanan Signed-off-by: Christian Brabandt --- src/version.c | 2 ++ src/vim9cmds.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/version.c b/src/version.c index 50660311da..78fb3e01f6 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2175, /**/ 2174, /**/ diff --git a/src/vim9cmds.c b/src/vim9cmds.c index a276d53237..ad245b9c89 100644 --- a/src/vim9cmds.c +++ b/src/vim9cmds.c @@ -2000,7 +2000,7 @@ compile_defer(char_u *arg_start, cctx_T *cctx) char_u *arg = arg_start; int argcount = 0; int defer_var_idx; - type_T *type; + type_T *type = NULL; int func_idx; // Get a funcref for the function name. From 2f05ad162e89dc2e54a2e7b4f6a8062fa808815a Mon Sep 17 00:00:00 2001 From: Emir SARI Date: Mon, 18 Dec 2023 08:02:04 +0000 Subject: [PATCH 051/120] translation(tr): Update Turkish translations (#13710) Signed-off-by: Emir SARI Signed-off-by: Christian Brabandt --- src/po/tr.po | 402 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 296 insertions(+), 106 deletions(-) diff --git a/src/po/tr.po b/src/po/tr.po index 40e3368729..4cff7b327d 100644 --- a/src/po/tr.po +++ b/src/po/tr.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Vim Turkish Localization Project\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-23 15:34+0300\n" -"PO-Revision-Date: 2023-08-23 17:00+0300\n" +"POT-Creation-Date: 2023-12-17 12:57+0300\n" +"PO-Revision-Date: 2023-12-17 17:00+0300\n" "Last-Translator: Emir SARI \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -516,7 +516,7 @@ msgstr "Mevcut \"%s\" dosyasının üzerine yazılsın mı?" #, c-format msgid "Swap file \"%s\" exists, overwrite anyway?" -msgstr "Takas dosyası \"%s\" mevcut, yine de üzerine yazılsın mı?" +msgstr "Takas dosyası \"%s\" var, yine de üzerine yazılsın mı?" #, c-format msgid "" @@ -537,7 +537,7 @@ msgstr "" "Denemek ister misiniz?" msgid "Edit File" -msgstr "Dosya Düzenle" +msgstr "Dosyayı Düzenle" #, c-format msgid "replace with %s (y/n/a/q/l/^E/^Y)?" @@ -3216,7 +3216,7 @@ msgstr "" #, c-format msgid "File \"%s\" does not exist" -msgstr "Dosya \"%s\" mevcut deÄŸil" +msgstr "\"%s\" dosyası yok" #, c-format msgid "tag %d of %d%s" @@ -3810,7 +3810,7 @@ msgstr "" "\n" msgid "# Value of 'encoding' when this file was written\n" -msgstr "# Bu dosya yazıldığı sırada mevcut 'encoding'in deÄŸeri\n" +msgstr "# Bu dosya yazıldığı sıradaki 'encoding'in deÄŸeri\n" #, c-format msgid "Reading viminfo file \"%s\"%s%s%s%s" @@ -3884,7 +3884,7 @@ msgstr "" "verilmiyor" msgid "E13: File exists (add ! to override)" -msgstr "E13: Dosya mevcut (geçersiz kılmak için ! ekleyin)" +msgstr "E13: Dosya var (geçersiz kılmak için ! ekleyin)" #, c-format msgid "E15: Invalid expression: \"%s\"" @@ -4110,7 +4110,7 @@ msgstr "E85: ListelenmiÅŸ bir arabellek yok" #, c-format msgid "E86: Buffer %ld does not exist" -msgstr "E86: Arabellek %ld mevcut deÄŸil" +msgstr "E86: Arabellek %ld yok" msgid "E87: Cannot go beyond last buffer" msgstr "E87: Son arabellekten öteye gidilemez" @@ -4243,7 +4243,7 @@ msgstr "E121: Tanımlanmamış deÄŸiÅŸken: %c:%s" #, c-format msgid "E122: Function %s already exists, add ! to replace it" -msgstr "E122: %s iÅŸlevi hâlihazırda mevcut, deÄŸiÅŸtirmek için ! ekleyin" +msgstr "E122: %s iÅŸlevi hâlihazırda var, deÄŸiÅŸtirmek için ! ekleyin" #, c-format msgid "E123: Undefined function: %s" @@ -4332,7 +4332,7 @@ msgstr "E148: Düzenli ifade :global'den eksik" #, c-format msgid "E149: Sorry, no help for %s" -msgstr "E149: Üzgünüm, %s için yardım mevcut deÄŸil" +msgstr "E149: Üzgünüm, %s için yardım yok" #, c-format msgid "E150: Not a directory: %s" @@ -4425,7 +4425,7 @@ msgstr[1] "E173: Düzenlenecek %d dosya daha var" #, c-format msgid "E174: Command already exists: add ! to replace it: %s" -msgstr "E174: Komut zaten mevcut: DeÄŸiÅŸtirmek için ! ekleyin: %s" +msgstr "E174: Komut halihazırda var: DeÄŸiÅŸtirmek için ! ekleyin: %s" msgid "E175: No attribute specified" msgstr "E175: Bir öznitelik belirtilmemiÅŸ" @@ -4476,7 +4476,7 @@ msgid "E187: Directory unknown" msgstr "E187: Dizin bilinmiyor" msgid "E188: Obtaining window position not implemented for this platform" -msgstr "E188: Pencere konumunu alma özelliÄŸi bu platformda mevcut deÄŸil" +msgstr "E188: Pencere konumunu alma özelliÄŸi bu platformda gerçeklenmemiÅŸ" #, c-format msgid "E189: \"%s\" exists (add ! to override)" @@ -4550,7 +4550,7 @@ msgstr "E210: \"%s\" okunurken hata" #, c-format msgid "E211: File \"%s\" no longer available" -msgstr "E211: \"%s\" dosyası artık mevcut deÄŸil" +msgstr "E211: \"%s\" dosyası artık kullanılamıyor" msgid "E212: Can't open file for writing" msgstr "E212: Dosya yazma için açılamıyor" @@ -4873,7 +4873,7 @@ msgid "E314: Preserve failed" msgstr "E314: Koruma baÅŸarısız oldu" msgid "E319: Sorry, the command is not available in this version" -msgstr "E319: Üzgünüm, komut bu sürümde mevcut deÄŸil" +msgstr "E319: Üzgünüm, komut bu sürümde kullanılamıyor" #, c-format msgid "E321: Could not reload \"%s\"" @@ -4892,7 +4892,7 @@ msgid "E327: Part of menu-item path is not sub-menu" msgstr "E327: Menü öge yolunun bir kısmı alt menü deÄŸil" msgid "E328: Menu only exists in another mode" -msgstr "E328: Menü yalnızca baÅŸka bir kipte mevcut" +msgstr "E328: Menü yalnızca baÅŸka bir kipte var" #, c-format msgid "E329: No menu \"%s\"" @@ -5188,7 +5188,7 @@ msgid "E413: Too many arguments: \":highlight link %s\"" msgstr "E413: Çok fazla argüman: \":highlight link %s\"" msgid "E414: Group has settings, highlight link ignored" -msgstr "E414: Grup ayarları mevcut, vurgulama baÄŸlantısı yok sayıldı" +msgstr "E414: Grup ayarları var, vurgulama baÄŸlantısı yok sayıldı" #, c-format msgid "E415: Unexpected equal sign: %s" @@ -5245,7 +5245,7 @@ msgstr "E428: Son eÅŸleÅŸen etiketten öteye gidilemiyor" #, c-format msgid "E429: File \"%s\" does not exist" -msgstr "E429: Dosya \"%s\" mevcut deÄŸil" +msgstr "E429: \"%s\" dosyası artık yok" #, c-format msgid "E430: Tag file path truncated for %s\n" @@ -5802,7 +5802,7 @@ msgid "E589: 'backupext' and 'patchmode' are equal" msgstr "E589: 'backupext' ve 'patchmode' birbirine eÅŸit" msgid "E590: A preview window already exists" -msgstr "E590: Bir önizleme penceresi hâlihazırda mevcut" +msgstr "E590: Bir önizleme penceresi halihazırda var" msgid "E591: 'winheight' cannot be smaller than 'winminheight'" msgstr "E591: 'winheight' deÄŸeri 'winminheight' deÄŸerinden küçük olamaz" @@ -5878,6 +5878,13 @@ msgstr "E612: Çok fazla iÅŸaret tanımlanmış" msgid "E613: Unknown printer font: %s" msgstr "E613: Bilinmeyen yazıcı fontu: %s" +msgid "E614: Class required" +msgstr "E614: Sınıf gerekiyor" + +#, c-format +msgid "E616: Object required for argument %d" +msgstr "E616: %d argümanı için nesne gerekiyor" + msgid "E617: Cannot be changed in the GTK GUI" msgstr "E617: GTK grafik arabiriminde deÄŸiÅŸtirilemez" @@ -5982,9 +5989,6 @@ msgstr "E647: setDot'ta geçersiz arabellek tanımlayıcısı" msgid "E648: Invalid buffer identifier in close" msgstr "E648: close'da geçersiz arabellek tanımlayıcısı" -msgid "E649: Invalid buffer identifier in close" -msgstr "E649: close'da geçersiz arabellek tanımlayıcısı" - msgid "E650: Invalid buffer identifier in defineAnnoType" msgstr "E650: defineAnnoType'da geçersiz arabellek tanımlayıcısı" @@ -6016,7 +6020,7 @@ msgstr "E659: Python özyineli olarak çalıştırılamıyor" #, c-format msgid "E661: Sorry, no '%s' help for %s" -msgstr "E661: Üzgünüm, '%s' yardımı %s için mevcut deÄŸil" +msgstr "E661: Üzgünüm, '%2$s' için '%1$s' yardımı yok" msgid "E662: At start of changelist" msgstr "E662: DeÄŸiÅŸiklik listesinin başında" @@ -6110,9 +6114,9 @@ msgstr "E687: Liste ögelerinden daha az hedef var" msgid "E688: More targets than List items" msgstr "E688: Liste ögelerinden daha fazla hedef var" -msgid "E689: Can only index a List, Dictionary or Blob" -msgstr "" -"E689: Yalnızca bir liste, sözlük, veya ikili geniÅŸ nesne dizinlenebilir" +#, c-format +msgid "E689: Index not allowed after a %s: %s" +msgstr "E689: Bir %s sonrası indekse izin verilmiyor: %s" msgid "E690: Missing \"in\" after :for" msgstr "E690: :for sonrası \"in\" eksik" @@ -6123,6 +6127,10 @@ msgstr "E691: Bir liste yalnızca baÅŸka bir liste ile karşılaÅŸtırılabilir" msgid "E692: Invalid operation for List" msgstr "E692: Geçersiz liste iÅŸlemi" +#, c-format +msgid "E693: Class or class typealias required for argument %d" +msgstr "E693: %d argümanı için sınıf veya sınıf tür arması gerekiyor" + msgid "E694: Invalid operation for Funcrefs" msgstr "E694: Geçersiz Funcref iÅŸlemi" @@ -6162,7 +6170,7 @@ msgstr "E704: Funcref deÄŸiÅŸkeni BÜYÜK harf ile baÅŸlamalıdır: %s" #, c-format msgid "E705: Variable name conflicts with existing function: %s" -msgstr "E705: DeÄŸiÅŸken adı mevcut iÅŸlevle çakışıyor: %s" +msgstr "E705: DeÄŸiÅŸken adı var olan iÅŸlevle çakışıyor: %s" #, c-format msgid "E706: Argument of %s must be a List, String or Dictionary" @@ -6199,10 +6207,10 @@ msgstr "E715: Sözlük gerekiyor" #, c-format msgid "E716: Key not present in Dictionary: \"%s\"" -msgstr "E716: Anahtar sözlükte mevcut deÄŸil: \"%s\"" +msgstr "E716: Anahtar sözlükte yok: \"%s\"" msgid "E717: Dictionary entry already exists" -msgstr "E717: Sözlük girdisi hâlihazırda mevcut" +msgstr "E717: Sözlük girdisi halihazırda var" msgid "E718: Funcref required" msgstr "E718: Funcref gerekiyor" @@ -6383,7 +6391,7 @@ msgstr "E767: printf() için çok fazla argüman" #, c-format msgid "E768: Swap file exists: %s (:silent! overrides)" -msgstr "E768: Takas dosyası mevcut: %s (:silent! geçersiz kılar)" +msgstr "E768: Takas dosyası var: %s (:silent! geçersiz kılar)" #, c-format msgid "E769: Missing ] after %s[" @@ -6406,7 +6414,7 @@ msgid "E774: 'operatorfunc' is empty" msgstr "E774: 'operatorfunc' boÅŸ" msgid "E775: Eval feature not available" -msgstr "E775: Eval özelliÄŸi mevcut deÄŸil" +msgstr "E775: Eval özelliÄŸi kullanılamıyor" msgid "E776: No location list" msgstr "E776: Konum listesi yok" @@ -6991,7 +6999,7 @@ msgid "E941: Already started a server" msgstr "E941: Sunucu hâlihazırda çalışıyor" msgid "E942: +clientserver feature not available" -msgstr "E942: +clientserver özelliÄŸi mevcut deÄŸil" +msgstr "E942: +clientserver özelliÄŸi kullanılamıyor" msgid "E944: Reverse range in character class" msgstr "E944: Karakter sınıfında geriye dönük erim" @@ -7028,7 +7036,7 @@ msgstr "E952: Otokomut özyineli davranışa neden oldu" #, c-format msgid "E953: File exists: %s" -msgstr "E953: Dosya mevcut: %s" +msgstr "E953: Dosya var: %s" msgid "E954: 24-bit colors are not supported on this environment" msgstr "E954: 24 bit renkler bu ortamda desteklenmiyor" @@ -7059,8 +7067,8 @@ msgid "E962: Invalid action: '%s'" msgstr "E962: Geçersiz eylem: '%s'" #, c-format -msgid "E963: Setting %s to value with wrong type" -msgstr "E963: %s yanlış türe sahip deÄŸere ayarlanıyor" +msgid "E963: Setting v:%s to value with wrong type" +msgstr "E963: v:%s yanlış türe sahip deÄŸere ayarlanıyor" #, c-format msgid "E964: Invalid column number: %ld" @@ -7086,7 +7094,7 @@ msgstr "E970: Bilinmeyen vurgulama grup adı: '%s'" #, c-format msgid "E971: Property type %s does not exist" -msgstr "E971: Özellik türü %s mevcut deÄŸil" +msgstr "E971: Özellik türü %s yok" msgid "E972: Blob value does not have the right number of bytes" msgstr "E972: İkili geniÅŸ nesne deÄŸeri doÄŸru bayt sayısına sahip deÄŸil" @@ -7124,7 +7132,7 @@ msgid "E981: Command not allowed in rvim" msgstr "E981: Bu komuta rvim'de izin verilmiyor" msgid "E982: ConPTY is not available" -msgstr "E982: ConPTY mevcut deÄŸil" +msgstr "E982: ConPTY kullanılamıyor" #, c-format msgid "E983: Duplicate argument: %s" @@ -7906,8 +7914,8 @@ msgid "E1202: No white space allowed after '%s': %s" msgstr "E1202: '%s' sonrası boÅŸluÄŸa izin verilmiyor: %s" #, c-format -msgid "E1203: Dot can only be used on a dictionary: %s" -msgstr "E1203: Nokta yalnızca bir sözlükte kullanılabilir: %s" +msgid "E1203: Dot not allowed after a %s: %s" +msgstr "E1203: Bir %s sonrası noktaya izin verilmiyor: %s" #, c-format msgid "E1204: No Number allowed after .: '\\%%%c'" @@ -8325,38 +8333,38 @@ msgid "E1316: Class can only be defined in Vim9 script" msgstr "E1316: Sınıf, yalnızca Vim9 betiÄŸinde kullanılabilir" #, c-format -msgid "E1317: Invalid object member declaration: %s" -msgstr "E1317: Geçersiz nesne üyesi beyanı: %s" +msgid "E1317: Invalid object variable declaration: %s" +msgstr "E1317: Geçersiz nesne deÄŸiÅŸkeni beyanı: %s" #, c-format msgid "E1318: Not a valid command in a class: %s" msgstr "E1318: Bir sınıfta geçerli olmayan bir komut: %s" -msgid "E1319: Using a class as a Number" +msgid "E1319: Using a Class as a Number" msgstr "E1319: Bir sınıf, sayı olarak kullanılıyor" -msgid "E1320: Using an object as a Number" +msgid "E1320: Using an Object as a Number" msgstr "E1320: Bir nesne, sayı olarak kullanılıyor" -msgid "E1321: Using a class as a Float" +msgid "E1321: Using a Class as a Float" msgstr "E1321: Bir sınıf, kayan noktalı deÄŸer olarak kullanılıyor" -msgid "E1322: Using an object as a Float" +msgid "E1322: Using an Object as a Float" msgstr "E1322: Bir nesne, kayan noktalı deÄŸer olarak kullanılıyor" -msgid "E1323: Using a class as a String" +msgid "E1323: Using a Class as a String" msgstr "E1323: Bir sınıf, dizi olarak kullanılıyor" -msgid "E1324: Using an object as a String" +msgid "E1324: Using an Object as a String" msgstr "E1324: Bir nesne, dizi olarak kullanılıyor" #, c-format -msgid "E1325: Method not found on class \"%s\": %s" -msgstr "E1325: Yöntem, \"%s\" sınıfında bulunamadı: %s" +msgid "E1325: Method \"%s\" not found in class \"%s\"" +msgstr "E1325: \"%2$s\" sınıfında \"%1$s\" yöntemi bulunamadı" #, c-format -msgid "E1326: Member not found on object \"%s\": %s" -msgstr "E1326: Üye, \"%s\" nesnesinde bulunamadı: %s" +msgid "E1326: Variable \"%s\" not found in object \"%s\"" +msgstr "E1326: \"%2$s\" nesnesinde \"%1$s\" deÄŸiÅŸkeni bulunamadı" #, c-format msgid "E1327: Object required, found %s" @@ -8367,39 +8375,34 @@ msgid "E1328: Constructor default value must be v:none: %s" msgstr "E1328: Yapıcı öntanımlı deÄŸeri v:none olmalı: %s" #, c-format -msgid "E1329: Cannot get object member type from initializer: %s" -msgstr "E1329: İlklendiriciden nesne üye türü alınamıyor: %s" +msgid "E1329: Invalid class variable declaration: %s" +msgstr "E1329: Geçersiz nesne deÄŸiÅŸkeni beyanı: %s" #, c-format -msgid "E1330: Invalid type for object member: %s" -msgstr "E1330: Nesne üyesi için geçersiz tür: %s" +msgid "E1330: Invalid type for object variable: %s" +msgstr "E1330: Nesne deÄŸiÅŸkeni için geçersiz tür: %s" -msgid "E1331: Public must be followed by \"this\" or \"static\"" -msgstr "E1331: Public sonrası \"this\" veya \"static\" gelmelidir" +msgid "" +"E1331: Public must be followed by \"var\" or \"static\" or \"final\" or " +"\"const\"" +msgstr "E1331: Public sonrası \"var\", \"static\", \"final\" veya \"const\" " +"gelmelidir" #, c-format -msgid "E1332: Public member name cannot start with underscore: %s" -msgstr "E1332: Genel üye adı bir alt çizgiyle baÅŸlayamaz: %s" +msgid "E1332: Public variable name cannot start with underscore: %s" +msgstr "E1332: Genel deÄŸiÅŸken adı bir alt çizgiyle baÅŸlayamaz: %s" #, c-format -msgid "E1333: Cannot access private member: %s" -msgstr "E1333: Özel üyeye eriÅŸilemiyor: %s" +msgid "E1333: Cannot access protected variable \"%s\" in class \"%s\"" +msgstr "E1333: \"%2$s\" sınıfındaki \"%1$s\" korunan deÄŸiÅŸkenine eriÅŸilemiyor" #, c-format -msgid "E1334: Object member not found: %s" -msgstr "E1334: Nesne üyesi bulunamadı: %s" +msgid "E1335: Variable \"%s\" in class \"%s\" is not writable" +msgstr "E1335: \"%2$s\" sınıfındaki \"%1$s\" deÄŸiÅŸkeni yazılabilir deÄŸil" #, c-format -msgid "E1335: Member is not writable: %s" -msgstr "E1335: Üye yazılabilir deÄŸil: %s" - -#, c-format -msgid "E1337: Class member not found: %s" -msgstr "E1337: Sınıf üyesi bulunamadı: %s" - -#, c-format -msgid "E1338: Member not found on class \"%s\": %s" -msgstr "E1338: \"%s\" sınıfında üye bulunamadı: %s" +msgid "E1337: Class variable \"%s\" not found in class \"%s\"" +msgstr "E1337: \"%2$s\" sınfında \"%1$s\" sınıf deÄŸiÅŸkeni bulunamadı" msgid "" "E1339: Cannot add a textprop with text after using a textprop with a " @@ -8423,8 +8426,8 @@ msgstr "E1342: Arayüz yalnızca Vim9 betiÄŸinde tanımlanabilir" msgid "E1343: Interface name must start with an uppercase letter: %s" msgstr "E1343: Arayüz adı bir BÜYÜK harfle baÅŸlamalıdır: %s" -msgid "E1344: Cannot initialize a member in an interface" -msgstr "E1344: Bir arayüzde bir üye ilklendirilemiyor" +msgid "E1344: Cannot initialize a variable in an interface" +msgstr "E1344: Bir arayüzde bir deÄŸiÅŸken ilklendirilemiyor" #, c-format msgid "E1345: Not a valid command in an interface: %s" @@ -8439,12 +8442,12 @@ msgid "E1347: Not a valid interface: %s" msgstr "E1347: Geçerli bir arayüz deÄŸil: %s" #, c-format -msgid "E1348: Member \"%s\" of interface \"%s\" not implemented" -msgstr "E1348: \"%2$\" arayüzünün \"%1$s\" üyesi ilklendirilemiyor" +msgid "E1348: Variable \"%s\" of interface \"%s\" is not implemented" +msgstr "E1348: \"%2$s\" arayüzünün \"%1$s\" deÄŸiÅŸkeni gerçeklenmemiÅŸ" #, c-format -msgid "E1349: Function \"%s\" of interface \"%s\" not implemented" -msgstr "E1349: \"%2$\" arayüzünün \"%1$s\" iÅŸlevi gerçeklenmemiÅŸ" +msgid "E1349: Method \"%s\" of interface \"%s\" is not implemented" +msgstr "E1349: \"%2$s\" arayüzünün \"%1$s\" yöntemi gerçeklenmemiÅŸ" msgid "E1350: Duplicate \"implements\"" msgstr "E1350: Yinelenen \"implements\"" @@ -8471,14 +8474,14 @@ msgstr "E1355: Yinelenen iÅŸlev: %s" msgid "E1356: \"super\" must be followed by a dot" msgstr "E1356: \"super\" sonrası bir nokta gelmelidir " -msgid "E1357: Using \"super\" not in a class function" -msgstr "E1357: \"super\" bir sınıf iÅŸlevi dışında kullanılıyor" +msgid "E1357: Using \"super\" not in a class method" +msgstr "E1357: \"super\" bir sınıf yöntemi dışında kullanılıyor" msgid "E1358: Using \"super\" not in a child class" msgstr "E1358: \"super\", bir alt sınıfta kullanılmıyor" -msgid "E1359: Cannot define a \"new\" function in an abstract class" -msgstr "E1359: Soyut bir sınıfta bir \"new\" iÅŸlevi tanımlanamıyor" +msgid "E1359: Cannot define a \"new\" method in an abstract class" +msgstr "E1359: Soyut bir sınıfta bir \"new\" yöntemi tanımlanamıyor" msgid "E1360: Using a null object" msgstr "E1360: Bir null nesne kullanılıyor" @@ -8495,44 +8498,231 @@ msgstr "E1363: Tam olmayan tür" msgid "E1364: Warning: Pointer block corrupted" msgstr "E1364: Uyarı: İşaretçi bloku hasar görmüş" -msgid "E1365: Cannot use a return type with the \"new\" function" -msgstr "E1365: \"new\" iÅŸleviyle bir dönüş türü kullanılamıyor" +msgid "E1365: Cannot use a return type with the \"new\" method" +msgstr "E1365: \"new\" yöntemiyle bir dönüş türü kullanılamıyor" #, c-format -msgid "E1400: Cannot mix positional and non-positional arguments: %s" -msgstr "E1400: Konumsal ve konumsal olmayan argümanlar karıştırılamıyor: %s" +msgid "E1366: Cannot access protected method: %s" +msgstr "E1366: Korunan yönteme eriÅŸilemiyor: %s" #, c-format -msgid "E1401: format argument %d unused in $-style format: %s" -msgstr "E1401: Biçim argümanı %d, $-tarzı biçimde kullanılmıyor: %s" +msgid "E1367: Access level of variable \"%s\" of interface \"%s\" is different" +msgstr "E1367: \"%2$s\" arayüzünün \"%1$s\" deÄŸiÅŸkeninin eriÅŸim düzeyi farklı" + +msgid "" +"E1368: Static must be followed by \"var\" or \"def\" or \"final\" or " +"\"const\"" +msgstr "E1368: Static sonrası \"var\", \"def\", \"final\" veya \"const\" " +"gelmelidir" + +#, c-format +msgid "E1369: Duplicate variable: %s" +msgstr "E1369: Yinelenen deÄŸiÅŸken: %s" + +msgid "E1370: Cannot define a \"new\" method as static" +msgstr "E1370: Bir \"new\" yöntemi static olarak tanımlanamıyor" + +msgid "E1371: Abstract must be followed by \"def\"" +msgstr "E1371: Abstract sonrası \"def\" gelmelidir " + +#, c-format +msgid "E1372: Abstract method \"%s\" cannot be defined in a concrete class" +msgstr "E1372: Soyut yöntem \"%s\", bir kesin sınıfta tanımlanamıyor" + +#, c-format +msgid "E1373: Abstract method \"%s\" is not implemented" +msgstr "E1373: Soyut yöntem \"%s\" gerçeklenmemiÅŸ" + +#, c-format +msgid "E1374: Class variable \"%s\" accessible only inside class \"%s\"" +msgstr "E1374: Sınıf deÄŸiÅŸkeni \"%s\", yalnızca \"%s\" sınıfının içinde " +"eriÅŸilebilirdir" + +#, c-format +msgid "E1375: Class variable \"%s\" accessible only using class \"%s\"" +msgstr "E1375: Sınıf deÄŸiÅŸkeni \"%s\", yalnızca \"%s\" sınıfı kullanılarak " +"eriÅŸilebilirdir" + +#, c-format +msgid "E1376: Object variable \"%s\" accessible only using class \"%s\" object" +msgstr "E1376: Nesne deÄŸiÅŸkeni \"%s\", yalnızca sınıf \"%s\" nesnesi " +"kullanılarak eriÅŸilebilirdir" + +#, c-format +msgid "E1377: Access level of method \"%s\" is different in class \"%s\"" +msgstr "E1377: \"%s\" yönteminin eriÅŸim düzeyi \"%s\" sınıfında farklı" + +msgid "E1378: Static member not supported in an interface" +msgstr "E1378: Durgun üye bir arayüzde desteklenmiyor" + +msgid "E1379: Protected variable not supported in an interface" +msgstr "E1379: Korunan deÄŸiÅŸken bir arayüzde desteklenmiyor" + +msgid "E1380: Protected method not supported in an interface" +msgstr "E1380: Korunan yöntem bir arayüzde desteklenmiyor" + +msgid "E1381: Interface cannot use \"implements\"" +msgstr "E1381: Arayüz \"implements\" kullanamıyor" + +#, c-format +msgid "E1382: Variable \"%s\": type mismatch, expected %s but got %s" +msgstr "" +"E1382: \"%s\" deÄŸiÅŸkeni: Tür uyumsuzluÄŸu, %s bekleniyordu; ancak %s alındı" + +#, c-format +msgid "E1383: Method \"%s\": type mismatch, expected %s but got %s" +msgstr "" +"E1383: \"%s\" yöntemi: Tür uyumsuzluÄŸu, %s bekleniyordu; ancak %s alındı" + +#, c-format +msgid "E1384: Class method \"%s\" accessible only inside class \"%s\"" +msgstr "E1384: Sınıf yöntemi \"%s\", yalnızca \"%s\" sınıfının içinde " +"eriÅŸilebilirdir" + +#, c-format +msgid "E1385: Class method \"%s\" accessible only using class \"%s\"" +msgstr "E1385: Sınıf yöntemi \"%s\", yalnızca \"%s\" sınıfı kullanılarak " +"eriÅŸilebilirdir" + +#, c-format +msgid "E1386: Object method \"%s\" accessible only using class \"%s\" object" +msgstr "E1386: Nesne yöntemi \"%s\", yalnızca sınıf \"%s\" nesnesi " +"kullanılarak eriÅŸilebilirdir" + +msgid "E1387: Public variable not supported in an interface" +msgstr "E1387: Bir arayüzde genel deÄŸiÅŸken desteklenmiyor" + +msgid "E1388: Public keyword not supported for a method" +msgstr "E1388: Bir yöntem için genel anahtar sözcük desteklenmiyor" + +msgid "E1389: Missing name after implements" +msgstr "E1389: implements sonrası ad eksik" #, c-format msgid "" -"E1402: Positional argument %d used as field width reused as different type: " +"E1390: Cannot use an object variable \"this.%s\" except with the \"new\" " +"method" +msgstr "" +"E1390: \"new\" yöntemi dışında bir \"this.%s\" nesne deÄŸiÅŸkeni kullanılamıyor" + +#, c-format +msgid "E1391: Cannot (un)lock variable \"%s\" in class \"%s\"" +msgstr "E1391: \"%2$s\" sınıfındaki \"%1$s\" deÄŸiÅŸkeni kilitlenemiyor/açılamıyor" + +#, c-format +msgid "E1392: Cannot (un)lock class variable \"%s\" in class \"%s\"" +msgstr "E1392: \"%2$s\" sınıfındaki \"%1$s\" sınıf deÄŸiÅŸkeni " +"kilitlenemiyor/açılamıyor" + +msgid "E1393: Type can only be defined in Vim9 script" +msgstr "E1393: Tür, yalnızca Vim9 betiÄŸinde tanımlanabilir" + +#, c-format +msgid "E1394: Type name must start with an uppercase letter: %s" +msgstr "E1394: Tür adı bir BÜYÜK harfle baÅŸlamalıdır: %s" + +#, c-format +msgid "E1395: Type alias \"%s\" cannot be modified" +msgstr "E1395: Tür arması \"%s\" deÄŸiÅŸtirilemiyor" + +#, c-format +msgid "E1396: Type alias \"%s\" already exists" +msgstr "E1396: Tür arması \"%s\" halihazırda var" + +msgid "E1397: Missing type alias name" +msgstr "E1397: Tür arması adı eksik" + +msgid "E1398: Missing type alias type" +msgstr "E1398: Tür arması türü eksik" + +msgid "E1399: Type can only be used in a script" +msgstr "E1399: Tür yalnızca bir betikte kullanılabilir" + +#, c-format +msgid "E1400: Using type alias \"%s\" as a Number" +msgstr "E1400: Tür arması \"%s\", sayı olarak kullanılıyor" + +#, c-format +msgid "E1401: Using type alias \"%s\" as a Float" +msgstr "E1401: Tür arması \"%s\", kayan noktalı deÄŸer olarak kullanılıyor" + +#, c-format +msgid "E1402: Using type alias \"%s\" as a String" +msgstr "E1402: Tür arması \"%s\", dizi olarak kullanılıyor" + +#, c-format +msgid "E1403: Type alias \"%s\" cannot be used as a value" +msgstr "E1403: Tür arması \"%s\", bir deÄŸer olarak kullanılamıyor" + +msgid "E1404: Abstract cannot be used in an interface" +msgstr "E1404: Abstract yalnızca bir betikte kullanılabilir" + +#, c-format +msgid "E1405: Class \"%s\" cannot be used as a value" +msgstr "E1405: \"%s\" sınıfı yalnızca bir deÄŸer olarak kullanılabilir" + +msgid "E1406: Cannot use a Class as a variable or value" +msgstr "E1406: Sınıf, bir deÄŸiÅŸken veya deÄŸer olarak kullanılamıyor" + +msgid "E1407: Cannot use a Typealias as a variable or value" +msgstr "E1407: Tür arması, bir deÄŸiÅŸken veya deÄŸer olarak kullanılamıyor" + +msgid "E1408: Final variable not supported in an interface" +msgstr "E1408: Final deÄŸiÅŸkeni bir arayüzde desteklenmiyor" + +#, c-format +msgid "E1409: Cannot change read-only variable \"%s\" in class \"%s\"" +msgstr "E1409: \"%2$s\" sınıfındaki \"%1$s\" saltokunur deÄŸiÅŸken " +"deÄŸiÅŸtirilemiyor" + +msgid "E1410: Const variable not supported in an interface" +msgstr "E1410: Bir arayüzde bir bir Const deÄŸiÅŸken desteklenmiyor" + +#, c-format +msgid "E1500: Cannot mix positional and non-positional arguments: %s" +msgstr "E1500: Konumsal ve konumsal olmayan argümanlar karıştırılamıyor: %s" + +#, c-format +msgid "E1501: format argument %d unused in $-style format: %s" +msgstr "E1501: Biçim argümanı %d, $-tarzı biçimde kullanılmıyor: %s" + +#, c-format +msgid "" +"E1502: Positional argument %d used as field width reused as different type: " "%s/%s" msgstr "" -"E1402: Konumsal argüman %d, baÅŸka türle yeniden kullanılan alan olarak " -"kullanılıyor: %s/%s" +"E1502: Konumsal argüman %d, baÅŸka türle yeniden kullanılan alan geniÅŸliÄŸi " +"olarak kullanılıyor: %s/%s" #, c-format -msgid "E1403: Positional argument %d out of bounds: %s" -msgstr "E1403: Konumsal argüman %d, sınırlar dışında: %s" +msgid "E1503: Positional argument %d out of bounds: %s" +msgstr "E1503: Konumsal argüman %d, sınırlar dışında: %s" #, c-format -msgid "E1404: Positional argument %d type used inconsistently: %s/%s" -msgstr "E1404: Konumsal argüman %d türü tutarsız olarak kullanıldı: %s/%s" +msgid "E1504: Positional argument %d type used inconsistently: %s/%s" +msgstr "E1504: Konumsal argüman %d türü tutarsız olarak kullanıldı: %s/%s" #, c-format -msgid "E1405: Invalid format specifier: %s" -msgstr "E1405: Geçersiz biçim belirteci: %s" +msgid "E1505: Invalid format specifier: %s" +msgstr "E1505: Geçersiz biçim belirteci: %s" + +msgid "E1506: Buffer too small to copy xattr value or key" +msgstr "" +"E1506: Arabellek, xattr deÄŸerini veya anahtarını kopyalamak için pek küçük" + +msgid "" +"E1508: Size of the extended attribute value is larger than the maximum size " +"allowed" +msgstr "" +"E1508: GeniÅŸletilmiÅŸ özniteliÄŸin deÄŸeri, izin verilen en büyük boyuttan daha " +"büyük" + +msgid "E1509: Error occurred when reading or writing extended attribute" +msgstr "E1509: GeniÅŸletilmiÅŸ öznitelik okunurken veya yazılırken hata oluÅŸtu" #, c-format -msgid "E1406: Member \"%s\": type mismatch, expected %s but got %s" -msgstr "E1406: \"%s\" üyesi türü uyumsuzluÄŸu, %s bekleniyordu; ancak %s alındı" - -#, c-format -msgid "E1407: Member \"%s\": type mismatch, expected %s but got %s" -msgstr "E1407: \"%s\" üyesi türü uyumsuzluÄŸu, %s bekleniyordu; ancak %s alındı" +msgid "E1510: Value too large: %s" +msgstr "E1510: DeÄŸer pek büyük: %s" msgid "--No lines in buffer--" msgstr "--Arabellek içinde satır yok--" @@ -8713,11 +8903,11 @@ msgstr "sabit liste deÄŸiÅŸtirilemiyor" #, c-format msgid "unnamed function %s does not exist" -msgstr "adsız %s iÅŸlevi mevcut deÄŸil" +msgstr "adsız %s iÅŸlevi yok" #, c-format msgid "function %s does not exist" -msgstr "%s iÅŸlevi mevcut deÄŸil" +msgstr "%s iÅŸlevi yok" #, c-format msgid "failed to run function %s" @@ -8780,7 +8970,7 @@ msgid "expected vim.Window object, but got %s" msgstr "vim.Window nesnesi bekleniyordu, %s geldi" msgid "failed to find window in the current tab page" -msgstr "mevcut sekme sayfasında pencere bulunamadı" +msgstr "geçerli sekme sayfasında pencere bulunamadı" msgid "did not switch to the specified window" msgstr "belirtilen pencereye geçilemedi" From b42703a662e87ef0ab643f417869851f065eaac4 Mon Sep 17 00:00:00 2001 From: Eric Pruitt Date: Mon, 18 Dec 2023 00:03:40 -0800 Subject: [PATCH 052/120] runtime(tmux): Update tmux syntax rules (#13708) Signed-off-by: Eric Pruitt Signed-off-by: Christian Brabandt --- runtime/syntax/tmux.vim | 160 ++++++++++++++++++++++------------------ 1 file changed, 89 insertions(+), 71 deletions(-) diff --git a/runtime/syntax/tmux.vim b/runtime/syntax/tmux.vim index 042b96e872..d2b31e874c 100644 --- a/runtime/syntax/tmux.vim +++ b/runtime/syntax/tmux.vim @@ -1,5 +1,5 @@ " Language: tmux(1) configuration file -" Version: 3.3-rc (git-964deae4) +" Version: 3.3a (git-e7c829fc) " URL: https://github.com/ericpruitt/tmux.vim/ " Maintainer: Eric Pruitt " License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause) @@ -17,8 +17,9 @@ let b:current_syntax = "tmux" syntax iskeyword @,48-57,_,192-255,- syntax case match -syn keyword tmuxAction none any current other -syn keyword tmuxBoolean off on yes no +" The values "yes" and "no" are synonyms for "on" and "off", so they do not +" appear in the option table file. +syn keyword tmuxEnums yes no syn keyword tmuxTodo FIXME NOTE TODO XXX contained @@ -27,12 +28,20 @@ syn match tmuxKey /\(C-\|M-\|\^\)\+\S\+/ display syn match tmuxNumber /\<\d\+\>/ display syn match tmuxFlags /\s-\a\+/ display syn match tmuxVariableExpansion /\$\({[A-Za-z_]\w*}\|[A-Za-z_]\w*\)/ display -syn match tmuxControl /^\s*%\(if\|elif\|else\|endif\)\>/ +syn match tmuxControl /\(^\|\s\)%\(if\|elif\|else\|endif\)\($\|\s\)/ display syn match tmuxEscape /\\\(u\x\{4\}\|U\x\{8\}\|\o\{3\}\|[\\ernt$]\)/ display +" Missing closing bracket. +syn match tmuxInvalidVariableExpansion /\${[^}]*$/ display +" Starts with invalid character. +syn match tmuxInvalidVariableExpansion /\${[^A-Za-z_][^}]*}/ display +syn match tmuxInvalidVariableExpansion /\$[^A-Za-z_{ \t]/ display +" Contains invalid character. +syn match tmuxInvalidVariableExpansion /\${[^}]*[^A-Za-z0-9_][^}]*}/ display + syn region tmuxComment start=/#/ skip=/\\\@ Date: Mon, 18 Dec 2023 09:08:41 +0100 Subject: [PATCH 053/120] translation(it): Update Italian translations Signed-off-by: Antonio Giovanni Colombo Signed-off-by: Christian Brabandt --- src/po/it.po | 239 +++++++++++++++++++++++++++------------------------ 1 file changed, 127 insertions(+), 112 deletions(-) diff --git a/src/po/it.po b/src/po/it.po index 477e176fa5..fa62334437 100644 --- a/src/po/it.po +++ b/src/po/it.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-11-26 23:30+0100\n" +"PO-Revision-Date: 2023-12-16 20:11+0100\n" "Last-Translator: Antonio Colombo \n" "Language-Team: Italian\n" "Language: it\n" @@ -1403,7 +1403,7 @@ msgid "netbeans is not supported with this GUI\n" msgstr "netbeans non è supportato con questa GUI\n" msgid "'-nb' cannot be used: not enabled at compile time\n" -msgstr "'-nb' non disponibile: non abilitato in compilazione\n" +msgstr "Impossibile usare '-nb': non abilitato in compilazione\n" msgid "This Vim was not compiled with the diff feature." msgstr "Vim non compilato con funzionalità 'diff'." @@ -1841,13 +1841,13 @@ msgstr "" "Forse non ci sono state modifiche oppure Vim non ha aggiornato lo swap file." msgid " cannot be used with this version of Vim.\n" -msgstr " non può essere usato con questa versione di Vim.\n" +msgstr " impossibile da usare con questa versione di Vim.\n" msgid "Use Vim version 3.0.\n" msgstr "Usa Vim versione 3.0.\n" msgid " cannot be used on this computer.\n" -msgstr " non può essere usato su questo computer.\n" +msgstr " impossibile da usare su questo computer.\n" msgid "The file was created on " msgstr "Il file è stato creato il " @@ -3181,7 +3181,7 @@ msgid "Reading undo file: %s" msgstr "Lettura file Undo: %s" msgid "File contents changed, cannot use undo info" -msgstr "File ulteriormente modificato, non posso usare informazioni di Undo" +msgstr "File ulteriormente modificato, impossibile usare informazioni di Undo" msgid "Finished reading undo file %s" msgstr "Lettura del file Undo %s effettuata" @@ -3755,10 +3755,10 @@ msgid "E24: No such abbreviation" msgstr "E24: Abbreviazione inesistente" msgid "E25: GUI cannot be used: Not enabled at compile time" -msgstr "E25: GUI non utilizzabile: Non abilitata in compilazione" +msgstr "E25: Impossibile usare GUI: Non abilitata in compilazione" msgid "E26: Hebrew cannot be used: Not enabled at compile time\n" -msgstr "E26: Ebraico non utilizzabile: Non abilitato in compilazione\n" +msgstr "E26: Impossibile usare Ebraico: Non abilitato in compilazione\n" msgid "E27: Farsi support has been removed\n" msgstr "E27: Il supporto per la lingua farsi non è più disponibile\n" @@ -4503,7 +4503,7 @@ msgid "E275: Cannot add text property to unloaded buffer" msgstr "E275: Non posso aggiungere proprietà di testo a un buffer scaricato" msgid "E276: Cannot use function as a method: %s" -msgstr "E276: Non posso usare la funzione come un metodo: %s" +msgstr "E276: Impossibile usare la funzione come un metodo: %s" msgid "E277: Unable to read a server reply" msgstr "E277: Non riesco a leggere una risposta del server" @@ -5621,9 +5621,6 @@ msgstr "E647: Identificativo buffer non valido in setDot" msgid "E648: Invalid buffer identifier in close" msgstr "E648: Identificativo buffer non valido in close" -msgid "E649: Invalid buffer identifier in close" -msgstr "E649: Identificativo buffer non valido in close" - msgid "E650: Invalid buffer identifier in defineAnnoType" msgstr "E650: Identificativo buffer non valido in defineAnnoType" @@ -5748,8 +5745,8 @@ msgstr "E691: Posso confrontare una Lista solo con un'altra Lista" msgid "E692: Invalid operation for List" msgstr "E692: Operazione non valida per Liste" -msgid "E693: List or Class required for argument %d" -msgstr "E693: Lista o Classe richiesta per argomento %d" +msgid "E693: Class or class typealias required for argument %d" +msgstr "E693: Classe o Tipo alias della Classe richiesto per argomento %d" msgid "E694: Invalid operation for Funcrefs" msgstr "E694: Operazione non valida per Funcref" @@ -5811,7 +5808,7 @@ msgid "E712: Argument of %s must be a List or Dictionary" msgstr "E712: L'argomento di %s dev'essere una Lista o un Dizionario" msgid "E713: Cannot use empty key for Dictionary" -msgstr "E713: Non posso usare una chiave nulla per Dizionario" +msgstr "E713: Impossibile usare una chiave nulla per Dizionario" msgid "E714: List required" msgstr "E714: È necessaria una Lista" @@ -6087,7 +6084,7 @@ msgid "E799: Invalid ID: %d (must be greater than or equal to 1)" msgstr "E799: ID non valido: %d (dev'essere maggiore o uguale a 1)" msgid "E800: Arabic cannot be used: Not enabled at compile time\n" -msgstr "E800: Arabo non utilizzabile: Non abilitato in compilazione\n" +msgstr "E800: Impossibile usare Arabo: Non abilitato in compilazione\n" msgid "E801: ID already taken: %d" msgstr "E801: ID già utilizzato: %d" @@ -6100,7 +6097,7 @@ msgstr "E803: ID non trovato: %d" #, no-c-format msgid "E804: Cannot use '%' with Float" -msgstr "E804: Non si può usare '%' con un Numero-a-virgola-mobile" +msgstr "E804: Impossibile usare '%' con un Numero-a-virgola-mobile" msgid "E805: Using a Float as a Number" msgstr "E805: Uso di un Numero-a-virgola-mobile come un Numero" @@ -6200,10 +6197,10 @@ msgid "E835: Conflicts with value of 'fillchars'" msgstr "E835: Conflitto con il valore di 'fillchars'" msgid "E836: This Vim cannot execute :python after using :py3" -msgstr "E836: Python: Impossibile usare :py e :py3 nella stessa sessione" +msgstr "E836: Impossibile eseguire :python dopo aver usato :py3" msgid "E837: This Vim cannot execute :py3 after using :python" -msgstr "E837: Impossibile usare ora :py3 dopo aver usato :python" +msgstr "E837: Impossibile eseguire :py3 dopo aver usato :python" msgid "E838: NetBeans is not supported with this GUI" msgstr "E838: NetBeans non è supportato con questa GUI" @@ -6212,7 +6209,8 @@ msgid "E840: Completion function deleted text" msgstr "E840: La funzione di completamento ha eliminato del testo" msgid "E841: Reserved name, cannot be used for user defined command" -msgstr "E841: Nome riservato, non usabile in un comando definito dall'utente" +msgstr "" +"E841: Nome riservato, impossibile da usare in un comando definito dall'utente" msgid "E842: No line number to use for \"\"" msgstr "E842: Nessun numero di riga da usare per \"\"" @@ -6280,7 +6278,7 @@ msgid "E861: Cannot open a second popup with a terminal" msgstr "E861: Non posso aprire una seconda finestra dinamica con un terminale" msgid "E862: Cannot use g: here" -msgstr "E862: Non si può usare g: qui" +msgstr "E862: Impossibile usare g: qui" msgid "E863: Not allowed for a terminal in a popup window" msgstr "E863: Non consentito per un terminale in una finestra dinamica" @@ -6463,7 +6461,7 @@ msgid "E911: Using a Job as a Float" msgstr "E911: Uso di un Job come un Numero-a-virgola-mobile" msgid "E912: Cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel" -msgstr "E912: Non posso usare ch_evalexpr() con un canale grezzo o nl" +msgstr "E912: Impossibile usare ch_evalexpr() con un canale grezzo o nl" msgid "E913: Using a Channel as a Number" msgstr "E913: Uso di un Canale come un Numero" @@ -6478,7 +6476,7 @@ msgid "E916: Not a valid job" msgstr "E916: Job non valido" msgid "E917: Cannot use a callback with %s()" -msgstr "E917: Non posso usare callback con %s()" +msgstr "E917: Impossibile usare callback con %s()" msgid "E918: Buffer must be loaded: %s" msgstr "E918: Il buffer dev'essere caricato: %s" @@ -6515,7 +6513,7 @@ msgid "E929: Too many viminfo temp files, like %s!" msgstr "E929: Troppi file temporanei viminfo, come %s!" msgid "E930: Cannot use :redir inside execute()" -msgstr "E930: Non si può usare :redir all'interno di execute()" +msgstr "E930: Impossibile usare :redir all'interno di execute()" msgid "E931: Buffer cannot be registered" msgstr "E931: Non riesco a registrare il buffer" @@ -6597,7 +6595,7 @@ msgid "E955: Not a terminal buffer" msgstr "E955: Il buffer non è un terminale" msgid "E956: Cannot use pattern recursively" -msgstr "E956: Uso ricorsivo di espressione di ricerca non consentito" +msgstr "E956: Impossibile usare espressione di ricerca ricorsivamente" msgid "E957: Invalid window number" msgstr "E957: Numero di finestra non valido" @@ -6691,7 +6689,7 @@ msgid "E987: Invalid return value from tagfunc" msgstr "E987: Valore non valido restituito da tagfunc" msgid "E988: GUI cannot be used. Cannot execute gvim.exe." -msgstr "E988: GUI non utilizzabile. Non riesco a eseguire gvim.exe." +msgstr "E988: Impossibile usare GUI. Non riesco a eseguire gvim.exe." msgid "E989: Non-default argument follows default argument" msgstr "E989: Argomento non predefinito dopo argomento predefinito" @@ -6700,7 +6698,7 @@ msgid "E990: Missing end marker '%s'" msgstr "E990: Manca marcatore di fine '%s'" msgid "E991: Cannot use =<< here" -msgstr "E991: Non posso usare =<< qui" +msgstr "E991: Impossibile usare =<< qui" msgid "E992: Not allowed in a modeline when 'modelineexpr' is off" msgstr "E992: Non consentito in una modeline quando a 'modelineexpr' vale off" @@ -6808,7 +6806,7 @@ msgid "E1019: Can only concatenate to string" msgstr "E1019: Posso solo concatenare a una stringa" msgid "E1020: Cannot use an operator on a new variable: %s" -msgstr "E1020: Non posso usare un operatore su una variabile nuova: %s" +msgstr "E1020: Impossibile usare un operatore su una variabile nuova: %s" msgid "E1021: Const requires a value" msgstr "E1021: Const richiede un valore" @@ -6841,7 +6839,7 @@ msgid "E1030: Using a String as a Number: \"%s\"" msgstr "E1030: Uso di una Stringa come un Numero: \"%s\"" msgid "E1031: Cannot use void value" -msgstr "E1031: Non posso usare valore nullo" +msgstr "E1031: Impossibile usare valore nullo" msgid "E1032: Missing :catch or :finally" msgstr "E1032: Manca :catch o :finally" @@ -6850,7 +6848,7 @@ msgid "E1033: Catch unreachable after catch-all" msgstr "E1033: Catch non raggiungibile dopo aver richiesto catch-all" msgid "E1034: Cannot use reserved name %s" -msgstr "E1034: Non posso usare il nome riservato %s" +msgstr "E1034: Impossibile usare il nome riservato %s" #, no-c-format msgid "E1035: % requires number arguments" @@ -6861,7 +6859,7 @@ msgstr "" "E1036: %c richiede come argomenti dei Numeri o dei Numeri-a-virgola-mobile" msgid "E1037: Cannot use \"%s\" with %s" -msgstr "E1037: Non posso usare \"%s\" con %s" +msgstr "E1037: Impossibile usare \"%s\" con %s" msgid "E1038: \"vim9script\" can only be used in a script" msgstr "E1038: \"vim9script\" può solo essere usato in uno script" @@ -6870,7 +6868,7 @@ msgid "E1039: \"vim9script\" must be the first command in a script" msgstr "E1039: \"vim9script\" dev'essere il primo comando in uno script" msgid "E1040: Cannot use :scriptversion after :vim9script" -msgstr "E1040: Non si può usare :scriptversion dopo :vim9script" +msgstr "E1040: Impossibile usare :scriptversion dopo :vim9script" msgid "E1041: Redefining script item: \"%s\"" msgstr "E1041: Ridefinisco elemento di script \"%s\"" @@ -6996,7 +6994,7 @@ msgid "E1085: Not a callable type: %s" msgstr "E1085: Tipo che non può essere chiamato: %s" msgid "E1087: Cannot use an index when declaring a variable" -msgstr "E1087: Non posso usare un indice nella dichiarazione di una variabile" +msgstr "E1087: Impossibile usare un indice nella dichiarazione di una variabile" msgid "E1088: Script cannot import itself" msgstr "E1088: Uno script non può importare se stesso" @@ -7089,7 +7087,7 @@ msgstr "" "E1116: Il quinto argomento di \"assert_fails()\" dev'essere una Stringa" msgid "E1117: Cannot use ! with nested :def" -msgstr "E1117: Non posso usare ! con :def nidificate" +msgstr "E1117: Impossibile usare ! con :def nidificate" msgid "E1118: Cannot change locked list" msgstr "E1118: Non posso cambiare Lista non modificabile" @@ -7110,13 +7108,13 @@ msgid "E1123: Missing comma before argument: %s" msgstr "E1123: Manca virgola prima dell'argomento: %s" msgid "E1124: \"%s\" cannot be used in legacy Vim script" -msgstr "E1124: \"%s\" non si può usare negli script Vim tradizionali" +msgstr "E1124: Impossibile usare \"%s\" negli script Vim tradizionali" msgid "E1125: Final requires a value" msgstr "E1125: :final richiede un valore" msgid "E1126: Cannot use :let in Vim9 script" -msgstr "E1126: Non si può usare :let negli script Vim9" +msgstr "E1126: Impossibile usare :let negli script Vim9" msgid "E1127: Missing name after dot" msgstr "E1127: Manca il nome dopo il punto" @@ -7214,7 +7212,7 @@ msgstr "E1157: Manca Tipo di valore restituito" msgid "E1158: Cannot use flatten() in Vim9 script, use flattennew()" msgstr "" -"E1158: Non si può usare flatten() negli script Vim9, usare flattennew()" +"E1158: Impossibile usare flatten() in script Vim9, usare flattennew()" msgid "E1159: Cannot split a window when closing the buffer" msgstr "" @@ -7222,7 +7220,7 @@ msgstr "" msgid "E1160: Cannot use a default for variable arguments" msgstr "" -"E1160: Non posso usare un valore predefinito per argomenti di tipo variabile" +"E1160: Impossibile usare un valore predefinito per argomenti di tipo variabile" msgid "E1161: Cannot json encode a %s" msgstr "E1161: Non si può codificare JSON un/a %s" @@ -7242,10 +7240,10 @@ msgid "E1164: vim9cmd must be followed by a command" msgstr "E1164: vim9cmd dev'essere seguito da un comando" msgid "E1165: Cannot use a range with an assignment: %s" -msgstr "E1165: Non posso usare un intervallo in un'assegnazione: %s" +msgstr "E1165: Impossibile usare un intervallo in un'assegnazione: %s" msgid "E1166: Cannot use a range with a dictionary" -msgstr "E1166: Non posso usare un intervallo con un Dizionario" +msgstr "E1166: Impossibile usare un intervallo con un Dizionario" msgid "E1167: Argument name shadows existing variable: %s" msgstr "E1167: Il nome dell'argomento nasconde una variabile esistente: %s" @@ -7257,14 +7255,14 @@ msgid "E1169: Expression too recursive: %s" msgstr "E1169: Espressione troppo ricorsiva: %s" msgid "E1170: Cannot use #{ to start a comment" -msgstr "E1170: Non si può usare #{ per iniziare un commento" +msgstr "E1170: Impossibile usare #{ per iniziare un commento" msgid "E1171: Missing } after inline function" msgstr "E1171: Manca } dopo una funzione in-linea" msgid "E1172: Cannot use default values in a lambda" msgstr "" -"E1172: Non si possono usare valori predefiniti in un'espressione lambda" +"E1172: Impossibile usare valori predefiniti in un'espressione lambda" msgid "E1173: Text found after %s: %s" msgstr "E1173: Trovato del testo dopo %s: %s" @@ -7295,14 +7293,14 @@ msgid "E1180: Variable arguments type must be a list: %s" msgstr "E1180: Il tipo di argomento delle variabili dev'essere una Lista: %s" msgid "E1181: Cannot use an underscore here" -msgstr "E1181: Non si può usare un trattino basso qui" +msgstr "E1181: Impossibile usare un trattino basso qui" msgid "E1182: Cannot define a dict function in Vim9 script: %s" msgstr "E1182: Non posso definire una funzione dict negli script Vim9: %s" msgid "E1183: Cannot use a range with an assignment operator: %s" msgstr "" -"E1183: Non si può usare un intervallo con un operatore di assegnazione: %s" +"E1183: Impossibile usare un intervallo con un operatore di assegnazione: %s" msgid "E1184: Blob not set" msgstr "E1184: Blob non impostato" @@ -7321,7 +7319,7 @@ msgstr "" "E1188: Non riesco ad aprire un terminale dalla finestra della riga-di-comando" msgid "E1189: Cannot use :legacy with this command: %s" -msgstr "E1189: Non si può usare :legacy con questo comando: %s" +msgstr "E1189: Impossibile usare :legacy con questo comando: %s" msgid "E1190: One argument too few" msgid_plural "E1190: %d arguments too few" @@ -7454,7 +7452,7 @@ msgid "E1230: Encryption: sodium_mlock() failed" msgstr "E1230: CIfratura: sodium_mlock() fallita" msgid "E1231: Cannot use a bar to separate commands here: %s" -msgstr "E1231: Non si può usare una barra per separare comandi qui: %s" +msgstr "E1231: Impossibile usare qui una barra per separare comandi: %s" msgid "E1232: Argument of exists_compiled() must be a literal string" msgstr "" @@ -7467,7 +7465,7 @@ msgid "E1234: legacy must be followed by a command" msgstr "E1234: legacy dev'essere seguito da un comando" msgid "E1236: Cannot use %s itself, it is imported" -msgstr "E1236: Non posso usare %s stesso, è importato" +msgstr "E1236: Impossibile usare %s stesso, è importato" msgid "E1237: No such user-defined command in current buffer: %s" msgstr "E1237: Questo comando utente non c'è nel buffer corrente: %s" @@ -7520,7 +7518,7 @@ msgid "E1252: String, List or Blob required for argument %d" msgstr "E1252: Stringa, Lista o Blob richiesto per argomento %d" msgid "E1254: Cannot use script variable in for loop" -msgstr "E1254: Non si può usare una variabile di script in un ciclo for" +msgstr "E1254: Impossibile usare una variabile di script in un ciclo for" msgid "E1255: mapping must end with " msgstr "E1255: La mappatura di deve terminare con " @@ -7548,14 +7546,15 @@ msgstr "E1262: Non posso importare lo stesso script due volte: %s" msgid "E1263: Cannot use name with # in Vim9 script, use export instead" msgstr "" -"E1263: Non si può usare nome con # negli script Vim9, usare invece export" +"E1263: Impossibile usare nome con # negli script Vim9, usare invece export" msgid "E1264: Autoload import cannot use absolute or relative path: %s" msgstr "" -"E1264: Import di Autoload non riesce a usare percorso assoluto o relativo: %s" +"E1264: Impossibile usare percorso assoluto o relativo in import di " +"Autoload: %s" msgid "E1265: Cannot use a partial here" -msgstr "E1265: Non posso usare un nome parziale qui" +msgstr "E1265: Impossibile usare un \"partial\" qui" msgid "" "E1266: Critical error in python3 initialization, check your python3 " @@ -7568,14 +7567,14 @@ msgid "E1267: Function name must start with a capital: %s" msgstr "E1267: Il nome funzione deve iniziare con maiuscola: %s" msgid "E1268: Cannot use s: in Vim9 script: %s" -msgstr "E1268: Non si può usare s: negli script Vim9: %s" +msgstr "E1268: Impossibile usare s: negli script Vim9: %s" msgid "E1269: Cannot create a Vim9 script variable in a function: %s" msgstr "" "E1269: Non si può creare una variabile di script Vim9 in una funzione: %s" msgid "E1270: Cannot use :s\\/sub/ in Vim9 script" -msgstr "E1270: Non si può usare :s\\/sub/ negli script Vim9" +msgstr "E1270: Impossibile usare :s\\/sub/ negli script Vim9" msgid "E1271: Compiling closure without context: %s" msgstr "E1271: Compilazione di \"closure\" senza un contesto: %s" @@ -7645,7 +7644,7 @@ msgstr "E1292: Finestra della riga-di-comando già aperta" msgid "E1293: Cannot use a negative id after adding a textprop with text" msgstr "" -"E1293: Non posso usare un id negativo dopo aver aggiunto del testo a una " +"E1293: Impossibile usare un id negativo dopo aver aggiunto del testo a una " "'textprop'" msgid "E1294: Can only use text_align when column is zero" @@ -7668,7 +7667,7 @@ msgid "E1299: Window unexpectedly closed while searching for tags" msgstr "E1299: Chiusura inattesa di finestra durante ricerca di tag" msgid "E1300: Cannot use a partial with dictionary for :defer" -msgstr "E1300: Non si può usare un Partial con un Dizionario per :defer" +msgstr "E1300: Impossibile usare un \"partial\" con un Dizionario per :defer" msgid "E1301: String, Number, List or Blob required for argument %d" msgstr "E1301: Stringa, Numero, Lista o Blob richiesto per argomento %d" @@ -7682,12 +7681,12 @@ msgstr "" "restituisce una Lista ma un %s" msgid "E1304: Cannot use type with this variable: %s" -msgstr "E1304: Non si può assegnare il Tipo a questa variabile: %s" +msgstr "E1304: Impossibile usare il Tipo con questa variabile: %s" msgid "" "E1305: Cannot use \"length\", \"end_col\" and \"end_lnum\" with \"text\"" msgstr "" -"E1305: Non si può usare \"length\", \"end_col\" e \"end_lnum\" con \"text\"" +"E1305: Impossibile usare \"length\", \"end_col\" e \"end_lnum\" con \"text\"" msgid "E1306: Loop nesting too deep" msgstr "E1306: Nidificazione troppo estesa" @@ -7761,19 +7760,23 @@ msgstr "E1327: Object necessario, trovato %s" msgid "E1328: Constructor default value must be v:none: %s" msgstr "E1328: Il valore predefinito del costruttore dev'essere v:none: %s" +msgid "E1329: Invalid class variable declaration: %s" +msgstr "E1329: Dichiarazione di variabile Classe non valida: %s" + msgid "E1330: Invalid type for object variable: %s" msgstr "E1330: Tipo non valido per variabile Object: %s" -msgid "E1331: Public must be followed by \"this\" or \"static\"" -msgstr "E1331: Public dev'essere seguito da \"this\" o \"static\"" +msgid "E1331: Public must be followed by \"var\" or \"static\"" +msgstr "E1331: Public dev'essere seguito da \"var\" o \"static\"" msgid "E1332: Public variable name cannot start with underscore: %s" -msgstr "E1332: Il nome di un elemento Pubblico non può iniziare con un " -"trattino basso: %s" +msgstr "" +"E1332: Il nome di un elemento Pubblico non può iniziare con un trattino " +"basso: %s" msgid "E1333: Cannot access protected variable \"%s\" in class \"%s\"" -msgstr "E1333: Non posso accedere alla variabile protetta \"%s\" nella " -" Classe \"%s\"" +msgstr "" +"E1333: Non posso accedere alla variabile protetta \"%s\" nella Classe \"%s\"" msgid "E1335: Variable \"%s\" in class \"%s\" is not writable" msgstr "E1335: La variabile \"%s\" nella Classe \"%s\" è in sola-lettura" @@ -7785,8 +7788,8 @@ msgid "" "E1339: Cannot add a textprop with text after using a textprop with a " "negative id" msgstr "" -"E1339: Non posso aggiungere textprop a un testo dopo aver usato una " -" textprop con un identificativo negativo" +"E1339: Non posso aggiungere textprop a un testo dopo aver usato una " +"textprop con un identificativo negativo" msgid "E1340: Argument already declared in the class: %s" msgstr "E1340: Argomento già dichiarato nella Classe: %s" @@ -7795,30 +7798,30 @@ msgid "E1341: Variable already declared in the class: %s" msgstr "E1341: Variabile già dichiarata nella Classe: %s" msgid "E1342: Interface can only be defined in Vim9 script" -msgstr "E1342: L'interfaccia può essere definita solo negli script Vim9" +msgstr "E1342: L'Interfaccia può essere definita solo negli script Vim9" msgid "E1343: Interface name must start with an uppercase letter: %s" msgstr "" -"E1343: I comandi definiti dall'utente devono iniziare con lettera maiuscola: " +"E1343: Il nome dell'Interfaccia deve iniziare con lettera maiuscola: " "%s" msgid "E1344: Cannot initialize a variable in an interface" -msgstr "E1344: Non riesco a inizializzare una variabile in un'interfaccia" +msgstr "E1344: Non riesco a inizializzare una variabile in un'Interfaccia" msgid "E1345: Not a valid command in an interface: %s" -msgstr "E1345: Comando non valido in un'interfaccia: %s" +msgstr "E1345: Comando non valido in un'Interfaccia: %s" msgid "E1346: Interface name not found: %s" -msgstr "E1346: Nome interfaccia non trovato: %s" +msgstr "E1346: Nome Interfaccia non trovato: %s" msgid "E1347: Not a valid interface: %s" msgstr "E1347: Interfaccia non valida: %s" msgid "E1348: Variable \"%s\" of interface \"%s\" is not implemented" -msgstr "E1348: Variabile \"%s\" dell'interfaccia \"%s\" non implementata" +msgstr "E1348: Variabile \"%s\" dell'Interfaccia \"%s\" non implementata" msgid "E1349: Method \"%s\" of interface \"%s\" is not implemented" -msgstr "E1349: Metodo \"%s\" dell'interfaccia \"%s\" non implementato" +msgstr "E1349: Metodo \"%s\" dell'Interfaccia \"%s\" non implementato" msgid "E1350: Duplicate \"implements\"" msgstr "E1350: \"implements\" specificato due volte" @@ -7854,10 +7857,10 @@ msgid "E1360: Using a null object" msgstr "E1360: Uso di un Object nullo" msgid "E1361: Cannot use color \"none\", did you mean \"NONE\"?" -msgstr "E1361: Non posso usare il colore \"none\", si intendeva \"NONE\"?" +msgstr "E1361: Impossibile usare colore \"none\", si intendeva \"NONE\"?" msgid "E1362: Cannot use a non-null object" -msgstr "E1362: Non posso usare un Object non-NULL" +msgstr "E1362: Impossibile usare un Object non-null" msgid "E1363: Incomplete type" msgstr "E1363: Tipo incompleto" @@ -7866,18 +7869,18 @@ msgid "E1364: Warning: Pointer block corrupted" msgstr "E1364: Attenzione: Blocco puntatore non valido" msgid "E1365: Cannot use a return type with the \"new\" method" -msgstr "" -"E1365: Impossibile usare un tipo di ritorno con il Metodo \"new\"" +msgstr "E1365: Impossibile usare un tipo di ritorno con il Metodo \"new\"" msgid "E1366: Cannot access protected method: %s" msgstr "E1366: Non posso accedere a Metodo protetto: %s" msgid "E1367: Access level of variable \"%s\" of interface \"%s\" is different" -msgstr "E1367: Il livello di accesso alla variable \"%s\" di interfaccia " -"\"%s\" è differente" +msgstr "" +"E1367: Il livello di accesso alla variable \"%s\" di Interfaccia \"%s\" è " +"differente" -msgid "E1368: Static cannot be followed by \"this\" in a variable name" -msgstr "E1368: Static non può essere seguito da \"this\" in un nome di variabile" +msgid "E1368: Static must be followed by \"var\" or \"def\"" +msgstr "E1368: \"Static\" deve essere seguito da \"var\" o \"def\"" msgid "E1369: Duplicate variable: %s" msgstr "E1369: Variabile duplicata: %s" @@ -7889,39 +7892,43 @@ msgid "E1371: Abstract must be followed by \"def\"" msgstr "E1371: \"Abstract\" deve essere seguito da \"def\"" msgid "E1372: Abstract method \"%s\" cannot be defined in a concrete class" -msgstr "E1372: Il Metodo Astratto \"%s\" non può essere definito in una " -"Classe concreta" +msgstr "" +"E1372: Il Metodo Astratto \"%s\" non può essere definito in una Classe " +"concreta" msgid "E1373: Abstract method \"%s\" is not implemented" msgstr "E1373: Il Metodo astratto \"%s\" non è implementato" msgid "E1374: Class variable \"%s\" accessible only inside class \"%s\"" -msgstr "E1374: Variabile di classe \"%s\" accessibile solo all'interno " -"della Classe \"%s\"" +msgstr "" +"E1374: Variabile di classe \"%s\" accessibile solo all'interno della Classe " +"\"%s\"" msgid "E1375: Class variable \"%s\" accessible only using class \"%s\"" -msgstr "E1375: Variabile di classe \"%s\" accessibile solo usando " -"la Classe \"%s\"" +msgstr "" +"E1375: Variabile di classe \"%s\" accessibile solo usando la Classe \"%s\"" msgid "E1376: Object variable \"%s\" accessible only using class \"%s\" object" -msgstr "E1376: Variabile di classe \"%s\" accessibile solo usando " -"l'Object di classe \"%s\"" +msgstr "" +"E1376: Variabile di classe \"%s\" accessibile solo usando l'Object di classe " +"\"%s\"" msgid "E1377: Access level of method \"%s\" is different in class \"%s\"" -msgstr "E1377: Il livello di accesso del metodo \"%s\" è differente " -"nella Classe \"%s\"" +msgstr "" +"E1377: Il livello di accesso del metodo \"%s\" è differente nella Classe " +"\"%s\"" msgid "E1378: Static member not supported in an interface" -msgstr "E1378: Membro statico non supportato in un'interfaccia" +msgstr "E1378: Membro statico non supportato in un'Interfaccia" msgid "E1379: Protected variable not supported in an interface" -msgstr "E1379: Variabile protetta non supportata in un'interfaccia" +msgstr "E1379: Variabile protetta non supportata in un'Interfaccia" msgid "E1380: Protected method not supported in an interface" -msgstr "E1380: Metodo protetto non supportato in un'interfaccia" +msgstr "E1380: Metodo protetto non supportato in un'Interfaccia" msgid "E1381: Interface cannot use \"implements\"" -msgstr "E1381: L'interfaccia non può usare \"implements\"" +msgstr "E1381: Impossibile usare \"implements\" con un'Interfaccia" msgid "E1382: Variable \"%s\": type mismatch, expected %s but got %s" msgstr "" @@ -7932,19 +7939,20 @@ msgstr "" "E1383: Metodo \"%s\": Tipo non corrispondente, atteso %s ma ottenuto %s" msgid "E1384: Class method \"%s\" accessible only inside class \"%s\"" -msgstr "E1384: Metodo di Classe \"%s\" accessibile solo all'interno della " -"Classe \"%s\"" +msgstr "" +"E1384: Metodo di Classe \"%s\" accessibile solo all'interno della Classe " +"\"%s\"" msgid "E1385: Class method \"%s\" accessible only using class \"%s\"" -msgstr "E1385: Metodo di Classe \"%s\" accessibile solo usando la " -"Classe \"%s\"" +msgstr "" +"E1385: Metodo di Classe \"%s\" accessibile solo usando la Classe \"%s\"" msgid "E1386: Object method \"%s\" accessible only using class \"%s\" object" -msgstr "E1386: Metodo Object \"%s\" accessibile solo usando la " -"Classe \"%s\" object" +msgstr "" +"E1386: Metodo Object \"%s\" accessibile solo usando la Classe \"%s\" object" msgid "E1387: Public variable not supported in an interface" -msgstr "E1387: Variabile pubblica non supportata in un'interfaccia" +msgstr "E1387: Variabile pubblica non supportata in un'Interfaccia" msgid "E1388: Public keyword not supported for a method" msgstr "E1388: Attributo public non supportato per un Metodo" @@ -7956,23 +7964,21 @@ msgid "" "E1390: Cannot use an object variable \"this.%s\" except with the \"new\" " "method" msgstr "" -"E1390: Impossibile usare variabile Object \"this.%s\" tranne che " -"con \"new\" " +"E1390: Impossibile usare variabile Object \"this.%s\" tranne che con \"new\" " msgid "E1391: Cannot (un)lock variable \"%s\" in class \"%s\"" -msgstr "E1391: Non riesco a (s)bloccare variabile \"%s\" " -"nella Classe \"%s\"" +msgstr "E1391: Non riesco a (s)bloccare variabile \"%s\" nella Classe \"%s\"" msgid "E1392: Cannot (un)lock class variable \"%s\" in class \"%s\"" -msgstr "E1392: Non riesco a (s)bloccare variabile di Classe \"%s\" " -"nella Classe \"%s\"" +msgstr "" +"E1392: Non riesco a (s)bloccare variabile di Classe \"%s\" nella Classe " +"\"%s\"" msgid "E1393: Type can only be defined in Vim9 script" msgstr "E1393: Il Tipo può essere definito solo negli script Vim9" msgid "E1394: Type name must start with an uppercase letter: %s" -msgstr "E1394: Il nome di un Tipo deve iniziare con una " -"lettera maiuscola: %s" +msgstr "E1394: Il nome di un Tipo deve iniziare con una lettera maiuscola: %s" msgid "E1395: Type alias \"%s\" cannot be modified" msgstr "E1395: Il Tipo alias \"%s\" non può essere modificato" @@ -7999,10 +8005,19 @@ msgid "E1402: Using type alias \"%s\" as a String" msgstr "E1402: Uso del Tipo alias \"%s\" come una Stringa" msgid "E1403: Type alias \"%s\" cannot be used as a value" -msgstr "E1403: Il Tipo alias \"%s\" non può essere usato come valore" +msgstr "E1403: Impossibile usare il Tipo alias \"%s\" come valore" msgid "E1404: Abstract cannot be used in an interface" -msgstr "E1404: \"Abstract\" non può essere usato in un'interfaccia" +msgstr "E1404: Impossibile usare \"Abstract\" in un'Interfaccia" + +msgid "E1405: Class \"%s\" cannot be used as a value" +msgstr "E1405: Impossibile usare Classe \"%s\" come valore" + +msgid "E1406: Cannot use a Class as a variable or value" +msgstr "E1406: Impossibile usare una Classe come variabile o valore" + +msgid "E1407: Cannot use a Typealias as a variable or value" +msgstr "E1407: Impossibile usare un Tipo alias come variabile o valore" msgid "E1500: Cannot mix positional and non-positional arguments: %s" msgstr "" @@ -8029,8 +8044,8 @@ msgid "E1505: Invalid format specifier: %s" msgstr "E1505: Specificazione di formato non valida: %s" msgid "E1506: Buffer too small to copy xattr value or key" -msgstr "E1506: Buffer troppo piccolo per copiare il valore di xattr o la " -"sua chiave" +msgstr "" +"E1506: Buffer troppo piccolo per copiare il valore di xattr o la sua chiave" msgid "" "E1508: Size of the extended attribute value is larger than the maximum size " From 5872bcb6e8dfc15d7a5c0aaaf94d8029f3a1fa3f Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Tue, 19 Dec 2023 20:10:43 +0100 Subject: [PATCH 054/120] runtime(doc): Create Changelog until v9.0.2175 (#13728) Patch list created using: ``` git log --grep='^patch' --reverse --pretty='format:%D%gs%n%b' "v9.0.0000~1"..master |sed -e '/^Signed-off-by:.*/d' -e '/^\(closes\|fixes\)/d' -e 's/^tag: v/Patch /' ``` and then post-processed using vim. Signed-off-by: Christian Brabandt --- runtime/doc/version9.txt | 9590 +++++++++++++++++++++++++++++++++++++- 1 file changed, 9587 insertions(+), 3 deletions(-) diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt index 09d6b3b7e3..ea3fc611cf 100644 --- a/runtime/doc/version9.txt +++ b/runtime/doc/version9.txt @@ -1,4 +1,4 @@ -*version9.txt* For Vim version 9.0. Last change: 2023 Aug 09 +*version9.txt* For Vim version 9.0. Last change: 2023 Dec 19 VIM REFERENCE MANUAL by Bram Moolenaar @@ -31755,9 +31755,9593 @@ Options: ~ 'smoothscroll' scroll by screen lines when 'wrap' is set 'splitkeep' determines scroll behavior for split windows +============================================================================== +PATCHES *patches-9.1* *bug-fixes-9.1* + *patches-after-9.0* -Patches *patches-9.1* -------- +The list of patches that got included since 9.0.0. This includes all the new +features, but does not include runtime file changes (syntax, indent, ftplugin, +documentation, etc.) +Patch 9.0.0001 +Problem: Travis CI is no longer used. +Solution: Delete the Travis CI configuration. (Hugo Osvaldo Barrera, + closes #10636) + +Patch 9.0.0002 +Problem: Map functionality outside of map.c. +Solution: Move f_hasmapto() to map.c. Rename a function. (closes #10611) + +Patch 9.0.0003 +Problem: Functions are global while they could be local. +Solution: Add "static". Add a few tests. (Yegappan Lakshmanan, + closes #10612) + +Patch 9.0.0004 +Problem: Plural messages not translated properly. +Solution: Use ngettext() in a few more places. (Matvey Tarasov, + closes #10606) + +Patch 9.0.0005 +Problem: Hare files are not recognized. +Solution: Add a filetype pattern. (Hugo Osvaldo Barrera, closes #10630) + +Patch 9.0.0006 +Problem: Not all Visual Basic files are recognized. +Solution: Change detection of *.cls files. (Doug Kearns) + +Patch 9.0.0007 +Problem: No support for double, dotted and dashed underlines. +Solution: Add the termcap entries and highlight modes. (closes #9553) + +Patch 9.0.0008 +Problem: Cannot specify the variable name for "xxd -i". +Solution: Add the "-name" argument. (David Gow, closes #10599) + +Patch 9.0.0009 +Problem: Going past the end of a menu item with only modifier. +Solution: Check for NUL. + +Patch 9.0.0010 +Problem: Returning 0 for has('patch-9.0.0') is inconsistent. +Solution: Make it return 1. (closes #10640) + +Patch 9.0.0011 +Problem: Reading beyond the end of the line with put command. +Solution: Adjust the end mark position. + +Patch 9.0.0012 +Problem: Signature files not detected properly. +Solution: Add a function to better detect signature files. (Doug Kearns) + +Patch 9.0.0013 +Problem: Reproducing memory access errors can be difficult. +Solution: When testing, copy each line to allocated memory, so that valgrind + can detect accessing memory before and/or after it. Fix uncovered + problems. + +Patch 9.0.0014 +Problem: Missing part of the test override change. +Solution: Add the missing part. + +Patch 9.0.0015 +Problem: With EXITFREE defined terminal menus are not cleared. +Solution: Also clear terminal menus. Remove condition that is always true. + (closes #10641) + +Patch 9.0.0016 +Problem: Comparing line pointer for 'breakindent' is not reliable. +Solution: Make a copy of the line. + +Patch 9.0.0017 +Problem: Accessing memory beyond the end of the line. +Solution: Stop Visual mode when closing a window. + +Patch 9.0.0018 +Problem: Going over the end of the typahead. +Solution: Put a NUL after the typeahead. + +Patch 9.0.0019 +Problem: Timers test not run where possible. +Solution: Adjust platform checks. (closes #10645) + +Patch 9.0.0020 +Problem: With some completion reading past end of string. +Solution: Check the length of the string. + +Patch 9.0.0021 +Problem: Invalid memory access when adding word with a control character to + the internal spell word list. +Solution: Disallow adding a word with control characters or a trailing + slash. + +Patch 9.0.0022 +Problem: Spell test fails. +Solution: Expect new error is given. + +Patch 9.0.0023 +Problem: On Solaris timer_create() exists but does not work. +Solution: Adjust the configure check to run the test program. + (closes #10647) + +Patch 9.0.0024 +Problem: May access part of typeahead buf that isn't filled. +Solution: Check length of typeahead. + +Patch 9.0.0025 +Problem: Accessing beyond allocated memory when using the cmdline window in + Ex mode. +Solution: Use "*" instead of "'<,'>" for Visual mode. + +Patch 9.0.0026 +Problem: Accessing freed memory with diff put. +Solution: Bail out when diff pointer is no longer valid. + +Patch 9.0.0027 +Problem: The command line test is getting quite big. +Solution: Move command line window tests to a separate file. + +Patch 9.0.0028 +Problem: MS-Windows: tests fail if there is a stray "runtime" directory. +Solution: Only use a "runtime" directory if it contains "defaults.vim". + +Patch 9.0.0029 +Problem: The bitmaps/vim.ico file is not in the distribution. +Solution: Add it back to the distribution. Adjust the build rules to have + it end up in the right place. + +Patch 9.0.0030 +Problem: Matchfuzzy test depends on path of current directory. +Solution: Use fnamemodify() to remove the path. (Robin Becker, + closes #10650) + +Patch 9.0.0031 +Problem: of user command does not have correct verbose value. +Solution: Use the value from the command modifier. (closes #10651) + +Patch 9.0.0032 +Problem: In the quickfix window 'cursorline' overrules QuickFixLine + highlighting. +Solution: Combine the attributes. Add a test. (closes #10654) + +Patch 9.0.0033 +Problem: On a Belgian keyboard CTRL-[ does not work. +Solution: Handle GDK_KEY_dead_circumflex. (Anton Sharonov, closes #10658) + +Patch 9.0.0034 +Problem: Spell tests do not always clear the word list. +Solution: Clear the word list in TearDown(). (closes #10659) + +Patch 9.0.0035 +Problem: Spell dump may go beyond end of an array. +Solution: Limit the word length. + +Patch 9.0.0036 +Problem: 'fillchars' cannot have window-local values. +Solution: Make 'fillchars' global-local. (closes #5206) + +Patch 9.0.0037 +Problem: Build error. +Solution: Add missing change. + +Patch 9.0.0038 +Problem: 'listchars' test fails. +Solution: Use window-local value after setting the global value + +Patch 9.0.0039 +Problem: Not all systems have GDK_KEY_dead_circumflex. (Hisashi T Fujinaka) +Solution: Add an #ifdef. + +Patch 9.0.0040 +Problem: Use of set_chars_option() is confusing. +Solution: Add "apply" argument to store the result or not. Merge similar + code. + +Patch 9.0.0041 +Problem: A couple of filetype patterns do not have "*" before "/etc". +Solution: Add the star. (Jonas Strittmatter, closes #10662) + +Patch 9.0.0042 +Problem: Missing change for filetype detection. +Solution: Include change to detect guile from shebang line. + +Patch 9.0.0043 +Problem: Insufficient testing for bracket commands. +Solution: Add a few more tests. (closes #10668) + +Patch 9.0.0044 +Problem: Typos in comments, wrapping lines. +Solution: Adjust comments. Wrap lines. + +Patch 9.0.0045 +Problem: Reading past end of completion with a long line and 'infercase' + set. +Solution: Allocate the string if needed. + +Patch 9.0.0046 +Problem: Reading past end of completion with duplicate match. +Solution: Check string length + +Patch 9.0.0047 +Problem: Using freed memory with recursive substitute. +Solution: Always make a copy for reg_prev_sub. + +Patch 9.0.0048 +Problem: Cursor in wrong column with mouse click after concealed text. +Solution: Store the text column when drawing text. + +Patch 9.0.0049 +Problem: Csv and tsv files are not recognized. +Solution: Add patterns fo csv and tsv files. (Leandro Lourenci, + closes #10680) + +Patch 9.0.0050 +Problem: Split else-of is confusing. +Solution: Join the lines. (closes #10696) + +Patch 9.0.0051 +Problem: Using CTRL-C wih :append may hang Vim. +Solution: Reset got_int. (closes #10729, closes #10728) + +Patch 9.0.0052 +Problem: "zG" may throw an error if invalid character follows. +Solution: Pass the word length to valid_spell_word(). (Ken Takata, + closes #10737) + +Patch 9.0.0053 +Problem: E1281 not tested with the old regexp engine. +Solution: Loop over the values of 'regexp'. (Dominique Pellé, closes #10695) + +Patch 9.0.0054 +Problem: Compiler warning for size_t to int conversion. +Solution: Add type cast. (Mike Williams, closes #10741) + +Patch 9.0.0055 +Problem: Bitbake files are not detected. +Solution: Add bitbake filetype detection by file name and contents. (Gregory + Anders, closes #10697) + +Patch 9.0.0056 +Problem: Wrong line number reported when :cexpr fails in :def function. +Solution: Set line_number before executing :cexpr. (closes #10735) + +Patch 9.0.0057 +Problem: has('patch-xxx') returns true. +Solution: Check for digit. (closes #10751) + +Patch 9.0.0058 +Problem: Win32: cannot test low level events. +Solution: Add "sendevent" to test_gui_event(). (Yegappan Lakshmanan, + closes #10679) + +Patch 9.0.0059 +Problem: Test file has wrong name. +Solution: Rename the file. Various small fixes. (closes #10674) + +Patch 9.0.0060 +Problem: Accessing uninitialized memory when completing long line. +Solution: Terminate string with NUL. + +Patch 9.0.0061 +Problem: ml_get error with nested autocommand. +Solution: Also check line numbers for a nested autocommand. (closes #10761) + +Patch 9.0.0062 +Problem: Compiler warnings for signed/unsigned char. +Solution: Add type casts. (John Marriott) + +Patch 9.0.0063 +Problem: Too many type casts for dict_get functions. +Solution: Change the key argument from "char_u *" to "char *". + +Patch 9.0.0064 +Problem: Confusing error when using "q:" in command line window. +Solution: Check for the situation and give a better error message. + (closes #10756) + +Patch 9.0.0065 +Problem: Cross-compiling doesn't work because of timer_create check. +Solution: Use AC_CACHE_CHECK(). (Richard Purdie, closes #10777) + +Patch 9.0.0066 +Problem: Switching window uneccarily when getting buffer options. +Solution: Do not switch window when getting buffer options. (closes #10767) + +Patch 9.0.0067 +Problem: Cannot show virtual text. +Solution: Initial changes for virtual text support, using text properties. + +Patch 9.0.0068 +Problem: Build fails with tiny features. +Solution: Add #ifdef. + +Patch 9.0.0069 +Problem: Leaking memory when using text prop with inserted text. +Solution: Clear the growarray with text. + +Patch 9.0.0070 +Problem: Using utfc_ptr2char_len() when length is negative. +Solution: Check value of length. (closes #10760) + +Patch 9.0.0071 +Problem: Command overlaps with printed text in scrollback. +Solution: Clear until end-of-line and use correct message chunk. + (closes #10765, closes #10764) + +Patch 9.0.0072 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize it. (John Marriott) + +Patch 9.0.0073 +Problem: Too many files recognized as bsdl. +Solution: Use pattern "*.bsd" instead of "*bsd". (Martin Tournoij, + closes #10783) + +Patch 9.0.0074 +Problem: Coverity warns for double free. +Solution: Reset cts_text_prop_count when freeing cts_text_props. + +Patch 9.0.0075 +Problem: Some compilers warn for using an uninitialized variable. (Tony + Mechelynck) +Solution: Initialize the variable. + +Patch 9.0.0076 +Problem: No test for what patch 8.1.1424 fixes. +Solution: Add a test. (closes #10789) + +Patch 9.0.0077 +Problem: When switching window in autocmd the restored cursor position may + be wrong. +Solution: Do not restore the cursor if it was not set. (closes #10775) + +Patch 9.0.0078 +Problem: Star register is changed when deleting and both "unnamed" and + "unnamedplus" are in 'clipboard'. +Solution: Make the use of the star register work as documented. (Ernie Rael, + closes #10669) + +Patch 9.0.0079 +Problem: Error in autoload script not reported for 'foldexpr'. +Solution: Reset "emsg_off" when auto-loading a script. (closes #10685) + +Patch 9.0.0080 +Problem: Compiler warning for size_t to int conversion. +Solution: Add type casts. (Mike Williams, closes #10795) + +Patch 9.0.0081 +Problem: Command line completion of user command may have duplicates. + (Dani Dickstein) +Solution: Skip global user command if an identical buffer-local one is + defined. (closes #10797) + +Patch 9.0.0082 +Problem: Cannot interrupt global command from command line. +Solution: Reset got_int in another place. (closes #10739) + +Patch 9.0.0083 +Problem: ModeChanged event not triggered when leaving the cmdline window. +Solution: Call may_trigger_modechanged(). (closes #10791) + +Patch 9.0.0084 +Problem: Using "terraform" filetype for .tfvars file is bad. +Solution: use "terraform-vars", so that different completion and other + mechanisms can be used. (Radek Simko, closes #10755) + +Patch 9.0.0085 +Problem: ":write" fails after ":file name" and the ":edit". +Solution: Reset BF_NOTEDITED when using ":edit". (closes #10790) + +Patch 9.0.0086 +Problem: Tabline is not redrawn when entering command line. +Solution: Set "redraw_tabline". (closes #10771) + +Patch 9.0.0087 +Problem: MS-Windows: CTRL-[ on Belgian keyboard does not work like Esc. +Solution: Figure out what the key code means. (Anton Sharonov, + closes #10687, closes #10454) + +Patch 9.0.0088 +Problem: Pattern for detecting bitbake files is not sufficient. +Solution: Adjust the pattern. (Gregory Anders, closes #10743) + +Patch 9.0.0089 +Problem: Fuzzy argument completion doesn't work for shell commands. +Solution: Check for cmdidx not being CMD_bang. (Yegappan Lakshmanan, + closes #10769) + +Patch 9.0.0090 +Problem: No error when assigning bool to a string option with setwinvar(). +Solution: Give an error (closes #10766) + +Patch 9.0.0091 +Problem: Duplicate error number. +Solution: Use unique error number. + +Patch 9.0.0092 +Problem: Plugins cannot change v:completed_item. +Solution: Make v:completed_item writeable. (Shougo Matsushita, + closes #10801) + +Patch 9.0.0093 +Problem: Sway config files are recognized as i3config. +Solution: Recognize swayconfig separately. (James Eapen, closes #10672) + +Patch 9.0.0094 +Problem: Cursor restored unexpected with nested autocommand. +Solution: Do not restore the cursor when it was moved intentionally. + (closes #10780) + +Patch 9.0.0095 +Problem: Conditions are always true. +Solution: Remove useless conditions. (closes #10802) + +Patch 9.0.0096 +Problem: Flag "new_value_alloced" is always true. +Solution: Remove "new_value_alloced". (closes #10792) + +Patch 9.0.0097 +Problem: Long quickfix line is truncated for :clist. +Solution: Allocate a buffer if needed. + +Patch 9.0.0098 +Problem: missing include file in timer_create configure check. +Solution: Inlucde stdlib.h. + +Patch 9.0.0099 +Problem: Scrollback can be wrong after redrawing the command line. +Solution: Clear unfinished scrollback when redrawing. (closes #10807) + +Patch 9.0.0100 +Problem: Get hit-enter prompt for system() when '!' is in 'guioptions'. +Solution: Do not call wait_return() when not redrawing. (closes #3327) + +Patch 9.0.0101 +Problem: Invalid memory access in diff mode with "dp" and undo. +Solution: Make sure the line number does not go below one. + +Patch 9.0.0102 +Problem: Reading past end of line with insert mode completion. +Solution: Check text length. + +Patch 9.0.0103 +Problem: If running configure with cached results -lrt may be missing. +Solution: Use two cache variables, one without and one with -lrt. + (closes #10799) Swap checks to avoid adding -lrt unnecessarily. + +Patch 9.0.0104 +Problem: Going beyond allocated memory when evaluating string constant. +Solution: Properly skip over form. + +Patch 9.0.0105 +Problem: Illegal memory access when pattern starts with illegal byte. +Solution: Do not match a character with an illegal byte. + +Patch 9.0.0106 +Problem: Illegal byte regexp test doesn't fail when fix is reversed. +Solution: Make sure illegal bytes end up in sourced script file. + +Patch 9.0.0107 +Problem: Condition always has the same value. +Solution: Remove the condition. + +Patch 9.0.0108 +Problem: Configure check for timer_create may give wrong error. +Solution: Give a warning instead of an error. + +Patch 9.0.0109 +Problem: Writing over the end of a buffer on stack when making list of + spell suggestions. +Solution: Make sure suggested word is not too long. (closes #10812) + +Patch 9.0.0110 +Problem: Help tag generation picks up words in code examples. +Solution: Skip over examples. (Carlo Teubner, closes #10813) + +Patch 9.0.0111 +Problem: "nocombine" is missing from synIDattr(). +Solution: Add "nocombine". (Muni Tanjim, closes #10816) + +Patch 9.0.0112 +Problem: MS-Windows: test fails because file already exists. +Solution: Wait a little while until the file is gone. + +Patch 9.0.0113 +Problem: has() is not strict about parsing the patch version. +Solution: Check the version more strictly. (Ken Takata, closes #10752) + +Patch 9.0.0114 +Problem: The command line takes up space even when not used. +Solution: Allow for 'cmdheight' to be set to zero. (Shougo Matsushita, + closes #10675, closes #940) + +Patch 9.0.0115 +Problem: When 'cmdheight' is zero pressing ':' may scroll a window. +Solution: Add the made_cmdheight_nonzero flag and set 'scrolloff' to zero. + +Patch 9.0.0116 +Problem: Virtual text not displayed if 'signcolumn' is "yes". +Solution: Set c_extra and c_final to NUL. + +Patch 9.0.0117 +Problem: Text of removed textprop with text is not freed. +Solution: Free the text when the property is removed. Reduce the array size + to ignore NULLs at the end. + +Patch 9.0.0118 +Problem: No test for what patch 9.0.0155 fixes. +Solution: Add a test. Fix typos. (closes #10822) + +Patch 9.0.0119 +Problem: Tiny chance that creating a backup file fails. +Solution: Check for EEXIST error. (Ken Takata, closes #10821) + +Patch 9.0.0120 +Problem: MS-Windows GUI: cannot use AltGr + Space. +Solution: Check for VK_MENU instead of VK_LMENU. (Anton Sharonov, + closes #10820, closes #10753) + +Patch 9.0.0121 +Problem: Cannot put virtual text after or below a line. +Solution: Add "text_align" and "text_wrap" arguments. + +Patch 9.0.0122 +Problem: Breakindent test fails. +Solution: Fix condition. + +Patch 9.0.0123 +Problem: Cannot build with small features. +Solution: Add #ifdef. + +Patch 9.0.0124 +Problem: Code has more indent than needed. +Solution: Use continue and return statements. (closes #10824) + +Patch 9.0.0125 +Problem: Cursor positioned wrong with virtual text after the line. +Solution: Clear cts_with_trailing. + +Patch 9.0.0126 +Problem: Expanding file names fails in directory with more than 255 + entries. +Solution: Use an int instead of char_u to count. (John Drouhard, + closes #10818) + +Patch 9.0.0127 +Problem: Unused variable. +Solution: Remove the variable. (closes #10829) + +Patch 9.0.0128 +Problem: Coverity complains about possible double free. +Solution: Clear the pointer to avoid warnings. + +Patch 9.0.0129 +Problem: Compiler warning for int/size_t usage. +Solution: Add a type cast. (Mike Williams, closes #10830) + +Patch 9.0.0130 +Problem: Cursor position wrong when inserting around virtual text. +Solution: Update the cursor position properly. + +Patch 9.0.0131 +Problem: Virtual text with Tab is not displayed correctly. +Solution: Change any Tab to a space. + +Patch 9.0.0132 +Problem: Multi-byte characters in virtual text not handled correctly. +Solution: Count screen cells instead of bytes. + +Patch 9.0.0133 +Problem: Virtual text after line moves to joined line. (Yegappan + Lakshmanan) +Solution: When joining lines only keep virtual text after the last line. + +Patch 9.0.0134 +Problem: No test for text property with column zero. +Solution: Add a test. Add message to assert for no open popups. + +Patch 9.0.0135 +Problem: Comment about tabpage line above the wrong code. +Solution: Move the comment. (closes #10836) + +Patch 9.0.0136 +Problem: After CTRL-Left-mouse click a mouse scroll also has CTRL. +Solution: Reset orig_mouse_code also for wheel events. (closes #10840) + +Patch 9.0.0137 +Problem: Debugger test may fail when $CWD is very long. +Solution: Skip the test if the directory name is too long. (James McCoy, + closes #10837) + +Patch 9.0.0138 +Problem: Not enough characters accepted for 'spellfile'. +Solution: Add vim_is_fname_char() and use it for 'spellfile'. + +Patch 9.0.0139 +Problem: Truncating virtual text after a line not implemented. + Cursor positioning wrong with Newline in the text. +Solution: Implement truncating. Disallow control characters in the text. + (closes #10842) + +Patch 9.0.0140 +Problem: execute() does not use the "legacy" command modifier. +Solution: pass the command modifier in sticky_cmdmod_flags. (Kota Kato, + closes #10845) + +Patch 9.0.0141 +Problem: "delmenu" does not remove autocmmands. Running menu test function + alone fails. +Solution: Delete autocommands Make sure there is at least one menu. + (closes #10848) + +Patch 9.0.0142 +Problem: Crash when adding and removing virtual text. (Ben Jackson) +Solution: Check that the text of the text property still exists. + +Patch 9.0.0143 +Problem: Cursor positioned after virtual text in empty line. +Solution: Keep cursor in the first column. (closes #10786) + +Patch 9.0.0144 +Problem: Text property cannot override 'cursorline' highlight. +Solution: Add the "override" flag to prop_type_add(). (closes #5533, + closes #8225). + +Patch 9.0.0145 +Problem: Substitute that joins lines drops text properties. +Solution: Move text properties of the last line to the new line. + +Patch 9.0.0146 +Problem: Missing part of change for "override" flag. +Solution: Add the missing change. + +Patch 9.0.0147 +Problem: Cursor positioned wrong after two text properties with virtual + text and "below" alignment. (Tim Pope) +Solution: Do not stop after a text property using MAXCOL. (closes #10849) + +Patch 9.0.0148 +Problem: A "below" aligned text property gets 'showbreak' displayed. +Solution: Do not use 'showbreak' before or in virtual text. (issue #10851) + +Patch 9.0.0149 +Problem: Test for fuzzy completion fails sometimes. +Solution: Use a more specific file name to minimize the chance of matching a + random directory name. (closes #10854) + +Patch 9.0.0150 +Problem: Error for using #{ in an expression is a bit confusing. +Solution: Mention that this error is only given for an expression. + Avoid giving the error more than once. (closes #10855) + +Patch 9.0.0151 +Problem: A "below" aligned text property does not work with 'nowrap'. +Solution: Start a new screen line to display the virtual text. + (closes #10851) + +Patch 9.0.0152 +Problem: Warning for unused argument in small build. +Solution: Add "UNUSED". + +Patch 9.0.0153 +Problem: No fold and sign column for virtual text with "below" align and + 'nowrap'. +Solution: Go back to draw state WL_START when moving to the next line. + (closes #10851) + +Patch 9.0.0154 +Problem: Text properties wrong after splitting a line. +Solution: Check for text properties after the line. (closes #10857) + +Patch 9.0.0155 + +Patch 9.0.0156 +Problem: Giving E1170 only in an expression is confusing. +Solution: Give E1170 for any "#{ comment". (closes #10855) + +Patch 9.0.0157 +Problem: 'showbreak' displayed below truncated "after" text prop. +Solution: Suppress 'showbreak' when "after" prop doesn't wrap. + +Patch 9.0.0158 +Problem: With 'nowrap' "below" property not displayed correctly. +Solution: Adjust virtual text with 'nowrap', do not truncate. + +Patch 9.0.0159 +Problem: Cannot build with small features. +Solution: Check for E1170 only with FEAT_EVAL. + +Patch 9.0.0160 +Problem: Some diff mode tests fail. +Solution: Only advance "ptr" when a text property follows. + +Patch 9.0.0161 +Problem: Warning for uninitialized variable. (Tony Mechelynck) +Solution: Initialize line_attr_save. + +Patch 9.0.0162 +Problem: Text property "below" gets indent if 'breakindent' is set. (Tim + Pope) +Solution: Do not put indent before text property. (closes #10859) + +Patch 9.0.0163 +Problem: Text property not adjusted for text inserted with "p". +Solution: Adjust column and length of text properties. + +Patch 9.0.0164 +Problem: Using freed memory with put command. +Solution: Get byte offset before replacing the line. + +Patch 9.0.0165 +Problem: Looking up a text property type by ID is slow. +Solution: Keep an array of property types sorted on ID. + +Patch 9.0.0166 +Problem: When using text properties the line text length is computed twice. +Solution: If the text lenght was already computed don't do it again. + +Patch 9.0.0167 +Problem: Checking for text properties could be a bit more efficient. +Solution: Return early when there are no text properties. Update TODO + items. + +Patch 9.0.0168 +Problem: Cursor positioned wrong with two virtual text properties close + together. (Ben Jackson) +Solution: Add the original size, not the computed one. (closes #10864) + +Patch 9.0.0169 +Problem: Insufficient testing for line2byte() with text properties. +Solution: Add tests with a lot of text. + +Patch 9.0.0170 +Problem: Various minor code formatting issues. +Solution: Improve code formatting. + +Patch 9.0.0171 +Problem: Quickfix line highlight is overruled by 'cursorline'. +Solution: Reverse the combination of attributes. (closes #10654) + +Patch 9.0.0172 +Problem: Trying to allocate zero bytes. +Solution: Do not allocate the proptype array when there are none. + (closes #10867) + +Patch 9.0.0173 +Problem: Assert fails only on MS-Windows. +Solution: Disable the assert for now. + +Patch 9.0.0174 +Problem: No error for using "#{ comment" in a compiled function. +Solution: Make error checking for "#{" consistent. (closes #10855) + +Patch 9.0.0175 +Problem: Spell checking for capital not working with trailing space. +Solution: Do not calculate cap_col at the end of the line. (Christian + Brabandt, closes #10870, issue #10838) + +Patch 9.0.0176 +Problem: Checking character options is duplicated and incomplete. +Solution: Move checking to check_chars_options(). (closes #10863) + +Patch 9.0.0177 +Problem: Cursor position wrong with 'virtualedit' and mouse click after end + of the line. (Hermann Mayer) +Solution: Do not use ScreenCols[] when 'virtualedit' is active. + (closes #10868) + +Patch 9.0.0178 +Problem: Cursor position wrong with virtual text before Tab. +Solution: Use the byte length, not the cell with, to compare the column. + Correct tab size after text prop. (closes #10866) + +Patch 9.0.0179 +Problem: Cursor position wrong with wrapping virtual text in empty line. +Solution: Adjust handling of an empty line. (closes #10875) + +Patch 9.0.0180 +Problem: Stray logfile appears when running tests. +Solution: Remove ch_logfile() calls. + +Patch 9.0.0181 +Problem: Textprop test with line2byte() fails on MS-Windows. +Solution: Fix updating chuncks in ml_delete_int(). + +Patch 9.0.0182 +Problem: Quarto files are not recognized. +Solution: Recognize quarto files by the extension. (Jonas Strittmatter, + closes #10880) + +Patch 9.0.0183 +Problem: Extra space after virtual text when 'linebreak' is set. +Solution: Do not count virtual text when getting linebreak value. + (closes #10884) + +Patch 9.0.0184 +Problem: Virtual text prop highlight continues after truncation. +Solution: Recompute the length of attributes. + +Patch 9.0.0185 +Problem: Virtual text does not show if tehre is a text prop at same + position. (Ben Jackson) +Solution: Fix the sorting of properties. (closes #10879) + +Patch 9.0.0186 +Problem: Virtual text without highlighting does not show. (Ben Jackson) +Solution: Use a text property when it has highlighting or when it has text. + (closes #10878) + +Patch 9.0.0187 +Problem: Command line height changes when maximizing window height. +Solution: Do not change the command line height. (closes #10885) + +Patch 9.0.0188 +Problem: Strange effects when using virtual text with "text_align" and + non-zero column. (Martin Tournoij) +Solution: Give an error. (closes #10888) + +Patch 9.0.0189 +Problem: Invalid memory access for text prop without highlight. +Solution: Check for a valid highlight ID. + +Patch 9.0.0190 +Problem: The way 'cmdheight' can be made zero is inconsistent. +Solution: Only make 'cmdheight' zero when setting it explicitly, not when + resizing windows. (closes #10890) + +Patch 9.0.0191 +Problem: Messages test fails; window size incorrect when 'cmdheight' is + made smaller. +Solution: Properly cleanup after test with cmdheight zero. Resize windows + correctly when 'cmdheight' gets smaller. + +Patch 9.0.0192 +Problem: Possible invalid memory access when 'cmdheight' is zero. (Martin + Tournoij) +Solution: Avoid going over the end of w_lines[] when w_height is Rows. + (closes #10882) + +Patch 9.0.0193 +Problem: Search and match highlight interfere with virtual text highlight. + (Ben Jackson) +Solution: Check for match highlight after text properties. Reset and + restore search highlight when showing virtual text. + (closes #10892) + +Patch 9.0.0194 +Problem: Cursor displayed in wrong position after removing text prop. (Ben + Jackson) +Solution: Invalidate the cursor position. (closes #10898) + +Patch 9.0.0195 +Problem: Metafun files are not recogized. +Solution: Add filetype detection patterns. + +Patch 9.0.0196 +Problem: Finding value in list may require a for loop. +Solution: Add indexof(). (Yegappan Lakshmanan, closes #10903) + +Patch 9.0.0197 +Problem: Astro files are not detected. +Solution: Add a pattern to match Astro files. (Emilia Zapata, closes #10904) + +Patch 9.0.0198 +Problem: ml_get error when switching buffer in Visual mode. +Solution: End Visual mode when switching buffer. (closes #10902) + +Patch 9.0.0199 +Problem: Cursor position wrong with two right-aligned virtual texts. +Solution: Add the padding for right-alignment. (issue #10906) + +Patch 9.0.0200 +Problem: cursor in a wrong positoin if 'wrap' is off and using two right + aligned text props in one line. +Solution: Count an extra line for a right aligned text property after a + below or right aligned text property. (issue #10909) + +Patch 9.0.0201 +Problem: CursorLine highlight overrules virtual text highlight. +Solution: Let extra attribute overrule line attribute. (closes #10909) + +Patch 9.0.0202 +Problem: Code and help for indexof() is not ideal. +Solution: Refactor the code, improve the help. (Yegappan Lakshmanan, + closes #10908) + +Patch 9.0.0203 +Problem: Confusing variable name. +Solution: Use "prim_aep" instead of "spell_aep". + +Patch 9.0.0204 +Problem: indexof() may leak memory. +Solution: Free allocated values. (Yegappan Lakshmanan, closes #10916) + +Patch 9.0.0205 +Problem: Cursor in wrong position when inserting after virtual text. (Ben + Jackson) +Solution: Put the cursor after the virtual text, where the text will be + inserted. (closes #10914) + +Patch 9.0.0206 +Problem: Redraw flags are not named specifically. +Solution: Prefix "UPD_" to the flags, for UPDate_screen(). + +Patch 9.0.0207 +Problem: Stacktrace not shown when debugging. +Solution: Set msg_scroll in msg_source(). (closes #10917) + +Patch 9.0.0208 +Problem: The override flag has no effect for virtual text. (Ben Jackson) +Solution: Make the override flag work. (closes #10915) + +Patch 9.0.0209 +Problem: Build error with small features. +Solution: Add #ifdef. + +Patch 9.0.0210 +Problem: 'list' mode does not work properly with virtual text. +Solution: Show the "$" at the right position. (closes #10913) + +Patch 9.0.0211 +Problem: Invalid memory access when compiling :lockvar. +Solution: Don't read past the end of the line. + +Patch 9.0.0212 +Problem: Invalid memory access when compiling :unlet. +Solution: Don't read past the end of the line. + +Patch 9.0.0213 +Problem: Using freed memory with error in assert argument. +Solution: Make a copy of the error. + +Patch 9.0.0214 +Problem: Splitting a line may duplicate virtual text. (Ben Jackson) +Solution: Don't duplicate a text property with virtual text. Make + auto-indenting work better. (closes #10919) + +Patch 9.0.0215 +Problem: Not passing APC_INDENT flag. +Solution: Pass the flag where it's needed. + +Patch 9.0.0216 +Problem: Undo earlier test sometimes fails on MS-Windows. +Solution: Use another file name. + +Patch 9.0.0217 +Problem: 'shellslash' works differently when sourcing a script again. +Solution: Use the name from the script item. (closes #10920) + +Patch 9.0.0218 +Problem: Reading before the start of the line. +Solution: When displaying "$" check the column is not negative. + +Patch 9.0.0219 +Problem: Cannot make a funcref with "s:func" in a def function in legacy + script. +Solution: Allow for using a lower case function name after "s:". (Kota Kato, + closes #10926) + +Patch 9.0.0220 +Problem: Invalid memory access with for loop over NULL string. +Solution: Make sure mb_ptr2len() consistently returns zero for NUL. + +Patch 9.0.0221 +Problem: Accessing freed memory if compiling nested function fails. +Solution: Mess up the variable name so that it won't be found. + +Patch 9.0.0222 +Problem: No good reason why text objects are only in larger builds. +Solution: Graduate +textobjects. + +Patch 9.0.0223 +Problem: Typo in diffmode test. +Solution: Fix the typo. (closes #10932) + +Patch 9.0.0224 +Problem: Using NULL pointer when skipping compiled code. +Solution: Check for skipping. + +Patch 9.0.0225 +Problem: Using freed memory with multiple line breaks in expression. +Solution: Free eval_tofree later. + +Patch 9.0.0226 +Problem: job_start() test may fail under valgrind. +Solution: Wait until the job is running. + +Patch 9.0.0227 +Problem: Cannot read error message when abort() is called. +Solution: Output a newline before calling abort(). + +Patch 9.0.0228 +Problem: Crash when pattern looks below the last line. +Solution: Consider invalid lines to be empty. (closes #10938) + +Patch 9.0.0229 +Problem: Vim9: error message for missing type is not clear. +Solution: Mention the context. (issue #10944) + +Patch 9.0.0230 +Problem: No error for comma missing in list in :def function. +Solution: Check for missing comma. (closes #10943) + +Patch 9.0.0231 +Problem: Expanding "**" may loop forever with directory links. +Solution: Check for being interrupted. (closes #10946) + +Patch 9.0.0232 +Problem: Test with BufNewFile autocmd is flaky. +Solution: Use another file name. + +Patch 9.0.0233 +Problem: Removing multiple text properties takes many calls. +Solution: Pass a list to prop_remove(). (Ben Jackson, closes #10945) + +Patch 9.0.0234 +Problem: Cannot make difference between the end of :normal and a character + in its argument. +Solution: Add the "typebuf_was_empty" flag. (closes #10950) + +Patch 9.0.0235 +Problem: 'autoshelldir' does not work with chunked respose. +Solution: Collect chunks before parsing OSC 7. (closes #10949) + +Patch 9.0.0236 +Problem: Popup menu not removed when 'wildmenu' reset while it is visible. +Solution: Do not check p_wmnu, only pum_visible(). (closes #10953) + +Patch 9.0.0237 +Problem: Mac: cannot build if dispatch.h is not available. +Solution: Add #ifdef. (Evan Miller, closes #10954) + +Patch 9.0.0238 +Problem: Shift-Tab shows matches on cmdline when 'wildmenu' is off. +Solution: Only show matches when 'wildmode' contains "list". (closes #10951) + +Patch 9.0.0239 +Problem: Build failure without the +wildmenu feature. +Solution: Move parenthesis. + +Patch 9.0.0240 +Problem: Crash when using ":mkspell" with an empty .dic file. +Solution: Check for an empty word tree. + +Patch 9.0.0241 +Problem: "make install" does not install shared syntax file. (James McCoy) +Solution: Install and uninstall the shared syntax files. (closes #10956) + +Patch 9.0.0242 +Problem: "make install" still fails. (Wilhelm Payne) +Solution: Also add the directory to installrtbase. (Dominique Pellé) + +Patch 9.0.0243 +Problem: Text properties "below" sort differently on MS-Windows. +Solution: Use the ID as a tie breaker. (closes #10958) + +Patch 9.0.0244 +Problem: Cannot easily get the list of sourced scripts. +Solution: Add the getscriptinfo() function. (Yegappan Lakshmanan, + closes #10957) + +Patch 9.0.0245 +Problem: Mechanism to prevent recursive screen updating is incomplete. +Solution: Add "redraw_not_allowed" and set it in build_stl_str_hl(). + (issue #10952) + +Patch 9.0.0246 +Problem: Using freed memory when 'tagfunc' deletes the buffer. +Solution: Make a copy of the tag name. + +Patch 9.0.0247 +Problem: Cannot add padding to virtual text without highlight. +Solution: Add the "text_padding_left" argument. (issue #10906) + +Patch 9.0.0248 +Problem: Duplicate code in finding a script in the execution stack. +Solution: Reduce duplicate code. (closes #10961) + +Patch 9.0.0249 +Problem: No test for what 9.0.0234 fixes. +Solution: Add a test. (issue #10950) + +Patch 9.0.0250 +Problem: Slightly inconsistent error messages. +Solution: Make it "Using a Float". (closes #10959) + +Patch 9.0.0251 +Problem: Test output shows up in git. +Solution: Ignore the "failed" directory. (Yao-Ching Huang, closes #10969) + +Patch 9.0.0252 +Problem: Cursor in wrong place after virtual text. +Solution: Do not change the length of a virtual text property. + (closes #10964) + +Patch 9.0.0253 +Problem: A symlink to an autoload script results in two entries in the list + of scripts, items expected in one are actually in the other. +Solution: Have one script item refer to the actually sourced one. + (closes #10960) + +Patch 9.0.0254 +Problem: Typo in function name. +Solution: Rename the function. (closes #10971) + +Patch 9.0.0255 +Problem: Build failure without the eval feature. +Solution: Add #ifdef. + +Patch 9.0.0256 +Problem: Compiler warning for uninitialized variables. +Solution: Initilize the variables. + +Patch 9.0.0257 +Problem: "->" in ":scriptnames" output not tested yet. +Solution: Add a check. + +Patch 9.0.0258 +Problem: MS-Windows installer skips syntax/shared. +Solution: Use "File /r" in the installer script. (Ken Takata, closes #10972) + +Patch 9.0.0259 +Problem: Crash with mouse click when not initialized. +Solution: Check TabPageIdxs[] is not NULL. + +Patch 9.0.0260 +Problem: Using freed memory when using 'quickfixtextfunc' recursively. +Solution: Do not allow for recursion. + +Patch 9.0.0261 +Problem: bufload() reads a file even if the name is not a file name. (Cyker + Way) +Solution: Do not read the file when the buffer name is not a file name. + (closes #10975) + +Patch 9.0.0262 +Problem: Build failure without the +quickfix feature. +Solution: Add #ifdef. + +Patch 9.0.0263 +Problem: Too many #ifdefs. +Solution: Make some functions always available. + +Patch 9.0.0264 +Problem: CI still runs on Ubuntu 18.04. +Solution: Run CI on Ubuntu 20.04. (closes #10582) + +Patch 9.0.0265 +Problem: No good reason why the "gf" command is not in the tiny version. +Solution: Graduate the file_in_path feature. + +Patch 9.0.0266 +Problem: Compiler warning for unused argument. +Solution: Add UNUSED. + +Patch 9.0.0267 +Problem: Coverity workflow still uses Ubuntu 18.04. +Solution: Use Ubuntu 20.04 + +Patch 9.0.0268 +Problem: Build error without the +eval feature. +Solution: Remove #ifdef. + +Patch 9.0.0269 +Problem: getscriptinfo() does not include the version. Cannot select + entries by script name. +Solution: Add the "version" item and the "name" argument. (Yegappan + Lakshmanan, closes #10962) + +Patch 9.0.0270 +Problem: Some values of 'path' and 'tags' do not work in the tiny version. +Solution: Graduate the +path_extra feature. + +Patch 9.0.0271 +Problem: Using INIT() in non-header files. +Solution: Remove INIT(). (closes #10981) + +Patch 9.0.0272 +Problem: BufReadCmd not triggered when loading a "nofile" buffer. (Maxim + Kim) +Solution: Call readfile() but bail out before reading a file. + (closes #10983) + +Patch 9.0.0273 +Problem: Konsole termresponse not recognized. +Solution: Handle Konsole like libvterm, set 'ttymouse' to "sgr". + (closes #10990) + +Patch 9.0.0274 +Problem: Netrw plugin does not show remote files. +Solution: Do read a file when 'buftype' is "acwrite". (closes #10983) + +Patch 9.0.0275 +Problem: BufEnter not triggered when using ":edit" in "nofile" buffer. +Solution: Let readfile() return NOTDONE. (closes #10986) + +Patch 9.0.0276 +Problem: 'buftype' values not sufficiently tested. +Solution: Add and extend tests with 'buftype' values. (closes #10988) + +Patch 9.0.0277 +Problem: Coverity CI: update-alternatives not needed with Ubuntu 20.04. +Solution: Remove update-alternatives for Lua. (closes #10987) + +Patch 9.0.0278 +Problem: The +wildignore feature is nearly always available. +Solution: Graduate +wildignore for consistency. + +Patch 9.0.0279 +Problem: The tiny version has the popup menu but not 'wildmenu'. +Solution: Graduate the wildmenu feature. + +Patch 9.0.0280 +Problem: The builtin termcap list depends on the version. +Solution: Always include all termcap entries. Remove duplicate lines. + +Patch 9.0.0281 +Problem: Build failure without the +eval feature. +Solution: Add #ifdef. + +Patch 9.0.0282 +Problem: A nested timout stops the previous timeout. +Solution: Ignore any nested timeout. + +Patch 9.0.0283 +Problem: Cannot complete "syn list @cluster". +Solution: Recognize and handle "list @". (Björn Linse, closes #10990) + +Patch 9.0.0284 +Problem: Using static buffer for multiple completion functions. +Solution: Use one buffer in expand_T. + +Patch 9.0.0285 +Problem: It is not easy to change the command line from a plugin. +Solution: Add setcmdline(). (Shougo Matsushita, closes #10869) + +Patch 9.0.0286 +Problem: Using freed memory when location list changed in autocmd. +Solution: Return QF_ABORT and handle it. (Yegappan Lakshmanan, + closes #10993) + +Patch 9.0.0287 +Problem: Irix systems no longer exist. +Solution: Remove references to Irix. (Yegappan Lakshmanan, closes #10994) + +Patch 9.0.0288 +Problem: When 'cmdheight' is zero some messages are not displayed. +Solution: Use a popup notification window. + +Patch 9.0.0289 +Problem: Invalid memory write. +Solution: Do not put NUL in a static string. + +Patch 9.0.0290 +Problem: Compiler warning for variable set but not used. +Solution: Add #ifdef. + +Patch 9.0.0291 +Problem: Test failing. +Solution: Run test with cmdheight=0 last. + +Patch 9.0.0292 +Problem: Test causes another test to fail. +Solution: Redraw to remove the popup window + +Patch 9.0.0293 +Problem: Messages window not hidden when starting a command line. +Solution: Hide the messages window. (closes #10996) + +Patch 9.0.0294 +Problem: Crash when 'cmdheight' is 0 and popup_clear() used. +Solution: Reset "message_win" when the message popup is cleared. Close the + popup when 'cmdheight' is non-zero. Add a screendump test. + +Patch 9.0.0295 +Problem: GUI drop files test sometimes fails. +Solution: Mark the test as flaky. + +Patch 9.0.0296 +Problem: Message in popup is shortened unnecessary. +Solution: Do not use 'showcmd' and 'ruler' for a message in the popup. + Set the timer when unhiding the message popup. + +Patch 9.0.0297 +Problem: Cursor position wrong after right aligned virtual text. (Iizuka + Masashi) +Solution: Take the width of the column offset into account. (closes #10997) + Also fix virtual text positioning. + +Patch 9.0.0298 +Problem: Compiler warning for size_t to int conversion. +Solution: Add a type cast. (Wilhelm Payne, closes #11000) + +Patch 9.0.0299 +Problem: Error messages for setcmdline() could be better. +Solution: Use more specific error messages. (Yegappan Lakshmanan, + closes #10995) + +Patch 9.0.0300 +Problem: 'cpoptions' tests are flaky. +Solution: Use a different file name for each test. + +Patch 9.0.0301 +Problem: The message window popup is delayed after an error message. +Solution: Do not set emsg_on_display when using the message window. + +Patch 9.0.0302 +Problem: CI for Coverity is bothered by deprecation warnings. +Solution: Ignore deprecation warnings. (closes #11002) + +Patch 9.0.0303 +Problem: It is not easy to get information about a script. +Solution: Make getscriptinf() return the version. When selecting a specific + script return functions and variables. (Yegappan Lakshmanan, + closes #10991) + +Patch 9.0.0304 +Problem: WinScrolled is not triggered when only skipcol changes. +Solution: Add w_last_skipcol and use it. (closes #10998) + +Patch 9.0.0305 +Problem: CI lists useless deprecation warnings. +Solution: Ignore deprecation warnings. (closes #11003) + +Patch 9.0.0306 +Problem: Buffer write message is two lines in message popup window. +Solution: Overwrite message if "msg_scroll" is off. + +Patch 9.0.0307 +Problem: :echomsg doesn't work properly with cmdheight=0. +Solution: Improve scrolling and displaying. + +Patch 9.0.0308 +Problem: When cmdheight is zero the attention prompt doesn't show. +Solution: Do not use the message window for a prompt. + +Patch 9.0.0309 +Problem: Invalid memory access when cmdheight is zero. +Solution: Check index in w_lines is smaller than Rows. + +Patch 9.0.0310 +Problem: Output of :messages dissappears when cmdheight is zero. +Solution: Do not use the messages window for :messages. Make Esc close the + messages window. + +Patch 9.0.0311 +Problem: Test for hit-Enter prompt fails. +Solution: Only reset cmdline_row when 'cmdheight' is zero. + +Patch 9.0.0312 +Problem: Test for cmdheight zero fails. +Solution: Do not close the messages window for CTRL-C. + +Patch 9.0.0313 +Problem: Using common name in tests leads to flaky tests. +Solution: Rename files and directories to be more specific. + +Patch 9.0.0314 +Problem: VDM files are not recognized. +Solution: Add patterns for VDM files. (Alessandro Pezzoni, closes #11004) + +Patch 9.0.0315 +Problem: Shell command is displayed in message window. +Solution: Do not echo the shell command in the message window. + +Patch 9.0.0316 +Problem: Screen flickers when 'cmdheight' is zero. +Solution: Redraw over existing text instead of clearing. + +Patch 9.0.0317 +Problem: When updating the whole screen a popup may not be redrawn. +Solution: Mark the screen and windows for redraw also when not clearing. + Also mark popup windows for redraw. + +Patch 9.0.0318 +Problem: Clearing screen causes flicker. +Solution: Do not clear but redraw in more cases. Add () to "wait_return". + +Patch 9.0.0319 +Problem: Godot shader files are not recognized. +Solution: Add patterns for "gdshader". (Maxim Kim, closes #11006) + +Patch 9.0.0320 +Problem: Command line type of CmdlineChange differs from getcmdtype(). +Solution: Use the same type. (closes #11005) + +Patch 9.0.0321 +Problem: Cannot use the message popup window directly. +Solution: Add ":echowindow". + +Patch 9.0.0322 +Problem: Crash when no errors and 'quickfixtextfunc' is set. +Solution: Do not handle errors if there aren't any. + +Patch 9.0.0323 +Problem: Using common name in tests leads to flaky tests. +Solution: Rename files and directories to be more specific. + +Patch 9.0.0324 +Problem: MS-Windows: resolve() test fails. +Solution: Revert renaming the directory. + +Patch 9.0.0325 +Problem: MS-Windows: completion test fails. +Solution: Adjust directory prefix. + +Patch 9.0.0326 +Problem: Some changes for cmdheight=0 are not needed. +Solution: Revert resize behavior if height is greater than the available + space. (Shougo Matsushita, closes #11008) + +Patch 9.0.0327 +Problem: items() does not work on a list. (Sergey Vlasov) +Solution: Make items() work on a list. (closes #11013) + +Patch 9.0.0328 +Problem: OLD_DIGRAPHS is unused. +Solution: Remove OLD_DIGRAPHS. Also drop HPUX_DIGRAPHS. + +Patch 9.0.0329 +Problem: ":highlight" hangs when 'cmdheight' is zero. +Solution: Add to msg_col when using the message window. (closes #11014) + +Patch 9.0.0330 +Problem: Method tests fail. +Solution: Adjust for change of items(). + +Patch 9.0.0331 +Problem: Cannot use items() on a string. +Solution: Make items() work on a string. (closes #11016) + +Patch 9.0.0332 +Problem: Overwrite check may block BufWriteCmd. +Solution: Do not use overwrite check when 'buftype' is "acwrite". + (closes #11011) + +Patch 9.0.0333 +Problem: Method test fails. +Solution: Adjust test for items() now working on string. + +Patch 9.0.0334 +Problem: Test does not properly clean up. +Solution: Fix typo in argument of delete(). (Dominique Pellé, closes #11010) + +Patch 9.0.0335 +Problem: Checks for Dictionary argument often give a vague error message. +Solution: Give a useful error message. (Yegappan Lakshmanan, closes #11009) + +Patch 9.0.0336 +Problem: Tests are flaky because of using a common file name. +Solution: Rename files and directories to be more unique. + +Patch 9.0.0337 +Problem: Flicker when resetting cmdline_row after updating the screen. +Solution: Do not update cmdline_row. (issue #11017) + +Patch 9.0.0338 +Problem: Return value of list_append_list() not always checked. +Solution: Check return value and handle failure. + +Patch 9.0.0339 +Problem: No check if the return value of XChangeGC() is NULL. +Solution: Only use the return value when it is not NULL. (closes #11020) + +Patch 9.0.0340 +Problem: The 'cmdheight' zero support causes too much trouble. +Solution: Revert support for 'cmdheight' being zero. + +Patch 9.0.0341 +Problem: mapset() does not restore mapping properly. +Solution: Use an empty string for . (closes #11022) + +Patch 9.0.0342 +Problem: ":wincmd =" equalizes in two directions. +Solution: Make ":vertical wincmd =" equalize vertically only and + ":horizontal wincmd =" equalize horizontally only. + +Patch 9.0.0343 +Problem: ColorScheme autocommand triggered when colorscheme is not found. + (Romain Lafourcade) +Solution: Only trigger ColorScheme when loading the colorscheme succeeds. + (closes #11024) + +Patch 9.0.0344 +Problem: MS-Windows: background color wrong in Console. +Solution: Figure out the default console background color. (Yasuhiro + Matsumoto, issue #10310) + +Patch 9.0.0345 +Problem: Error message for list argument could be clearer. +Solution: Include the argument number. (Yegappan Lakshmanan, closes #11027) + +Patch 9.0.0346 +Problem: :horizontal modifier not fully supported. +Solution: Also use :horizontal for completion and user commands. + (closes #11025) + +Patch 9.0.0347 +Problem: MS-Windows: cannot set cursor shape in Windows Terminal. +Solution: Make cursor shape work with Windows Terminal. (Ken Takata, + closes #11028, closes #6576) + +Patch 9.0.0348 +Problem: MS-Windows: GUI mouse move event test is flaky. +Solution: Wait for a little while for the first move event. + +Patch 9.0.0349 +Problem: Filetype of *.sil files not well detected. +Solution: Inspect the file contents to guess the filetype. + +Patch 9.0.0350 +Problem: :echowindow does not work in a compiled function. +Solution: Handle the expression at compile time. + +Patch 9.0.0351 +Problem: Message window may obscure the command line. +Solution: Reduce the maximum height of the message window. + +Patch 9.0.0352 +Problem: using :echowindow in a timer clears part of message +Solution: Do not use msg_clr_eos(). + +Patch 9.0.0353 +Problem: Missing entry in switch. +Solution: Add ISN_ECHOWINDOW. + +Patch 9.0.0354 +Problem: MS-Windows: starting a python server for test sometimes fails. +Solution: Increase the waiting time for the port. + +Patch 9.0.0355 +Problem: Check for uppercase char in autoload name is wrong, it checks the + name of the script. +Solution: Remove the check. (closes #11031) + +Patch 9.0.0356 +Problem: :echowindow sets the in_echowindow flag too early. +Solution: Set in_echowindow only when outputting the text. (Yasuhiro + Matsumoto, closes #11033) + +Patch 9.0.0357 +Problem: 'linebreak' interferes with text property highlight if there is + syntax highlighting. +Solution: Check the text prop attributes after combining with syntax + attributes. (closes #11035) + +Patch 9.0.0358 +Problem: 'breakindent' does not indent non-lists with + "breakindentopt=list:-1". +Solution: Adjust indent computation. (Maxim Kim, closes #11038) + +Patch 9.0.0359 +Problem: Error message for wrong argument type is not specific. +Solution: Include more information in the error. (Yegappan Lakshmanan, + closes #11037) + +Patch 9.0.0360 +Problem: Crash when invalid line number on :for is ignored. +Solution: Do not check breakpoint for non-existing line. + +Patch 9.0.0361 +Problem: Removing a listener may result in a memory leak and remove + subsequent listerns. +Solution: Init the "prev" pointer only once. (Yegappan Lakshmanan, + closes #11039) + +Patch 9.0.0362 +Problem: Expanding ":e %" does not work for remote files. +Solution: If the "%" or "#" file does not exist add the expansion anyway. + +Patch 9.0.0363 +Problem: Common names in test files causes tests to be flaky. +Solution: Use more specific names. + +Patch 9.0.0364 +Problem: Clang static analyzer gives warnings. +Solution: Avoid the warnings. (Yegappan Lakshmanan, closes #11043) + +Patch 9.0.0365 +Problem: File name used in test is unusual. +Solution: Rename it. (Dominique Pellé, closes #11044) + +Patch 9.0.0366 +Problem: Cannot use import->Func() in lambda. (Israel Chauca Fuentes) +Solution: Adjust how an expression in a lambda is parsed. (closes #11042) + +Patch 9.0.0367 +Problem: Coverity complains about dropping sign of character. +Solution: Add explicit type cast. + +Patch 9.0.0368 +Problem: Old Coverity warning for using NULL pointer. +Solution: Bail out if dictionary allocation fails. + +Patch 9.0.0369 +Problem: A failing flaky test doesn't mention the time. +Solution: Add the time for debugging. Improve error message. + +Patch 9.0.0370 +Problem: Cleaning up afterwards can make a function messy. +Solution: Add the :defer command. + +Patch 9.0.0371 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize the variable. (John Marriott) + +Patch 9.0.0372 +Problem: MS-Windows: "%T" time format does not appear to work. +Solution: Use "%H:%M:%S" instead. + +Patch 9.0.0373 +Problem: Coverity warns for NULL check and unused return value. +Solution: Remove the NULL check, it was already checked earlier. Add (void) + to ignore the return value. + +Patch 9.0.0374 +Problem: Coverity still complains about dropping sign of character. +Solution: Add intermediate variable. + +Patch 9.0.0375 +Problem: The footer feature is unused. +Solution: Remove FEAT_FOOTER and code. + +Patch 9.0.0376 +Problem: Clang warns for dead assignments. +Solution: Adjust the code. (Yegappan Lakshmanan, closes #11048) + +Patch 9.0.0377 +Problem: Argument assignment does not work. +Solution: Skip over "=". + +Patch 9.0.0378 +Problem: Compiler warning for uninitialized variable. (Tony Mechelynck) +Solution: Initialize it. + +Patch 9.0.0379 +Problem: Cleaning up after writefile() is a hassle. +Solution: Add the 'D' flag to defer deleting the written file. Very useful + in tests. + +Patch 9.0.0380 +Problem: Deleting files in tests is a hassle. +Solution: Use the new 'D' flag of writefile(). + + +Problem: Deleting files in tests is a hassle. +Solution: Use the new 'D' flag of writefile(). + +Patch 9.0.0381 +Problem: Writefile test leaves files behind. +Solution: Fix the file names of files to be deleted. (Dominique Pellé, + closes #11056) + +Patch 9.0.0382 +Problem: Freeing the wrong string on failure. +Solution: Adjust the argument. Reorder the code. + +Patch 9.0.0383 +Problem: Coverity complains about unused value. +Solution: Use the value. + +Patch 9.0.0384 +Problem: Covertity still complains about using return value of getc(). +Solution: Check for EOF. + +Patch 9.0.0385 +Problem: GUI: when CTRL-D is mapped in Insert mode it gets inserted. + (Yasuhiro Matsumoto) +Solution: Also recognize modifier starting with CSI. (closes #11057) + +Patch 9.0.0386 +Problem: Some code blocks are nested too deep. +Solution: Bail out earlier. (Yegappan Lakshmanan, closes #11058) + +Patch 9.0.0387 +Problem: repeating a mapping does not use the right script + context. +Solution: When using a mapping put {sid}; in the redo buffer. + (closes #11049) + +Patch 9.0.0388 +Problem: The do_arg_all() function is too long. +Solution: Split the function in smaller parts. (Yegappan Lakshmanan, + closes #11062) + +Patch 9.0.0389 +Problem: Crash when 'tagfunc' closes the window. +Solution: Bail out when the window was closed. + +Patch 9.0.0390 +Problem: Cannot use a partial with :defer. +Solution: Add the partial arguments before the other arguments. Disallow + using a dictionary. + +Patch 9.0.0391 +Problem: Using separate delete() call instead of writefile() 'D' flag. +Solution: Use the writefile 'D' flag. + +Patch 9.0.0392 +Problem: Inverted condition is a bit confusing. +Solution: Remove the "!" and swap the blocks. (Ken Takata) + +Patch 9.0.0393 +Problem: Signals test often fails on FreeBSD. +Solution: Use separate files for Suspend and Resume. (Ken Takata, + closes #11065) + +Patch 9.0.0394 +Problem: Cygwin: multibyte characters may be broken in terminal window. +Solution: Adjust how to read and write on the channel. (Ken Takata, + closes #11063) + +Patch 9.0.0395 +Problem: Clang warnings for function prototypes. +Solution: Remove incomplete function prototypes. (closes #11068) + +Patch 9.0.0396 +Problem: :findrepl does not escape '&' and '~' properly. +Solution: Escape depending on the value of 'magic'. (closes #11067) + +Patch 9.0.0397 +Problem: :defer not tested with exceptions and ":qa!". +Solution: Test :defer works when exceptions are thrown and when ":qa!" is + used. Invoke the deferred calls on exit. + +Patch 9.0.0398 +Problem: Members of funccall_T are inconsistently named. +Solution: Use the "fc_" prefix for all members. + +Patch 9.0.0399 +Problem: Using :defer in expression funcref not tested. +Solution: Add a test. Fix uncovered problems. + +Patch 9.0.0400 +Problem: GUI test sometimes hangs on CI. +Solution: Delete a test file explicitly. (Ken Takata, closes #11072) + +Patch 9.0.0401 +Problem: CI uses older clang version. +Solution: Switch from clang 14 to 15. (closes #11066) + +Patch 9.0.0402 +Problem: Javascript module files are not recoginzed. +Solution: Recognize "*.jsm" files as Javascript. (Brett Holman, + closes #11069) + +Patch 9.0.0403 +Problem: 'equalalways' may be off when 'laststatus' is zero. +Solution: call last_status() before win_equal(). (Luuk van Baal, + closes #11070) + +Patch 9.0.0404 +Problem: Crash when passing invalid arguments to assert_fails(). +Solution: Check for NULL string. + +Patch 9.0.0405 +Problem: Arguments in a partial not used by a :def function. +Solution: Put the partial arguments on the stack. + +Patch 9.0.0406 +Problem: Deferred functions not invoked when partial func exits. +Solution: Create a funccall_T when calling a :def function. + +Patch 9.0.0407 +Problem: matchstr() does match column offset. (Yasuhiro Matsumoto) +Solution: Accept line number zero. (closes #10938) + +Patch 9.0.0408 +Problem: GUI test sometimes fails on MS-Windows. +Solution: Make sure Vim is the foreground window. (Ken Takata, closes #11077) + +Patch 9.0.0409 +Problem: #{g:x} was seen as a curly-braces expression. +Solution: Do never see #{} as a curly-braces expression. (closes #11075) + +Patch 9.0.0410 +Problem: Struct member cts_lnum is unused. +Solution: Delete it. + +Patch 9.0.0411 +Problem: Only created files can be cleaned up with one call. +Solution: Add flags to mkdir() to delete with a deferred function. + Expand the writefile() name to a full path to handle changing + directory. + +Patch 9.0.0412 +Problem: Compiler warning for unused argument. +Solution: Add UNUSED. + +Patch 9.0.0413 +Problem: ASAN reports a memory leak. +Solution: Free the string received from the server. (Ken Takata, + closes #11080) + +Patch 9.0.0414 +Problem: matchstr() still does not match column offset when done after a + text search. +Solution: Only use the line number for a multi-line search. Fix the test. + (closes #10938) + +Patch 9.0.0415 +Problem: On MS-Windows some tests are flaky. +Solution: Add sleeps, disable swapfile, mark test as flaky. (Ken Takata, + closes #11082) + +Patch 9.0.0416 +Problem: ml_get error when appending lines in popup window. +Solution: Only update w_topline when w_buffer matches curbuf. + (closes #11074) + +Patch 9.0.0417 +Problem: Jsonnet files are not recognized. +Solution: Add a pattern for Jsonnet files. (Cezary Drożak, closes #11073, + closes #11081) + +Patch 9.0.0418 +Problem: Manually deleting temp test files. +Solution: Use the 'D' flag of writefile() and mkdir(). + +Patch 9.0.0419 +Problem: The :defer command does not check the function argument count and + types. +Solution: Check the function arguments when adding a deferred function. + +Patch 9.0.0420 +Problem: Function went missing. +Solution: Add the function back. + +Patch 9.0.0421 +Problem: MS-Windows makefiles are inconsistently named. +Solution: Use consistent names. (Ken Takata, closes #11088) + +Patch 9.0.0422 +Problem: Not enough testing of the :all command. +Solution: Add more testing. (Yegappan Lakshmanan, closes #11091) + +Patch 9.0.0423 +Problem: "for" and "while" not recognized after :vim9cmd and :legacy. + (Emanuele Torre) +Solution: Recognize all the command modifiers. (closes #11087) + Add a test to check the list of modifiers. + +Patch 9.0.0424 +Problem: gitattributes files are not recognized. +Solution: Add patterns to match gitattributes files. (closes #11085) + +Patch 9.0.0425 +Problem: Autocmd test is a bit flaky on MS-Windows. +Solution: Add a bit more sleeping. (Ken Takata, closes #11095) + +Patch 9.0.0426 +Problem: Failed flaky tests reports only start time. +Solution: Also report the end time. + +Patch 9.0.0427 +Problem: Drupal theme files are not recognized. +Solution: Use php filetype for Drupl theme files. Remove trailing spaces. + (Rodrigo Aguilera, closes #11096) + +Patch 9.0.0428 +Problem: Autocmd test uses common file name. +Solution: Use unique name to reduce flakiness. + +Patch 9.0.0429 +Problem: Not all keys are tested for the MS-Windows GUI. +Solution: Add more key codes to the list. (Yegappan Lakshmanan, + closes #11097) + +Patch 9.0.0430 +Problem: Cannot use repeat() with a blob. +Solution: Implement blob repeat. (closes #11090) + +Patch 9.0.0431 +Problem: Current mode shows in message window. +Solution: Reset in_echowindow before redrawing. (issue #11094) + +Patch 9.0.0432 +Problem: Crash when using for loop variable in closure. +Solution: Check that the variable wasn't deleted. (issue #11094) + +Patch 9.0.0433 +Problem: Coverity warns for not checking allocation failure. +Solution: Check that allocating a list or blob succeeded. + +Patch 9.0.0434 +Problem: gitignore files are not recognized. +Solution: Add patterns for the gitignore filetype. (closes #11102) + +Patch 9.0.0435 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize it. + +Patch 9.0.0436 +Problem: CI: running tests in parallel causes flakiness. +Solution: Reorganize the MS-Windows runs. (Ken Takata, closes #11101) + +Patch 9.0.0437 +Problem: No error when a custom completion function returns something else + than the expected list. +Solution: Give an error. (closes #11100) + +Patch 9.0.0438 +Problem: Cannot put virtual text above a line. +Solution: Add the "above" value for "text_align". + +Patch 9.0.0439 +Problem: Cursor wrong if inserting before line with virtual text above. +Solution: Add the width of the "above" virtual text to the cursor position. + (issue #11084) + +Patch 9.0.0440 +Problem: Crash when using mkdir() with "R" flag in compiled function. +Solution: Reserve a variable for deferred function calls. Handle more than + one argument. + +Patch 9.0.0441 +Problem: Closure in for loop test fails on some systems. +Solution: Do not wait for the ruler to show up. (issue #11106) + +Patch 9.0.0442 +Problem: Virtual text "above" doesn't handel line numbers. +Solution: Take the left column offset into account. (issue #11084) + Also make padding work. + +Patch 9.0.0443 +Problem: Blueprint files are not recognized. +Solution: Add a pattern for blueprint files. (Gabriele Musco, closes #11107) + +Patch 9.0.0444 +Problem: Trying to declare g:variable gives confusing error. +Solution: Give a better error message. (closes #11108) + +Patch 9.0.0445 +Problem: When opening/closing window text moves up/down. +Solution: Add the 'splitscroll' option. When off text will keep its + position as much as possible. + +Patch 9.0.0446 +Problem: Message window may be positioned too low. +Solution: Compute cmdline_row before computing the position. + +Patch 9.0.0447 +Problem: Using :echowin while at the hit-enter prompt causes problems. +Solution: Do not prompt for :echowin. Postpone showing the message window. + Start the timer when the window is displayed. + +Patch 9.0.0448 +Problem: SubRip files are not recognized. +Solution: Add a pattern for SubRip. (closes #11113) + +Patch 9.0.0449 +Problem: There is no easy way to translate a string with a key code into a + readable string. +Solution: Add the keytrans() function. (closes #11114) + +Patch 9.0.0450 +Problem: Return value of argument check functions is inconsistent. +Solution: Return OK/FAIL instead of TRUE/FALSE. (closes #11112) + +Patch 9.0.0451 +Problem: Virtual text "above" does not work with 'nowrap'. +Solution: Do wrap the line after. (closes #11084) + +Patch 9.0.0452 +Problem: Visual highlighting extends into virtual text prop. +Solution: Do not highlight what isn't actually selected. Fix ordering of + stored text props. + +Patch 9.0.0453 +Problem: On an AZERTY keyboard digit keys get the shift modifier. +Solution: Remove the shift modifier from digit keys. (closes #11109) + +Patch 9.0.0454 +Problem: Incorrect color for modeless selection with GTK. +Solution: Use simple inversion instead of XOR. (closes #11111) + +Patch 9.0.0455 +Problem: A few problems with 'splitscroll'. +Solution: Fix 'splitscroll' problems. (Luuk van Baal, closes #11117) + +Patch 9.0.0456 +Problem: Function called at debug prompt is also debugged. +Solution: Reset the debug level while entering the debug command. + (closes #11118) + +Patch 9.0.0457 +Problem: Substitute prompt does not highlight an empty match. +Solution: Highlight at least one character. + +Patch 9.0.0458 +Problem: Splitting a line with a text prop "above" moves it to a new line + below. +Solution: Keep an "above" text prop above the first line. + +Patch 9.0.0459 +Problem: Vim9: block in for loop doesn't behave like a code block. +Solution: Use a new block ID for each loop at the script level. + +Patch 9.0.0460 +Problem: Loop variable can't be found. +Solution: Adjust block_id of the loop variable each round. + +Patch 9.0.0461 +Problem: 'scroll' is not always updated. +Solution: Call win_init_size() at the right place. + +Patch 9.0.0462 +Problem: ASAN warning for integer overflow. +Solution: Check for tp_col to be MAXCOL. + +Patch 9.0.0463 +Problem: Command line test leaves directory behind. +Solution: Use the "R" flag on the first mkdir(). (Dominique Pellé, + closes #11127) + +Patch 9.0.0464 +Problem: With virtual text "above" indenting doesn't work well. +Solution: Ignore text properties while adjusting indent. (issue #11084) + +Patch 9.0.0465 +Problem: Cursor moves when cmdwin is closed when 'splitscroll' is off. +Solution: Temporarily set 'splitscroll' when jumping back to the original + window. (closes #11128) + +Patch 9.0.0466 +Problem: Virtual text wrong after adding line break after line. +Solution: Pass an "eol" flag to where text properties are adjusted. + (closes #11131) + +Patch 9.0.0467 +Problem: Build failure. +Solution: Add missing change. + +Patch 9.0.0468 +Problem: Exectution stack underflow without the +eval feature. (Dominique + Pellé) +Solution: Add to execution stack without FEAT_EVAL. (closes #11135) + +Patch 9.0.0469 +Problem: Cursor moves if cmdwin is closed when 'splitscroll' is off. +Solution: Skip win_fix_cursor if called when cmdwin is open or closing. + (Luuk van Baal, closes #11134) + +Patch 9.0.0470 +Problem: In a :def function all closures in a loop get the same variables. +Solution: When in a loop and a closure refers to a variable declared in the + loop, prepare for making a copy of variables for each closure. + +Patch 9.0.0471 +Problem: No test for what patch 9.0.0469 fixes. +Solution: Add a test. (closes #11140) + +Patch 9.0.0472 +Problem: Virtual text "below" doesn't show in list mode. +Solution: Reset lcs_eol_one when displaying text property. + +Patch 9.0.0473 +Problem: fullcommand() only works for the current script version. +Solution: Add an optional argument for the script version. + +Patch 9.0.0474 +Problem: fullcommand() test failure. +Solution: Update function table. + +Patch 9.0.0475 +Problem: Not using deferred delete in tests. +Solution: Use deferred delete more often. + +Patch 9.0.0476 +Problem: Varargs does not work for replacement function of substitute(). +Solution: Check the varargs flag of the function. (closes #11142) + +Patch 9.0.0477 +Problem: Missing dependency may cause crashes on incomplete build. +Solution: Add dependency. + +Patch 9.0.0478 +Problem: Test for 'splitscroll' takes too much time. +Solution: Only test some of the combinations. (Luuk van Baal, closes #11139) + +Patch 9.0.0479 +Problem: In a :def function all closures in a loop get the same variables. +Solution: Use a separate list of variables for LOADOUTER and SAVEOUTER. + +Patch 9.0.0480 +Problem: Cannot use a :def varargs function with substitute(). +Solution: Use has_varargs(). (closes #11146) + +Patch 9.0.0481 +Problem: In a :def function all closures in a loop get the same variables. +Solution: Use a separate list of variables for LOADOUTER and STOREOUTER. + Not copied at end of loop yet. + +Patch 9.0.0482 +Problem: "g0" moves to wrong location with virtual text "above". +Solution: Compensate for the extra columns. (closes #11141) Also fix "g$" + +Patch 9.0.0483 +Problem: Illegal memory access when replacing in virtualedit mode. +Solution: Check for replacing NUL after Tab. + +Patch 9.0.0484 +Problem: In a :def function all closures in a loop get the same variables. +Solution: Add ENDLOOP at break, continue and return if needed. + +Patch 9.0.0485 +Problem: In a :def function all closures in a loop get the same variables. +Solution: Make a copy of loop variables used in a closure. + +Patch 9.0.0486 +Problem: Text scrolled with 'nosplitscroll', autocmd win opened and help + window closed. +Solution: Skip win_fix_scroll() in more situations. (Luuk van Baal, + closes #11150) + +Patch 9.0.0487 +Problem: Using freed memory with combination of closures. +Solution: Do not use a partial after it has been freed through the + funcstack. + +Patch 9.0.0488 +Problem: Cursor in wrong position with virtual text "above" and + 'showbreak'. +Solution: Take the first character column into account. (closes #11149) + +Patch 9.0.0489 +Problem: Using "end_lnum" with virtual text causes problems. +Solution: Disallow using "end_lnum" with virtual text. (closes #11151) + Also disallow "end_col" and "length". + +Patch 9.0.0490 +Problem: Using freed memory with cmdwin and BufEnter autocmd. +Solution: Make sure pointer to b_p_iminsert is still valid. + +Patch 9.0.0491 +Problem: No good reason to build without the float feature. +Solution: Remove configure check for float and "#ifdef FEAT_FLOAT". + +Patch 9.0.0492 +Problem: Cmdwin test fails on MS-Windows. +Solution: Skip test on MS-Windows. + +Patch 9.0.0493 +Problem: Perl test fails. +Solution: Remove remaining FEAT_EVAL. + +Patch 9.0.0494 +Problem: Small build misses float function declaraitons. +Solution: Adjust #ifdefs. + +Patch 9.0.0495 +Problem: Closure doesn't work properly in nested loop. +Solution: Save variables up to the outer loop. + +Patch 9.0.0496 +Problem: No good reason to keep supporting Windows-XP. +Solution: Drop Windows-XP support. (Ken Takata, closes #11089) + +Patch 9.0.0497 +Problem: LyRiCs files are not recognized. +Solution: Add a pattern to detect LyRiCs files. (closes #11155) + +Patch 9.0.0498 +Problem: Various small issues. +Solution: Various small fixes. + +Patch 9.0.0499 +Problem: In :def function list created after const is locked. +Solution: Reset v_lock. (closes #11154) + +Patch 9.0.0500 +Problem: When quitting the cmdline window with CTRL-C it remains visible. +Solution: Redraw to avoid confusion. Adjust the error message. + (closes #11152) Adjust the cursor position after CTRL-C. + +Patch 9.0.0501 +Problem: Warning for using uninitialized value in mouse test. +Solution: Clear ScreenCols when allocating it. (Dominique Pellé) + +Patch 9.0.0502 +Problem: A closure in a nested loop in a :def function does not work. +Solution: Use an array of loopvars, one per loop level. + +Patch 9.0.0503 +Problem: Build failure. +Solution: Add missing changes. + +Patch 9.0.0504 +Problem: still a Build failure. +Solution: Add another missing changes. Avoid compiler warning. + +Patch 9.0.0505 +Problem: Various problems with 'nosplitscroll'. +Solution: Fix 'nosplitscroll' problems. (Luuk van Baal, closes #11166) + +Patch 9.0.0506 +Problem: Line number argument for :badd does not work. +Solution: Set the last cursor position in the new buffer. (closes #11161) + +Patch 9.0.0507 +Problem: Command line cleared when using :redrawstatus in CmdlineChanged + autocommand event. +Solution: Postpone the redraw. (closes #11162) + +Patch 9.0.0508 +Problem: When the channel test fails there is no clue why. +Solution: Add info about the job status. (Ken Takata, closes #11175) + +Patch 9.0.0509 +Problem: Confusing error for "saveas" command with "nofile" buffer. +Solution: Give a clearer error message. (closes #11171) + +Patch 9.0.0510 +Problem: Chatito files are not recognized. +Solution: Add a pattern for Chatito files. (closes #11174) + +Patch 9.0.0511 +Problem: Unnecessary scrolling for message of only one line. +Solution: Only set msg_scroll when needed. (closes #11178) + +Patch 9.0.0512 +Problem: Cannot redraw the status lines when editing a command. +Solution: Only postpone the redraw when messages have scrolled. + (closes #11170) + +Patch 9.0.0513 +Problem: May not be able to use a pattern ad the debug prompt. +Solution: Temporarily disable the timeout. (closes #11164) + +Patch 9.0.0514 +Problem: Terminal test sometimes hangs. +Solution: Add a bit more information to the test output. (issue #11179) + +Patch 9.0.0515 +Problem: Virtual text highlight starts too early when 'number' is set. +Solution: Set column offset when wrapping. (issue #11138) + +Patch 9.0.0516 +Problem: Virtual text "above" highlights gap after it. +Solution: Do not highlight the gap. (closes #11138) + +Patch 9.0.0517 +Problem: When at the command line :redrawstatus does not work well. +Solution: Only update the statuslines instead of the screen. (closes #11180) + +Patch 9.0.0518 +Problem: Virtual text highlight starts too early with 'nowrap' and 'number' + set. +Solution: Add the offset to the attribute skip count. (issue #11138) + +Patch 9.0.0519 +Problem: The win_line() function is much too long. +Solution: Move the code to draw the line number to a separate function. + +Patch 9.0.0520 +Problem: Declaring a loop variable at the start of a block is clumsy. +Solution: Declare the variable inside the loop in a few places to see if + this works. + +Patch 9.0.0521 +Problem: Compiler warns for unused argument in small version. +Solution: Add UNUSED. + +Patch 9.0.0522 +Problem: Build fails on Appveyor. +Solution: Select Visual Studio 2015 for the build tools. + +Patch 9.0.0523 +Problem: more compiler warnings for arguments in small version +Solution: Adjust #ifdefs. + +Patch 9.0.0524 +Problem: Build instructions for MS-Windows are outdated. +Solution: Remove instructions for old MSVC versions. + +Patch 9.0.0525 +Problem: Manually deleting temp test files. +Solution: Add the 'D' flag to writefile(). + +Patch 9.0.0526 +Problem: MS-Windows: still some support for XP and old compilers. +Solution: Remove XP support and mention of old compilers. (Ken Takata, + closes #11183) + +Patch 9.0.0527 +Problem: Long sign text may overflow buffer. +Solution: Use a larger buffer. Prevent for overflow. + +Patch 9.0.0528 +Problem: MS-Windows: no batch files for more recent MSVC versions. +Solution: Add batch files for 2017, 2019 and 2022. (Ken Takata, + closes #11184) + +Patch 9.0.0529 +Problem: Appveyor setup contains outdated lines. +Solution: Remove outdated lines. (Ken Takata, closes #11182) + +Patch 9.0.0530 +Problem: Using freed memory when autocmd changes mark. +Solution: Copy the mark before editing another buffer. + +Patch 9.0.0531 +Problem: The win_line() function is much too long. +Solution: Move code to separate functions. + +Patch 9.0.0532 +Problem: Edit test is flaky when run under valgrind. +Solution: Send some text to the terminal to trigger a redraw. + +Patch 9.0.0533 +Problem: The win_line() function is much too long. +Solution: Move code to separate functions. + +Patch 9.0.0534 +Problem: Line number is displayed at virtual text "above". +Solution: Show the line number at the text line. + +Patch 9.0.0535 +Problem: Closure gets wrong value in for loop with two loop variables. +Solution: Correctly compute the number of loop variables to clear. + +Patch 9.0.0536 +Problem: CI: codecov action update available. +Solution: Update Codecov 3.1.0 to 3.3.1. (closes #11188) + +Patch 9.0.0537 +Problem: The do_set() function is much too long. +Solution: Move setting of a string option to a separate function. + +Patch 9.0.0538 +Problem: Manually deleting test temp files. +Solution: Add the 'D' flag to writefile(). + +Patch 9.0.0539 +Problem: Long message test can be flaky. +Solution: Wait for more prompt instead of ruler. + +Patch 9.0.0540 +Problem: Assigning stack variable to argument confuses Coverity. +Solution: Use a local pointer, also makes the code simpler. + +Patch 9.0.0541 +Problem: Terminal pwd test fails with a very long path name. +Solution: Join two lines. + +Patch 9.0.0542 +Problem: MSVC build still has support for 2012 edition. +Solution: Drop MSVC 2012 support. (Ken Takata, closes #11191) + +Patch 9.0.0543 +Problem: Insufficient testing for assert and test functions. +Solution: Add a few more tests. (Yegappan Lakshmanan, closes #11190) + +Patch 9.0.0544 +Problem: Minor issues with setting a string option. +Solution: Adjust the code, add a test. (closes #11192) + +Patch 9.0.0545 +Problem: When a test is slow and CI times out there is no time info. +Solution: Add the elapsed time to the "Executing" message. + +Patch 9.0.0546 +Problem: Supporting Ruby 1.8 makes code complicated. +Solution: Drop Ruby 1.8 support, it is ancient. (Ken Takata, closes #11195) + +Patch 9.0.0547 +Problem: Looping over empty out_loop[] entries. +Solution: Store the array size. + +Patch 9.0.0548 +Problem: reduce() with a compiled lambda could be faster. +Solution: Call eval_expr_typval() instead of call_func() directly. + +Patch 9.0.0549 +Problem: Duplicated code in calling a :def function. +Solution: Simplify the code. + +Patch 9.0.0550 +Problem: Crash when closing a tabpage and buffer is NULL. +Solution: Adjust how autocommands are triggered when closing a window. + (closes #11198, closes #11197) + +Patch 9.0.0551 +Problem: Mode message is delayed when :echowin was used. (Maxim Kim) +Solution: Save and restore msg_didout in :echowin. (closes #11193) + +Patch 9.0.0552 +Problem: Crash when using NUL in buffer that uses :source. +Solution: Don't get a next line when skipping over NL. + +Patch 9.0.0553 +Problem: No error for "|" after "{" in lamda. +Solution: Check for invalid "|". (closes #11199) + +Patch 9.0.0554 +Problem: Using freed memory when command follows lambda. +Solution: Don't free what is still in use. (closes #11201) + +Patch 9.0.0555 +Problem: Scrolling with 'nosplitscroll' in callback changing curwin. +Solution: Invalidate w_cline_row in the right place. (Luuk van Baal, + closes #11185) + +Patch 9.0.0556 +Problem: Leaking memory with nested functions. +Solution: Free saved pointer. + +Patch 9.0.0557 +Problem: Valgrind reports possibly leaked memory. +Solution: Move the problematic test function to the "fails" test file to + avoid obscuring real memory leaks. + +Patch 9.0.0558 +Problem: Coverity warns for possibly using NULL pointer. +Solution: Only use "evalarg" when not NULL. + +Patch 9.0.0559 +Problem: Timer test may get stuck at hit-enter prompt. +Solution: Feed some more characters. + +Patch 9.0.0560 +Problem: Elapsed time since testing started is not visible. +Solution: Show the elapsed time while running tests. + +Patch 9.0.0561 +Problem: When a test gets stuck it just hangs forever. +Solution: Set a timeout of 30 seconds. + +Patch 9.0.0562 +Problem: HSL playlist files are not recognized. +Solution: Add a pattern to recognize HSL palylist files. (Benoît Ryder, + closes #11204) + +Patch 9.0.0563 +Problem: Timer_info() test fails. +Solution: Ignore test timeout timer. Don't use test_null_job() when not + available. + +Patch 9.0.0564 +Problem: A few tests keep failing on MacOS M1. +Solution: Add a test check CheckNotMacM1. Fix timer tests. + +Patch 9.0.0565 +Problem: Cscope test causes problems when code for test timeout timer is + included (even when commented out). +Solution: Disable part of the cscope test for now. + +Patch 9.0.0566 +Problem: Nim files are not recognized. +Solution: Add patterns for Nim files. (Nbiba Bedis, closes #11205) + +Patch 9.0.0567 +Problem: 'completeopt' "longest" is not used for complete(). +Solution: Also use "longest" for complete(). (Bjorn Linse, closes #11206) + +Patch 9.0.0568 +Problem: Autocmd code is indented more than needed. +Solution: Break out sooner. (Yegappan Lakshmanan, closes #11208) + Also in user function code. + +Patch 9.0.0569 +Problem: Cannot easily get out when using "vim file | grep word". +Solution: Without changes let CTRL-C exit Vim. Otherwise give a message on + stderr. (closes #11209) + +Patch 9.0.0570 +Problem: CI for Windows is still using codecov action 3.1.0. +Solution: Use action 3.1.1. (closes #11212) + +Patch 9.0.0571 +Problem: MS-Windows: CTRL-C can make Vim exit. +Solution: Check the not-a-term argument. + +Patch 9.0.0572 +Problem: Insert complete tests leave a mapping behind. +Solution: Use a buffer-local mapping. (closes #11211) + +Patch 9.0.0573 +Problem: Outdated dependencies go unnoticed. +Solution: Use github Dependabot. (closes #11213) + +Patch 9.0.0574 +Problem: Timer garbage collect test hangs on Mac M1. +Solution: Properly check for Mac M1 and skip the test. + +Patch 9.0.0575 +Problem: The getchar() function behaves strangely with bracketed paste. +Solution: Do not handle paste-start in getchar(). (issue #11172) + +Patch 9.0.0576 +Problem: Unused loop variables. +Solution: Use a while loop instead. (closes #11214) + +Patch 9.0.0577 +Problem: Buffer underflow with unexpected :finally. +Solution: Check CSF_TRY can be found. + +Patch 9.0.0578 +Problem: One timer test fails on Mac M1. +Solution: Skip the test on Mac M1. + +Patch 9.0.0579 +Problem: Using freed memory when 'tagfunc' wipes out buffer that holds + 'complete'. +Solution: Make a copy of the option. Make sure cursor position is valid. + +Patch 9.0.0580 +Problem: No CI running for MacOS on M1. +Solution: Add a cirrus CI task. (closes #11203) + +Patch 9.0.0581 +Problem: Adding a character for incsearch fails at end of line. +Solution: Only check cursor line number. + +Patch 9.0.0582 +Problem: Channel cwd test fails on Cirrus CI. +Solution: Also remove /private from the expected directory. + +Patch 9.0.0583 +Problem: Only recognizing .m3u8 files is inconsistent. +Solution: Also matc .m3u files. (issue #11204) + +Patch 9.0.0584 +Problem: Cscope test with wrong executable name fails. +Solution: Use /bin/sh to execute the command. (Yegappan Lakshmanan) + +Patch 9.0.0585 +Problem: When long message test fails the error message is not visible. +Solution: Dump more lines. + +Patch 9.0.0586 +Problem: Missing change in test. +Solution: Add the test change. + +Patch 9.0.0587 +Problem: Unicode tables are outdated. +Solution: Update to Unicode release 15. (Christian Brabandt, closes #11220) + +Patch 9.0.0588 +Problem: MorphOS build is broken. +Solution: Add "-lm" to LDFLAGS and "-noixemul" to CFLAGS. (Ola Söder, + closes #11222) + +Patch 9.0.0589 +Problem: On AmigaOS4 the pid is available but the task address is used. +Solution: Use getpid(). (Ola Söder, closes #11224) + +Patch 9.0.0590 +Problem: After exiting Insert mode spelling is not checked in the next + line. +Solution: When spelling is enabled redraw the next line after exiting Insert + mode in case the spell highlight needs updating. + +Patch 9.0.0591 +Problem: Message window popup shows on only one tab page. (Naruhiko + Nishino) +Solution: Show the message window popup on all tab pages. (closes #11231) + +Patch 9.0.0592 +Problem: Display not cleared when scrolling back in messages, a background + color is set and t_ut is empty. +Solution: Clear to the end of the display if needed. (closes #8973) + +Patch 9.0.0593 +Problem: CI actions have too many permissions. +Solution: Restrict permissions to what is required. (closes #11223) + +Patch 9.0.0594 +Problem: Makefile error message causes a shell error. +Solution: Put the message in single quotes. (closes #11232) + +Patch 9.0.0595 +Problem: Extra newline in messages after a verbose shell message. +Solution: Output the newline with msg_putchar_attr(). (closes #11233) + Make it possible to filter a screendump before comparing it. + +Patch 9.0.0596 +Problem: CI on Mac M1 has the channel feature disabled. +Solution: Include the channel feature. + +Patch 9.0.0597 +Problem: Cannot close a tab page with the middle mouse button. +Solution: Support closing a tab page with the middle mouse button, like many + other programs. (closes #10746) + +Patch 9.0.0598 +Problem: Using negative array index with negative width window. +Solution: Make sure the window width does not become negative. + +Patch 9.0.0599 +Problem: Latexmkrc files are not recognized. +Solution: Use Perl filetype for latexmkrc files. (closes #11241) + +Patch 9.0.0600 +Problem: GYP files are not recognized. +Solution: Recognize GYP files. (closes #11242) + +Patch 9.0.0601 +Problem: Too much indent. +Solution: Return out early from a funtion. (Yegappan Lakshmanan, + close #11238) + +Patch 9.0.0602 +Problem: New TypeScript extensions are not recognized. +Solution: Recognize .mts and .cts files. (closes #11237) + +Patch 9.0.0603 +Problem: With 'nosplitscroll' folds are not handled correctly. +Solution: Take care of closed folds when moving the cursor. (Luuk van Baal, + closes #11234) + +Patch 9.0.0604 +Problem: Luacheckrc file is not recognized. +Solution: Use lua filetype for luacheckrc. (closes #11236) + +Patch 9.0.0605 +Problem: Dump file missing. +Solution: Add the missing dump file. (issue #11234) + +Patch 9.0.0606 +Problem: system() opens a terminal window when using the GUI and "!" is in + 'guioptions'. +Solution: Do not use a terminal window when the SHELL_SILENT flag is used. + (closes #11202) + +Patch 9.0.0607 +Problem: Verbose echo message test fails on Mac OS. +Solution: Skip the test on Mac OS. + +Patch 9.0.0608 +Problem: With spell checking, deleting a full stop at the end of a line + does not update SpellCap at the start of the next line. +Solution: Update the next line when characters have been deleted. Also when + using undo. + +Patch 9.0.0609 +Problem: Blockedit test fails because of wrong indent. +Solution: Adjust the expected text temporarily + +Patch 9.0.0610 +Problem: Global interrupt test fails when run under valgrind. +Solution: Use TermWait(). + +Patch 9.0.0611 +Problem: Tests delete files with a separate delete() call. +Solution: Use deferred delete. + +Patch 9.0.0612 +Problem: Blockedit test passes with wrong result. +Solution: Add a "vim9script" line to make indenting work. + +Patch 9.0.0613 +Problem: Running source tests leaves file behind. +Solution: Add the "D" flag to writefile(). (Dominique Pellé, closes #11243) + Also do this for other writefile() calls and drop delete(). + +Patch 9.0.0614 +Problem: SpellFileMissing autocmd may delete buffer. +Solution: Disallow deleting the current buffer to avoid using freed memory. + +Patch 9.0.0615 +Problem: Using reduce() on a list from range() is a bit slow. +Solution: Avoid materializing the list. + +Patch 9.0.0616 +Problem: Spell test fails because error message changed. +Solution: Adjust expected error message. + +Patch 9.0.0617 +Problem: Calling function for reduce() has too much overhead. +Solution: Only call clear_tv() when needed. + +Patch 9.0.0618 +Problem: Calling function for reduce() has too much overhead. +Solution: Do not create a funccall_T every time. + +Patch 9.0.0619 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0620 +Problem: matchaddpos() can only add up to 8 matches. +Solution: Allocate the array of positions. (closes #11248) + +Patch 9.0.0621 +Problem: Filetype test leaves file behind. +Solution: Add deferred delete flag to writefile(). (Dominique Pellé, + closes #11249) + +Patch 9.0.0622 +Problem: matchaddpos() can get slow when adding many matches. +Solution: Update the next available match ID when manually picking an ID and + remove check if the available ID can be used. (idea by Rick Howe) + +Patch 9.0.0623 +Problem: Error for modifying a const is not detected at compile time. +Solution: Add TTFLAG_CONST and check for it in add() and extend(). + +Patch 9.0.0624 +Problem: Leaking argument type array. +Solution: Add allocated memory to type_gap. + +Patch 9.0.0625 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0626 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0627 +Problem: "const" and "final" both make the type a constant. (Daniel + Steinberg) +Solution: Only have "const" make the type a constant. + +Patch 9.0.0628 +Problem: Coverity warns for not checking return value. +Solution: Check the return value and simplify the code. + +Patch 9.0.0629 +Problem: Get an error for using const only when executing. +Solution: Check for const at compile time for filter(), map(), remove(), + reverse(), sort() and uniq(). + +Patch 9.0.0630 +Problem: In Vim9 script a numbered function cannot be called. +Solution: Do not require "g:" before a numbered function name. + (closes #11254) + +Patch 9.0.0631 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0632 +Problem: Calling a function from an "expr" option has too much overhead. +Solution: Add call_simple_func() and use it for 'foldexpr' + +Patch 9.0.0633 +Problem: FEAT_TITLE was removed but is still used. +Solution: Remove FEAT_TITLE. (Naruhiko Nishino, closes #11256) + +Patch 9.0.0634 +Problem: Evaluating "expr" options has more overhead than needed. +Solution: Use call_simple_func() for 'foldtext', 'includeexpr', 'printexpr', + "expr" of 'spellsuggest', 'diffexpr', 'patchexpr', 'balloonexpr', + 'formatexpr', 'indentexpr' and 'charconvert'. + +Patch 9.0.0635 +Problem: Build error and compiler warnings. +Solution: Add missing change. Add type casts. + +Patch 9.0.0636 +Problem: Underline color does not work in terminals that don't send a + termresponse. +Solution: Do output t_8u if it was set explicitly. (closes #11253) + +Patch 9.0.0637 +Problem: Syntax of commands in Vim9 script depends on +eval feature. +Solution: Use same syntax with and without the +eval feature. + +Patch 9.0.0638 +Problem: Popup menu highlight wrong on top of preview popup. (Yegappan + Lakshmanan) +Solution: Also check for the popup menu in screen_line(). + +Patch 9.0.0639 +Problem: Checking for popup in screen_char() is too late, the attribute has + already been changed. +Solution: Move check for popup to where screen_char() is called. + +Patch 9.0.0640 +Problem: Cannot scroll by screen line if a line wraps. +Solution: Add the 'smoothscroll' option. Only works for CTRL-E and CTRL-Y + so far. + +Patch 9.0.0641 +Problem: Missing part of the new option code. +Solution: Add missing WV_SMS. + +Patch 9.0.0642 +Problem: Breakindent test fails. +Solution: Correct logic for resetting need_showbreak. + +Patch 9.0.0643 +Problem: Smoothscroll test fails. +Solution: Check if skipcol changed. + +Patch 9.0.0644 +Problem: 'smoothscroll' is not copied to a new window on :split. +Solution: Copy the option value. Add a test. + +Patch 9.0.0645 +Problem: CTRL-Y does not stop at line 1. (John Marriott) +Solution: Stop at line 1 when 'smoothscroll' is not set. (closes #11261) + +Patch 9.0.0646 +Problem: with 'smoothscroll' set CTRL-E does not work properly when + 'foldmethod' is set to "indent". (Yee Cheng Chin) +Solution: Merge the code for scroling with folds and 'smoothscroll'. + (closes #11262) + +Patch 9.0.0647 +Problem: The 'splitscroll' option is not a good name. +Solution: Rename 'splitscroll' to 'splitkeep' and make it a string option, + also supporting "topline". (Luuk van Baal, closes #11258) + +Patch 9.0.0648 +Problem: When using powershell input redirection does not work. +Solution: Use a different shell command for powershell. (Yegappan + Lakshmanan, closes #11257) + +Patch 9.0.0649 +Problem: No indication when the first line is broken for 'smoothscroll'. +Solution: Show "<<<" in the first line. + +Patch 9.0.0650 +Problem: Some tests are failing. +Solution: Adjust for "<<<" showing up. + +Patch 9.0.0651 +Problem: Build fails without the +conceal feature. +Solution: Rename called function. + +Patch 9.0.0652 +Problem: 'smoothscroll' not tested with 'number' and "n" in 'cpo'. +Solution: Add tests, fix uncovered problem. + +Patch 9.0.0653 +Problem: BS and DEL do not work properly in an interacive shell. (Gary + Johnson) +Solution: Adjust the length for replaced codes. + +Patch 9.0.0654 +Problem: Breakindent test fails. +Solution: Temporarily accept wrong result. + +Patch 9.0.0655 +Problem: passing modifier codes to a shell running in the GUI. (Gary + Johnson) +Solution: Include modifier codes into the key and drop the modifiers. + +Patch 9.0.0656 +Problem: Cannot specify another character to use instead of '@' at the end + of the window. +Solution: Add "lastline" to 'fillchars'. (Martin Tournoij, closes #11264, + closes #10963) + +Patch 9.0.0657 +Problem: Too many #ifdefs. +Solution: Graduate the +cmdwin feature. Now the tiny and small builds are + equal, drop the small build. (Martin Tournoij, closes #11268) + +Patch 9.0.0658 +Problem: Tiny build fails on Mac OS. +Solution: Define FEAT_CLIPBOARD only for normal build. + +Patch 9.0.0659 +Problem: Wrong type of comment in SetSyn() function. +Solution: Use Vim9 comment. (closes #11278) + +Patch 9.0.0660 +Problem: Mapping with CTRL keys does not work in the GUI. +Solution: Recognize CSI next to K_SPECIAL. (closes #11275, closes #11270) + +Patch 9.0.0661 +Problem: Multi-byte "lastline" item in 'fillchars' does not work properly + when the window is two columns wide. +Solution: Compute the text length correctly. (closes #11280) + +Patch 9.0.0662 +Problem: Concealed characters do not work correctly. +Solution: Subtract boguscols instead of adding them. (closes #11273) + +Patch 9.0.0663 +Problem: Tests check for +cmdwin feature which is always present. +Solution: Remove the checks. (closes #11287) + +Patch 9.0.0664 +Problem: Bad redrawing with spell checking, using "C" and "$" in 'cpo'. +Solution: Do not redraw the next line when "$" is in 'cpo'. (closes #11285) + +Patch 9.0.0665 +Problem: Setting 'cmdheight' has no effect if last window was resized. +Solution: Do apply 'cmdheight' when told to. Use the frame height instead + of the cmdline_row. (closes #11286) + +Patch 9.0.0666 +Problem: Spacing-combining characters handled as composing, causing text to + take more space than expected. +Solution: Handle characters marked with "Mc" not as composing. + (closes #11282 + +Patch 9.0.0667 +Problem: ml_get error when 'splitkeep' is "screen". (Marius Gedminas) +Solution: Check the botline is not too large. (Luuk van Baal, + closes #11293, closes #11292) + +Patch 9.0.0668 +Problem: CI on Mac M1 only uses clang +Solution: Also run with gcc. (closes #11263) + +Patch 9.0.0669 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0670 +Problem: No space for command line when there is a tabline. +Solution: Correct computation of where the command line should be. + (closes #11295) + +Patch 9.0.0671 +Problem: Negative topline using CTRL-Y with 'smoothscroll' and 'diff'. + (Ernie Rael) +Solution: Only use 'smoothscroll' when 'wrap' is set. + +Patch 9.0.0672 +Problem: Cursor line only partly shows with 'smoothscroll' and 'scrolloff' + zero. +Solution: Do not use 'smoothscroll' when adjusting the bottom of the window. + (closes #11269) + +Patch 9.0.0673 +Problem: First line not scrolled properly with 'smoothscroll' and + 'scrolloff' zero and using "k". +Solution: Make sure the cursor position is visible. + +Patch 9.0.0674 +Problem: Build error with tiny version. +Solution: Use PLINES_NOFILL macro. + +Patch 9.0.0675 +Problem: Search test screendump is outdated. +Solution: Update the screendump for improved display. + +Patch 9.0.0676 +Problem: CI on Mac M1 with gcc actually uses clang. +Solution: Remove the gcc task. (Ozaki Kiichi, closes #11297) + +Patch 9.0.0677 +Problem: Breakindent test accepts wrong result. +Solution: Fix the number column and adjust the expected text. + +Patch 9.0.0678 +Problem: Using exclamation marks on :function. +Solution: Use :func and :endfunc as usual. + +Patch 9.0.0679 +Problem: Tests failing with 'smoothscroll', 'number' and "n" in 'cpo'. +Solution: Do not count number column in topline if columns are skipped. + +Patch 9.0.0680 +Problem: Tests failing with 'breakindent', 'number' and "n" in 'cpo'. +Solution: Do count the number column in topline if 'breakindent' is set. + +Patch 9.0.0681 +Problem: "<<<" shows for 'smoothscroll' even when 'showbreak is set. +Solution: When 'showbreak' is set do not display "<<<". + +Patch 9.0.0682 +Problem: Crash when popup with deleted timer is closed. (Igbanam + Ogbuluijah) +Solution: Check the timer still exists. (closes #11301) + +Patch 9.0.0683 +Problem: Cannot specify a time for :echowindow. +Solution: A count can be used to specify the display time. Add + popup_findecho(). + +Patch 9.0.0684 +Problem: Skipped :exe command fails compilation on MS-Windows. +Solution: Adjust return value when skipping. + +Patch 9.0.0685 +Problem: FORTIFY_SOURCE causes a crash in Vim9 script. +Solution: Use a pointer to the first char. (Yee Cheng Chin, closes #11302) + +Patch 9.0.0686 +Problem: The right ALT key does not work on some MS-Windows keyboards. +Solution: Adjust the modifiers based on GetKeyState(). (Anoton Sharonov, + closes #11300) + +Patch 9.0.0687 +Problem: "export def" does not work in a nested block. +Solution: Do not handle "export" with a separate function but in the same + command stack. (closes #11304) + +Patch 9.0.0688 +Problem: Debugger does not display the whole command. +Solution: Set ea.cmd before checking for a breakpoint. + +Patch 9.0.0689 +Problem: Compiler warning for unused function. +Solution: Add #ifdef. (John Marriott) + +Patch 9.0.0690 +Problem: Buffer size for expanding tab not correctly computed. +Solution: Correctly use size of end character. + +Patch 9.0.0691 +Problem: lalloc(0) error in listchars test. +Solution: Skip generating text for tab if tab_len is zero. + +Patch 9.0.0692 +Problem: PoE filter files are not recognized. +Solution: Add a pattern to detect PoE filter files. (closes #11305) + +Patch 9.0.0693 +Problem: browse() first argument cannot be a bool. +Solution: Use tv_get_bool_chk() instead of tv_get_number_chk(). + (closes #11308) + +Patch 9.0.0694 +Problem: No native sound support on Mac OS. +Solution: Add sound support for Mac OS. (Yee Cheng Chin, closes #11274) + +Patch 9.0.0695 +Problem: Failing check for dictionary type for const any. +Solution: Check for any type properly. (closes #11310) + +Patch 9.0.0696 +Problem: It is unclear if the +rightleft and +arabic features are actively + being used. +Solution: Disable the features, await feedback. + +Patch 9.0.0697 +Problem: Cursor in wrong position with Visual substitute. +Solution: When restoring 'linebreak' mark the virtual column as invalid. + (closes #11309, closes #11311) + +Patch 9.0.0698 +Problem: VisVim is outdated, does not work with current Visual Studio. +Solution: Remove VisVim. (Martin Tournoij) + +Patch 9.0.0699 +Problem: Tiny build fails. +Solution: Add #ifdef. + +Patch 9.0.0700 +Problem: There is no real need for a "big" build. +Solution: Move common features to "normal" build, less often used features + to the "huge" build. (Martin Tournoij, closes #11283) + +Patch 9.0.0701 +Problem: With 'smoothscroll' the cursor position s not adjusted in a long + line. +Solution: Move the cursor further up or down in the line. + +Patch 9.0.0702 +Problem: Incomplete testing cursor position after change with 'linebreak' + set. +Solution: Add a test and move test cases together. (closes #11313) + +Patch 9.0.0703 +Problem: Failing check for argument type for const any. +Solution: Check for any type properly. (closes #11316) + +Patch 9.0.0704 +Problem: CI runs "tiny" and "small" builds, which are the same. +Solution: Remove the "small" build. (Naruhiko Nishino, closes #11315) + +Patch 9.0.0705 +Problem: Virtual text truncation does not take padding into account. +Solution: Subtract the padding from the available space. (closes #11318) + +Patch 9.0.0706 +Problem: :help in a narrow window always opens at the top. +Solution: Respect 'splitbelow'. (closes #11319) + +Patch 9.0.0707 +Problem: With 'smoothscroll' and 'scrolloff' non-zero the cursor position + is not properly adjusted in a long line. +Solution: Move the cursor further up or down in the line. + +Patch 9.0.0708 +Problem: :confirm does not work properly for a terminal buffer. +Solution: Handle :confirm for a terminal buffer differently. (Yee Cheng + Chin, closes #11312) + +Patch 9.0.0709 +Problem: Virtual text "after" not correct with 'nowrap'. +Solution: Do not display "after" text prop on the next line when 'wrap' is + off. + +Patch 9.0.0710 +Problem: Quitting/unloading/hiding a terminal buffer does not always work + properly. +Solution: Avoid that ":q!" leaves an empty buffer behind. ":bunload!" also + kills the job and unloads the buffer. ":hide" does not unload the + buffer. (Yee Cheng Chin, closes #11323) + +Patch 9.0.0711 +Problem: SubStation Alpha files are not recognized. +Solution: Add patterns for SubStation Alpha files. (closes #11332) + +Patch 9.0.0712 +Problem: Wrong column when calling setcursorcharpos() with zero lnum. +Solution: Set the line number before calling buf_charidx_to_byteidx(). + (closes #11329) + +Patch 9.0.0713 +Problem: of MenuPopup event is expanded like a file name. +Solution: Do not expand for MenuPopup. (closes #11328) + +Patch 9.0.0714 +Problem: With 'nowrap' two virtual text below not displayed correctly. +Solution: Set text_prop_follows before continuing. Correct for number + column. (closes #11333) + +Patch 9.0.0715 +Problem: Wrong argument for append() gives two error messages. +Solution: When getting an error for a number argument don't try using it as + a string. (closes #11335) + +Patch 9.0.0716 +Problem: With 'nowrap' virtual text "after" does not scroll left. +Solution: Skip part of the virtual text that is left of the window. + (closes #11320) Fix going beyond the last column of the window. + +Patch 9.0.0717 +Problem: Compiler warning for unused variable in tiny build. +Solution: Add #ifdefs. + +Patch 9.0.0718 +Problem: Extra empty line between two virtual text "below" when 'wrap' and + 'number' are set. +Solution: Reset "before" when there is no text in the screen line. + (closes #11334) + +Patch 9.0.0719 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0720 +Problem: MS-Windows GUI may have pixel dust from antialiasing. +Solution: When a character changes also redraw the next one. (issue #8532) + +Patch 9.0.0721 +Problem: Virtual text "above" with padding not displayed correctly. +Solution: Take padding into account when truncating. (closes #11340) + +Patch 9.0.0722 +Problem: Virtual text "after" does not show with 'list' set. +Solution: Do not break out of the loop when another text prop follows. + (closes #11337) + +Patch 9.0.0723 +Problem: Extra empty line below virtual text when 'list' is set. +Solution: Do not reset lcs_eol_one but set text_prop_follows. (closes #11339) + +Patch 9.0.0724 +Problem: Closure in compiled function gets same variable in block. +Solution: At the end of a block to not always reset the variable count. + (issue #11094) + +Patch 9.0.0725 +Problem: Virtual text "after" wraps to next line even when 'wrap' is off + and 'list' is set. +Solution: Do not use the minimum width when 'wrap' is off. (issue #11336) + +Patch 9.0.0726 +Problem: Looping over list of lists and changing the list contents works in + Vim9 script, not in a compiled function. +Solution: Mark the loop variable final instead of const. (closes #11347) + +Patch 9.0.0727 +Problem: Help in the repository differs from patched version too much. +Solution: Make a patch for a few help files. + +Patch 9.0.0728 +Problem: extend() test fails. +Solution: Item is final, not const. + +Patch 9.0.0729 +Problem: The rightleft and arabic features are disabled. +Solution: Re-enable the features, some users want to use the functionality. + +Patch 9.0.0730 +Problem: Startup test fails with right-left feature. +Solution: Do not delete test file too early. + +Patch 9.0.0731 +Problem: clang-tidy configuration files are not recognized. +Solution: Recognize clang-tidy files as yaml. (closes #11350) + +Patch 9.0.0732 +Problem: No check for white space before and after "=<<". (Doug Kearns) +Solution: Check for white space in Vim9 script. (closes #11351) + +Patch 9.0.0733 +Problem: Use of strftime() is not safe. +Solution: Check the return value of strftime(). Use a larger buffer and + correctly pass the available space. (Dominique Pellé, closes + #11348) + +Patch 9.0.0734 +Problem: Cursor position invalid when scrolling with 'smoothscroll' set. + (Ernie Rael) +Solution: Add w_valid_skipcol and clear flags when it changes. Adjust + w_skipcol after moving the cursor. + +Patch 9.0.0735 +Problem: Breakindent and scrolloff tests fail. +Solution: Temporarily skip the assertions. + +Patch 9.0.0736 +Problem: Quickfix listing does not handle very long messages. +Solution: Use a growarray instead of a fixed size buffer. (Yegappan + Lakshmanan, closes #11357) + +Patch 9.0.0737 +Problem: Lisp word only recognized when a space follows. +Solution: Also match a word at the end of a line. Rename the test. Use a + compiled function to avoid backslashes. + +Patch 9.0.0738 +Problem: Cannot suppress completion "scanning" messages. +Solution: Add the "C" flag in 'shortmess'. (Bjorn Linse, closes #11354) + +Patch 9.0.0739 +Problem: Mouse column not correctly used for popup_setpos. +Solution: Adjust off-by-one error and handle Visual line selection properly. + (Yee Cheng Chin, closes #11356) + +Patch 9.0.0740 +Problem: prop_add_list() gives multiple errors for invalid argument. +Solution: Only give one error message. + +Patch 9.0.0741 +Problem: Cannot specify an ID for each item with prop_add_list(). (Sergey + Vlasov) +Solution: Add an optional fifth number to the item. (closes #11360) + +Patch 9.0.0742 +Problem: Reading past end of the line when compiling a function with + errors. +Solution: Do not return an invalid pointer. Fix skipping redirection. + +Patch 9.0.0743 +Problem: Starting cscope on Unix does not quote the arguments correctly. + (Gary Johnson) +Solution: Move the final quote after the arguments. + +Patch 9.0.0744 +Problem: In script in autoload dir exported variable is not found. (Doug + Kearns) +Solution: Find the variable with the "script#" prefix. (closes #11361) + +Patch 9.0.0745 +Problem: Wrong cursor position when using "gj" and "gk" in a long line. +Solution: Adjust computations for the cursor position and skipcol. Re-enable + tests that pass now, disable failing breakindent test. + +Patch 9.0.0746 +Problem: Breakindent test cases are commented out. +Solution: Adjust expected result to slightly different behavior. Correct + computations for cursor position. + +Patch 9.0.0747 +Problem: Too many #ifdefs. +Solution: Gradudate the +cmdline_info feature. (Martin Tournoij, + closes #11330) + +Patch 9.0.0748 +Problem: Kitty may send key without modifiers with CSI u code. +Solution: Handle CSI u code without modifiers. (Trygve Aaberge, + closes #11364) + +Patch 9.0.0749 +Problem: Alloc/free of buffer for each quickfix entry is inefficient. +Solution: Use a shared grow array. (Yegappan Lakshmanan, closes #11365) + +Patch 9.0.0750 +Problem: Crash when popup closed in callback. (Maxim Kim) +Solution: In syntax_end_parsing() check that syn_block is valid. + +Patch 9.0.0751 +Problem: 'scrolloff' does not work well with 'smoothscroll'. +Solution: Make positioning the cursor a bit better. Rename functions. + +Patch 9.0.0752 +Problem: Rprofile files are not recognized. +Solution: Recognize Rprofile files as "r". (closes #11369) + +Patch 9.0.0753 +Problem: Some Ex commands are not in the help index. +Solution: Add the missing commands. Add a script to check all Ex commands + are in the help index. (Yee Cheng Chin, closes #11371) + +Patch 9.0.0754 +Problem: 'indentexpr' overrules lisp indenting in one situation. +Solution: Add "else" to keep the lisp indent. (issue #11327) + +Patch 9.0.0755 +Problem: Huge build on macos always fails on CI. +Solution: Temporarily disable the perl interface. + +Patch 9.0.0756 +Problem: No autocmd event for changing text in a terminal window. +Solution: Add TextChangedT. (Shougo Matsushita, closes #11366) + +Patch 9.0.0757 +Problem: Line number not visisble with 'smoothscroll', 'nu' and 'rnu'. +Solution: Put the ">>>" after the line number instead of on top. + +Patch 9.0.0758 +Problem: "precedes" from 'listchars' overwritten by <<< for 'smoothscroll'. +Solution: Keep the "precedes" character. + +Patch 9.0.0759 +Problem: Huge build on macos does not use Perl. +Solution: Re-enable the Perl interface using "dynamic". (closes #11375) + +Patch 9.0.0760 +Problem: Display test for 'listchars' "precedes" fails. +Solution: Correct the expected result. + +Patch 9.0.0761 +Problem: Cannot use 'indentexpr' for Lisp indenting. +Solution: Add the 'lispoptions' option. + +Patch 9.0.0762 +Problem: Build failure. +Solution: Add missing change. + +Patch 9.0.0763 +Problem: MS-Windows: warning for using int for size_t. +Solution: Declare variable as size_t. + +Patch 9.0.0764 +Problem: Indent and option tests fail. +Solution: Change OP_INDENT. Add entry to options test table. + +Patch 9.0.0765 +Problem: With a Visual block a put command column may go negative. +Solution: Check that the column does not become negative. + +Patch 9.0.0766 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0767 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0768 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0769 +Problem: Too many delete() calls in tests. +Solution: Use deferred delete where possible. + +Patch 9.0.0770 +Problem: Quickfix commands may keep memory allocated. +Solution: Free memory when it's a bit much. (Yegappan Lakshmanan, + closes #11379) + +Patch 9.0.0771 +Problem: Cannot always tell the difference beween tex and rexx files. +Solution: Recognize tex by a leading backslash. (Martin Tournoij, + closes #11380) + +Patch 9.0.0772 +Problem: The libvterm code is outdated. +Solution: Include libvterm changes from revision 790 to 801. + +Patch 9.0.0773 +Problem: Huge build on macos uses dynamic Perl. +Solution: Use built-in Perl, uninstall the brew one. (closes #11382) + +Patch 9.0.0774 +Problem: The libvterm code is outdated. +Solution: Include libvterm changes from revision 802 to 817. Revert some + changes made for C89. + +Patch 9.0.0775 +Problem: MS-Windows: mouse scrolling not supported in the console. +Solution: Add event handling for mouse scroll events. (Christopher + Plewright, closes #11374) + +Patch 9.0.0776 +Problem: MSVC can't have field name "small". +Solution: Rename small to smallfont. + +Patch 9.0.0777 +Problem: Code is indented too much. +Solution: Use an early return. (Yegappan Lakshmanan, closes #11386) + +Patch 9.0.0778 +Problem: Indexing of unknown const type fails during compilation. +Solution: Check for "any" properly. (closes #11389) + +Patch 9.0.0779 +Problem: lsl and lm3 file extensions are not recognized. +Solution: Add *.lsl and *.lm3 patterns. (Doug Kearns, closes #11384) + +Patch 9.0.0780 +Problem: 'scroll' value computed in unexpected location. +Solution: Compute 'scroll' when the window height is changed. (Luuk van + Baal, closes #11387) + +Patch 9.0.0781 +Problem: Workaround to rename "small" to "smallfont" is clumsy. +Solution: Undefine "small" after including windows.h. (Ken Takata) + +Patch 9.0.0782 +Problem: OpenVPN files are not recognized. +Solution: Add patterns for OpenVPN files. (closes #11391) + +Patch 9.0.0783 +Problem: ":!" doesn't do anything but does update the previous command. +Solution: Do not have ":!" change the previous command. (Martin Tournoij, + closes #11372) + +Patch 9.0.0784 +Problem: Text prop "above" not displayed correctly with 'number' and "n" in + 'cpo'. +Solution: Draw the line number column until the line text is reached. + +Patch 9.0.0785 +Problem: Memory leak with empty shell command. +Solution: Free the allocated memory when bailing out. + +Patch 9.0.0786 +Problem: User command does not get number from :tab modifier. +Solution: Include the number. (closes #11393, closes #6801) + +Patch 9.0.0787 +Problem: MS-Windows: mouse scrolling in terminal misbehaves without dll. +Solution: Add #ifdef as a temporary solution. (Christopher Plewright, + closes #11392) + +Patch 9.0.0788 +Problem: ModeChanged autocmd not executed when Visual mode is ended with + CTRL-C. +Solution: Do not trigger the autocmd when got_int is set. (closes #11394) + +Patch 9.0.0789 +Problem: Dummy buffer ends up in a window. +Solution: Disallow navigating to a dummy buffer. + +Patch 9.0.0790 +Problem: Test for dummy buffer does not always produce the E86 error. +Solution: Do not check if the error is produced. + +Patch 9.0.0791 +Problem: At the hit-Enter prompt the End and Home keys may not work. +Solution: Use the special "@" code for End and Home, like it was done for + the cursor keys in patch 8.2.2246. (Trygve Aaberge, closes #11396) + +Patch 9.0.0792 +Problem: MS-Windows: compiler complains about unused function. +Solution: Add #ifdef. (John Marriott) + +Patch 9.0.0793 +Problem: MS-Windows: mouse scroll events only work with the dll. +Solution: Accept CSI codes for MS-Windows without the GUI. (Christopher + Plewright, closes #11401) + +Patch 9.0.0794 +Problem: There is no way to find out if an escape sequence with + modifyOtherKeys has been seen. +Solution: Add a notice with ":verbose map". + +Patch 9.0.0795 +Problem: readblob() always reads the whole file. +Solution: Add arguments to read part of the file. (Ken Takata, + closes #11402) + +Patch 9.0.0796 +Problem: Mapping test fails in some situations. +Solution: Find the line with the verbose information. + +Patch 9.0.0797 +Problem: Order of assert function arguments is reverted. +Solution: Swap the arguments. (closes #11399) + +Patch 9.0.0798 +Problem: Clang format configuration files are not recognized. +Solution: Use yaml for Clang format configuration files. (Marwin Glaser, + closes #11398) + +Patch 9.0.0799 +Problem: In compiled function ->() on next line not recognized. +Solution: Also check for "(". (closes #11405) + +Patch 9.0.0800 +Problem: Compiler complains about repeated typedef. +Solution: Remove one typedef. + +Patch 9.0.0801 +Problem: The modifyOtherKeys flag is set when it should not. +Solution: Do not handle special key codes with a modifer value above 16 as a + modifyOtherKeys value. (issue #11403) + +Patch 9.0.0802 +Problem: MS-Windows: cannot map console mouse scroll events. +Solution: Change CSI to K_SPECIAL when checking for a mapping. (Christopher + Plewright, closes #11410) + +Patch 9.0.0803 +Problem: readblob() cannot read from character device. +Solution: Use S_ISCHR() to not check the size. (Ken Takata, closes #11407) + +Patch 9.0.0804 +Problem: Crash when trying to divice the largest negative number by -1. +Solution: Handle this case specifically. + +Patch 9.0.0805 +Problem: Filetype autocmd may cause freed memory access. +Solution: Set the quickfix-busy flag while filling the buffer. + +Patch 9.0.0806 +Problem: 'langmap' works differently when there are modifiers. +Solution: Only apply 'langmap' to a character where modifiers have no + effect. (closes #11395, closes #11404) + +Patch 9.0.0807 +Problem: With 'smoothscroll' typing "0" may not go to the first column. +Solution: Recompute w_cline_height when needed. Do not scroll up when it + would move the cursor. + +Patch 9.0.0808 +Problem: jsonnet filetype detection has a typo. +Solution: Change "libjsonnet" to "libsonnet". (Maxime Brunet, closes #11412) + +Patch 9.0.0809 +Problem: Test for job writing to buffer fails. +Solution: Correct w_topline when deleting a buffer line. + +Patch 9.0.0810 +Problem: readblob() returns empty when trying to read too much. +Solution: Return what is available. + +Patch 9.0.0811 +Problem: Error if :echowin is preceded by a command modifier. +Solution: Do not give an error for range when there is a modifier. + (closes #11414) + +Patch 9.0.0812 +Problem: GUI mouse scrollwheel mappings don't work. +Solution: Add check for "gui.in_use". (Christopher Plewright, closes #11418) + +Patch 9.0.0813 +Problem: Kitty terminal is not recognized. +Solution: Recognize Kitty by the termresponse and then do not set + seenModifyOtherKeys, since Kitty doesn't support that. + (issue #11413) + +Patch 9.0.0814 +Problem: Aws config files are not recognized. +Solution: Use "confini" for aws config files. (Justin M. Keyes, + closes #11416) + +Patch 9.0.0815 +Problem: ":!" does not switch to the alternate screen. +Solution: For ":!" don't clear the previous command. (closes #11420, + closes #11409) + +Patch 9.0.0816 +Problem: CTRL-Z at end of file is always dropped. +Solution: Add the 'endoffile' option, like the 'endofline' option. + (closes #11408, closes #11397) + +Patch 9.0.0817 +Problem: Build error. +Solution: correct variable name. + +Patch 9.0.0818 +Problem: "!ls" does not work. +Solution: Do not free memory that is in use. + +Patch 9.0.0819 +Problem: Still a build error, tests are failing. +Solution: Correct recent changes. Add missing init for 'eof'. + +Patch 9.0.0820 +Problem: Memory leak with empty shell command. +Solution: Free the empty string. + +Patch 9.0.0821 +Problem: Memory leak with empty shell command. +Solution: Free the empty string. + +Patch 9.0.0822 +Problem: Crash when dragging the statusline with a mapping. +Solution: Check for valid window pointer. (issue #11427) + +Patch 9.0.0823 +Problem: Mouse drag test fails. +Solution: Only reset the mouse click flag when actually switching to another + tab page. Disable test that keeps failing. + +Patch 9.0.0824 +Problem: Crash when using win_move_separator() in other tab page. +Solution: Check for valid window in current tab page. + (closes #11479, closes #11427) + +Patch 9.0.0825 +Problem: Cannot drag an entry in the tabpage line. +Solution: Clear dragwin instead of got_click. (closes #11483, + closes #11482) + +Patch 9.0.0826 +Problem: If 'endofline' is set the CTRL-Z may be written in the wrong + place. +Solution: Write CTRL-Z at the end of the file. Update the help to explain + the possibilities better. (Ken Takata, closes #11486) + +Patch 9.0.0827 +Problem: The key in tmux doesn't work when 'term' is set to "xterm". + (Dominique Pellé) +Solution: Only use '@' in a termcap key entry for "1" when ";" follows. + (closes #11429) + +Patch 9.0.0828 +Problem: Various typos. +Solution: Correct typos. (closes #11432) + +Patch 9.0.0829 +Problem: Wrong counts in macro comment. +Solution: Update the value counts. (closes #11480) + +Patch 9.0.0830 +Problem: Compiling with Perl on Mac 12 fails. +Solution: Suppress infinite warnings. (closes #11499) + +Patch 9.0.0831 +Problem: Compiler warning for redefining HAVE_DUP. +Solution: Undefine HAVE_DUP if needed. (Ozaki Kiichi, closes #11484) + +Patch 9.0.0832 +Problem: Deprecation warning causes build failure. +Solution: Suppress deprecation warning. (closes #11503) + +Patch 9.0.0833 +Problem: Mac: no +sound feature in huge build. +Solution: Enable +sound in Mac huge build. (closes #11497) + +Patch 9.0.0834 +Problem: Warning for missing return type. +Solution: Add "int". (San James, closes #11496) + +Patch 9.0.0835 +Problem: The window title is not redrawn when 'endoffile' changes. +Solution: redraw the window title when 'endoffile' is changed. (Ken Takata, + closes #11488) + +Patch 9.0.0836 +Problem: Wrong error when using extend() with funcref. +Solution: Better check the variable type. (closes #11468, closes #11455) + +Patch 9.0.0837 +Problem: append() reports failure when not appending anything. +Solution: Only report failure when appending something. (closes #11498) + +Patch 9.0.0838 +Problem: Compiler warnings for unused variables. +Solution: Addjust #ifdef and remove unused variables. (John Marriott) + +Patch 9.0.0839 +Problem: Test may fail depending on sequence of events. +Solution: Accept error codes in either order. (Yee Cheng Chin, + closes #11510) + +Patch 9.0.0840 +Problem: Cannot change a slice of a const list. (Takumi KAGIYAMA) +Solution: Remove the const flag from the slice type. (closes #11490) + +Patch 9.0.0841 +Problem: deletebufline() does not always return 1 on failure. +Solution: Refactor the code to make it work more predictable. (closes #11511) + +Patch 9.0.0842 +Problem: Unicode range for Apple SF symbols is outdated. +Solution: Update to SF Symbols 4. (Yee Cheng Chin, closes #11474) + +Patch 9.0.0843 +Problem: VHS tape files are not recognized. +Solution: Add a filetype pattern. (Carlos Alexandro Becker, closes #11452) + +Patch 9.0.0844 +Problem: Handling 'statusline' errors is spread out. +Solution: Pass the option name to the lower levels so the option can be + reset there when an error is encountered. (Luuk van Baal, + closes #11467) + +Patch 9.0.0845 +Problem: Shell command with just space gives strange error. +Solution: Skip white space at start of the argument. (Christian Brabandt, + Shane-XB-Qian, closes #11515, closes #11495) + +Patch 9.0.0846 +Problem: Using assert_fails() may cause hit-enter prompt. +Solution: Set no_wait_return. (closes #11522) + +Patch 9.0.0847 +Problem: CI: not totally clear what MS-Windows version is used. +Solution: Show the Windows version. (Ken Takata, closes #11524) + +Patch 9.0.0848 +Problem: Help item for --log argument is not aligned nicely. +Solution: Add a Tab. (Ken Takata, closes #11521) + +Patch 9.0.0849 +Problem: Terminal mouse test is a bit flaky. +Solution: Add WaitFor() calls. (James McCoy closes #11519) Tune wait times + to reduce flakiness. + +Patch 9.0.0850 +Problem: MS-Windows Terminal has unstable color control. +Solution: Do not try to read the old command prompt colortable, use modern + VT sequences. (Christopher Plewright, closes #11450, + closes #11373) + +Patch 9.0.0851 +Problem: Terminal mouse test is still flaky. +Solution: Also use WaitForAssert(). + +Patch 9.0.0852 +Problem: Crypt test is skipped if xxd is not found. +Solution: Find xxd where it was supposed to be build. + +Patch 9.0.0853 +Problem: Terminal mouse test is still flaky on MacOS M1. +Solution: Also wait for the file to have some contents. + +Patch 9.0.0854 +Problem: No proper test for what 9.0.0846 fixes. +Solution: Run test in a terminal so that the hit-enter prompt can show up. + (closes #11523) + +Patch 9.0.0855 +Problem: Comment not located above the code it refers to. +Solution: Move the comment. (closes #11527) + +Patch 9.0.0856 +Problem: MS-Windows: executable not found when running individual test. +Solution: Also look for vimd.exe. (Christopher Plewright, closes #11525) + +Patch 9.0.0857 +Problem: Selecting MSVC 2017 does not set $PLATFORM. +Solution: Use $VSCMD_ARG_TGT_ARCH. (Ken Takata, closes #11485) + +Patch 9.0.0858 +Problem: "!!sort" in a closed fold sorts too many lines. +Solution: Round to end of fold after adding the line count. (closes #11487) + +Patch 9.0.0859 +Problem: Compiler warning for unused variable. +Solution: Add #ifdef. + +Patch 9.0.0860 +Problem: MS-Windows: windres fails with clang 15.0.4. +Solution: Use llvm-windres. (John Marriott) + +Patch 9.0.0861 +Problem: Solution for "!!sort" in closed fold is not optimal. +Solution: Use a different range instead of the subtle difference in handling + a range with an offset. (issue #11487) + +Patch 9.0.0862 +Problem: Default value of 'endoffile' is wrong. +Solution: The default must be 'noendoffile'. + +Patch 9.0.0863 +Problem: col() and charcol() only work for the current window. +Solution: Add an optional winid argument. (Yegappan Lakshmanan, + closes #11466, closes #11461) + +Patch 9.0.0864 +Problem: Crash when using "!!" without a previous shell command. +Solution: Check "prevcmd" is not NULL. (closes #11487) + +Patch 9.0.0865 +Problem: Duplicate arguments are not always detected. +Solution: Expand to full path before comparing arguments. (Nir Lichtman, + closes #11505, closes #9402) + +Patch 9.0.0866 +Problem: No test for what patch 8.2.2207 fixes. +Solution: Add a test case. (closes #11531) + +Patch 9.0.0867 +Problem: Wildmenu redrawing code is spread out. +Solution: Refactor to move code together. (closes #11528) + +Patch 9.0.0868 +Problem: MS-Windows: after Vim exits console resizing does not work + properly. +Solution: Restore screen behavior checks for various WT and VTP + combinations. (Christopher Plewright, closes #11526, + closes #11507) + +Patch 9.0.0869 +Problem: Bogus error when string used after :elseif. +Solution: Do not consider a double quote the start of a comment. + (closes #11534) + +Patch 9.0.0870 +Problem: Get E967 when using text property in quickfix window. (Sergey + Vlasov) +Solution: Do not add an extra NUL and compute the text length correctly. + (closes #11513) + +Patch 9.0.0871 +Problem: Using freed memory when clearing augroup at more prompt. +Solution: Delay clearing augroup until it's safe. (closes #11441) + +Patch 9.0.0872 +Problem: Code is indented more than needed. +Solution: Return early. (Yegappan Lakshmanan, closes #11538) + +Patch 9.0.0873 +Problem: Using freed memory when executing mapclear at the more prompt. +Solution: Do not clear mappings while listing them. (closes #11438) + +Patch 9.0.0874 +Problem: Using freed memory when executing unmenu at the more prompt. +Solution: Do not clear menus while listing them. (closes #11439) + +Patch 9.0.0875 +Problem: Using freed memory when executing delfunc at the more prompt. +Solution: Check function list not changed in another place. (closes #11437) + +Patch 9.0.0876 +Problem: Code is indented more than needed. +Solution: Split ExpandEscape() in two. (Yegappan Lakshmanan, closes #11539) + +Patch 9.0.0877 +Problem: Using freed memory with :comclear while listing commands. +Solution: Bail out when the command list has changed. (closes #11440) + +Patch 9.0.0878 +Problem: Coverity warns for dead code. +Solution: Remove the dead code. + +Patch 9.0.0879 +Problem: Unnecessary nesting in makefile. +Solution: Join "else" and "ifeq". (Ken Takata, closes #11547) + +Patch 9.0.0880 +Problem: Preprocessor indenting is off. +Solution: Adjust preprocessor indentation. (Ken Takata, closes #11546) + +Patch 9.0.0881 +Problem: Cannot get the currently showing mouse shape. +Solution: Add getmouseshape(). + +Patch 9.0.0882 +Problem: Using freed memory after SpellFileMissing autocmd uses bwipe. +Solution: Bail out if the window no longer exists. + +Patch 9.0.0883 +Problem: A silent mapping may cause dots on the command line. +Solution: Don't show dots for completion if they are not going to be removed + again. (closes #11501) + +Patch 9.0.0884 +Problem: Mouse shape remains in op-pending mode after failed change. +Solution: Reset finish_op and restore it. (closes #11545) + +Patch 9.0.0885 +Problem: Informational message has an error message number. +Solution: Use a message without an error number. (closes #11530) + +Patch 9.0.0886 +Problem: Horizontal mouse scroll only works in the GUI. +Solution: Make horizontal mouse scroll also work in a terminal. + (Christopher Plewright, closes #11448) + +Patch 9.0.0887 +Problem: Cannot easily try out what codes various keys produce. +Solution: Add a script to gather key code information, with an initial list + of codes to compare with. + +Patch 9.0.0888 +Problem: MS-Windows GUI: CTRL-] does not work on Swiss keyboard. +Solution: Check the key code and don't consider it as a dead key. (Aedin + Louis Xavier, closes #11556) + +Patch 9.0.0889 +Problem: Keycode check script has a few flaws. +Solution: Sort on terminal name. Ignore XTGETTCAP responses. Check for + version and status response. Update entries. + +Patch 9.0.0890 +Problem: No test for what patch 9.0.0827 fixes. +Solution: Add a test (still doesn't fail when fix is reverted). + +Patch 9.0.0891 +Problem: Virtual text below after match has wrong highlight. +Solution: Restore search_attr only after the virtual text. + (closes #11446) + +Patch 9.0.0892 +Problem: May redraw when not needed, causing slow scrolling. +Solution: Do not redraw when w_skipcol doesn't change. When w_skipcol + changes only redraw from the top. (issue #11559) + +Patch 9.0.0893 +Problem: 'smoothscroll' cursor calculations wrong when 'number' is set. +Solution: Correct the code that computes the width. (closes #11492) + +Patch 9.0.0894 +Problem: Virtual text property highlight ignores window background. +Solution: Combine text prop attribute with win_attr into extra_attr. + (closes #11462) + +Patch 9.0.0895 +Problem: File renamed twice in test; missing feature check. +Solution: Remove a rename() call. Add check for cryptv feature. + (closes #11564) + +Patch 9.0.0896 +Problem: Test for home key fails when 'term' is "tmux". +Solution: Only save termcap entries that exist. Adjust code for xHome to + what xterm uses. (closes #11566) + +Patch 9.0.0897 +Problem: Clinical Quality Language files are not recognized. +Solution: Add the "*.cql" pattern. (Matthew Gramigna, closes #11452) + +Patch 9.0.0898 +Problem: With 'smoothscroll' cursor is one screen line too far down. (Ernie + Rael) +Solution: Add a test that currently has the wrong result so that a fix can + be made. (issue #11436) + +Patch 9.0.0899 +Problem: The builtin terminals are in one long list. +Solution: Refactor into multiple lists and an index of the lists. + +Patch 9.0.0900 +Problem: Cursor moves too far with 'smoothscroll'. +Solution: Only move as far as really needed. (Yee Cheng Chin, closes #11504) + +Patch 9.0.0901 +Problem: Setting w_leftcol and handling side effects is confusing. +Solution: Use a function to set w_leftcol() and handle side effects. + +Patch 9.0.0902 +Problem: Some mouse scroll code is not in a good place. +Solution: Refactor the code. (Christopher Plewright, closes #11561) + +Patch 9.0.0903 +Problem: Key code checker doesn't check modifyOtherKeys resource. +Solution: Request the modifyOtherKeys resource value. Drop resource DCS + responses. + +Patch 9.0.0904 +Problem: Various comment and indent flaws. +Solution: Improve comments and indenting. + +Patch 9.0.0905 +Problem: Virtual text after the line wraps when 'wrap' is off. +Solution: Only set text_prop_follows when wrapping. (closes #11463) + +Patch 9.0.0906 +Problem: Mouse scroll code is not optimal. +Solution: Properly organise Normal mode, Insert mode and common code. + (Christopher Plewright, closes #11572) + +Patch 9.0.0907 +Problem: Restoring window after WinScrolled may fail. +Solution: Lock the window layout when triggering WinScrolled. + +Patch 9.0.0908 +Problem: With 'smoothscroll' cursor may end up in wrong position. +Solution: Correct the computation of screen lines. (Yee Cheng Chin, + closes #11502) + +Patch 9.0.0909 +Problem: Error message for layout change does not match action. +Solution: Pass the command to where the error is given. (closes #11573) + +Patch 9.0.0910 +Problem: Setting lines in another buffer may not work well. +Solution: Make sure the buffer being changed has a window. (issue #11558) + +Patch 9.0.0911 +Problem: With 'smoothscroll' set mouse click position may be wrong. +Solution: Adjust computations for w_skipcol. (Yee Cheng Chin, closes #11514) + +Patch 9.0.0912 +Problem: libvterm with modifyOtherKeys level 2 does not match xterm. +Solution: Adjust key code escape sequences to be the same as what xterm + sends in modifyOtherKeys level 2 mode. Check the value of + no_reduce_keys before using it. + +Patch 9.0.0913 +Problem: Only a change in the current window triggers the WinScrolled + event. +Solution: Trigger WinScrolled if any window scrolled or changed size. + (issue #11576) + +Patch 9.0.0914 +Problem: deletebufline() may move marks in the wrong window. +Solution: Find a window for the buffer being changed. (closes #11583) + +Patch 9.0.0915 +Problem: WinScrolled may trigger immediately when defined. +Solution: Initialize the fields in all windows. (closes #11582) + +Patch 9.0.0916 +Problem: getbufline() is inefficient for getting a single line. +Solution: Add getbufoneline(). + +Patch 9.0.0917 +Problem: The WinScrolled autocommand event is not enough. +Solution: Add WinResized and provide information about what changed. + (closes #11576) + +Patch 9.0.0918 +Problem: MS-Windows: modifier keys do not work with mouse scroll events. +Solution: Use K_SPECIAL instead of CSI for the modifier keys. (Christopher + Plewright, closes #11587) + +Patch 9.0.0919 +Problem: Build failure with tiny features. +Solution: Adjust #ifdef's. + +Patch 9.0.0920 +Problem: Cannot find an import prefixed with "s:". (Doug Kearns) +Solution: Skip over the "s:". (closes #11585) + +Patch 9.0.0921 +Problem: Missing defined(PROTO) in #ifdef. +Solution: Adjust #ifdef so that proto works with different features. + Clean up some preprocessor indenting. + +Patch 9.0.0922 +Problem: Mermaid files are not recognized. +Solution: Add patterns for Mermaid. (Crag MacEachern) + +Patch 9.0.0923 +Problem: Second SIGWINCH signal may be ignored. +Solution: When set_shellsize() is busy when called then run the inner code + again when it's done. (issue #424) + +Patch 9.0.0924 +Problem: The first termcap entry of a builtin termcap is not used. +Solution: Remove increment that was previously skipping the KS_NAME entry. + +Patch 9.0.0925 +Problem: Two conditions are always false. +Solution: Remove the conditions. Update return value types to make clear + what could be returned. (closes #11593) + +Patch 9.0.0926 +Problem: Coverity warns for not using return value of dict_add(). +Solution: When dict_add() fails then don't call hash_remove(). + +Patch 9.0.0927 +Problem: Coverity warns for using a NULL pointer. +Solution: Check for memory allocaion failure. + +Patch 9.0.0928 +Problem: Using Ruby LDFLAGS may cause build problems. +Solution: Do not add Ruby LDFLAGS to Vim's LDFLAGS. (Zdenek Dohnal, + closes #11592) + +Patch 9.0.0929 +Problem: Build failure with tiny version. (Tony Mechelynck) +Solution: Add #ifdef. + +Patch 9.0.0930 +Problem: Cannot debug the Kitty keyboard protocol with TermDebug. +Solution: Add Kitty keyboard protocol support to the libvterm fork. + Recognize the escape sequences that the protocol generates. Add + the 'keyprotocol' option to allow the user to specify for which + terminal what protocol is to be used, instead of hard-coding this. + Add recognizing the kitty keyboard protocol status. + +Patch 9.0.0931 +Problem: MS-Windows: mouse column limited to 223. +Solution: Use two bytes for each mouse coordinate. Add the mouse position + to scroll events. (Christopher Plewright, closes #11597) + +Patch 9.0.0932 +Problem: Oblivion files are not recognized. +Solution: Recognize Oblivion files and alike as "obse". (closes #11540) + +Patch 9.0.0933 +Problem: Kitty shows "already at oldest change" on startup. +Solution: When receiving the keyboard protocol state return the ignore key. + (closes #11601) + +Patch 9.0.0934 +Problem: Various code formatting issues. +Solution: Improve code formatting. + +Patch 9.0.0935 +Problem: When using dash it may not be recognize as filetype "sh". +Solution: Add checks for "dash". (Eisuke Kawashima,closes #11600) + +Patch 9.0.0936 +Problem: Wrong type for "isunnamed" returned by getreginfo(). +Solution: Use VAR_BOOL instead of VAR_SPECIAL. (closes #11598) + +Patch 9.0.0937 +Problem: Forked repositories send out useless email. +Solution: When Coverity fails to run just ignore it. (Shane-XB-Qian, + closes #11604) + +Patch 9.0.0938 +Problem: MS-Windows: debug executable not found when running test. +Solution: Look for vimd.exe. (Christopher Plewright, closes #11602) + +Patch 9.0.0939 +Problem: Still using simplified mappings when using the kitty keyboard + protocol. +Solution: Use the kitty_protocol_state value to decide whether to use + simplified mappings. Improve how seenModifyOtherKeys is set and + reset. + +Patch 9.0.0940 +Problem: Crash when typing a letter in a terminal window. (Shane-XB-Qian) +Solution: Use the "vterm" variable instead of getting the terminal pointer + from the current buffer. (closes #11608) + +Patch 9.0.0941 +Problem: CI failures in sound dummy. +Solution: Temporarily disable building sound dummy. (closes #11610) + +Patch 9.0.0942 +Problem: Workflow Description Language files are not recognized. +Solution: Add a pattern for the "wdl" filetype. (Matt Dunford, + closes #11611) + +Patch 9.0.0943 +Problem: Pretending to go out of Insert mode when Esc is received has side + effects. +Solution: When the kitty keyboard protocol is enabled expect Esc to always + be the start of an escape sequence. + +Patch 9.0.0944 +Problem: 'cursorline' causes virtual text highlight to continue. +Solution: Save and restore line_attr. (closes #11588) + +Patch 9.0.0945 +Problem: Failures in the cursorline test. +Solution: Reset extra_attr only after a text property. + +Patch 9.0.0946 +Problem: CI: Error in Coverity flow is not reported. +Solution: Use another way to avoid errors in a forked repository. (Ken + Takata, closes #11609) + +Patch 9.0.0947 +Problem: Invalid memory access in substitute with function that goes to + another file. +Solution: Check for text locked in CTRL-W gf. + +Patch 9.0.0948 +Problem: 'ttyfast' is set for arbitrary terminals. +Solution: Always set 'ttyfast'. (closes #11549) + +Patch 9.0.0949 +Problem: Crash when unletting a variable while listing variables. +Solution: Disallow changing a hashtable while going over the entries. + (closes #11435) + +Patch 9.0.0950 +Problem: The pattern "\_s\zs" matches at EOL. +Solution: Make the pattern "\_s\zs" match at the start of the next line. + (closes #11617) + +Patch 9.0.0951 +Problem: Trying every character position for a match is inefficient. +Solution: Use the start position of the match ignoring "\zs". + +Patch 9.0.0952 +Problem: Eclipse preference files are not recognized. +Solution: Add a pattern to use "jproperties" for Eclipse preference files. + (closes #11618) + +Patch 9.0.0953 +Problem: Part of making search more efficient is missing. +Solution: Add the change in searchit(). + +Patch 9.0.0954 +Problem: Cannot detect whether modifyOtherKeys is enabled. +Solution: Use XTQMODKEYS introduced by xterm version 377 to request the + modifyOtherKeys level. Update the keycode check results. + +Patch 9.0.0955 +Problem: Libvterm does not support the XTQMODKEYS request. +Solution: Implement the XTQMODKEYS request and response. Update the keycode + check results. + +Patch 9.0.0956 +Problem: Terminal tests fail when using key with modifier. +Solution: Use the modifyOtherKeys encoding when using RunVimInTerminal(). + +Patch 9.0.0957 +Problem: Tests fail without the terminal feature. +Solution: Move functions to another utility script. + +Patch 9.0.0958 +Problem: Messages test is flaky. +Solution: Add a short delay. + +Patch 9.0.0959 +Problem: Error when using the "File Settings / Text Width" menu. +Solution: Use str2nr(). (closes #11624) + +Patch 9.0.0960 +Problem: Error when using the "Tools / Spelling / Find More Languages" + menu. +Solution: Remove "". Reset "g:menutrans_set_lang_to" when 'encoding' + changes. (closes #11625) + +Patch 9.0.0961 +Problem: Using deletebufline() may jump to another window. +Solution: Do not use a window where the buffer was only in the past. + (closes #11594) + +Patch 9.0.0962 +Problem: Virtual text below cannot be placed below empty lines. +Solution: Add one character. (James Alvarado, closes #11606, closes #11520) + +Patch 9.0.0963 +Problem: Function name does not match autocmd event name. +Solution: Rename "optionsset" to "optionset". (closes #11630) + +Patch 9.0.0964 +Problem: Status line of other window not redrawn when dragging it when + 'splitkeep' is set to "screen". +Solution: Set w_redr_status earlier. (Luuk van Baal, closes #11635, + closes #11632) + +Patch 9.0.0965 +Problem: Using one window for executing autocommands is insufficient. +Solution: Use up to five windows for executing autocommands. + +Patch 9.0.0966 +Problem: Some compilers don't allow a declaration after a label. +Solution: Move the declaration to the start of the block. (John Marriott) + +Patch 9.0.0967 +Problem: Leaking memory from autocmd windows. +Solution: Free window when auc_win is not NULL. + +Patch 9.0.0968 +Problem: GUI mouse event test is a bit flaky. +Solution: Mark the test case as flaky. Move test function failure checks to + a separate test function. + +Patch 9.0.0969 +Problem: Matchparen highlight is not updated when switching buffers. +Solution: Listen to the BufLeave and the BufWinEnter autocmd events. + (closes #11626) + +Patch 9.0.0970 +Problem: Coverity warns for uninitialized variable. +Solution: Initialize "ren_ret". + +Patch 9.0.0971 +Problem: Escape sequences not recognized without the termresponse feature. +Solution: Recognize escape sequences to avoid display mess up. + +Patch 9.0.0972 +Problem: Build failure on some systems. +Solution: Adjust #ifdefs related to the termresponse feature. + +Patch 9.0.0973 +Problem: Kitty keyboard protocol key not decoded when it has an unsupported + modifier, such as NumLock. +Solution: Accept a key with any modifier. (closes #11638) + +Patch 9.0.0974 +Problem: Even when Esc is encoded a timeout is used. +Solution: Use K_ESC when an encoded Esc is found. + +Patch 9.0.0975 +Problem: Virtual text below an empty line is misplaced when 'number' is + set. +Solution: Adjust the computations. (closes #11629) + +Patch 9.0.0976 +Problem: Enabling the kitty keyboard protocol uses push/pop. +Solution: Use the start/stop codes to avoid unpredictable behavior. + +Patch 9.0.0977 +Problem: It is not easy to see what client-server commands are doing. +Solution: Add channel log messages if ch_log() is available. Move the + channel logging and make it available with the +eval feature. + +Patch 9.0.0978 +Problem: Build errors without the +channel feature. (John Marriott) +Solution: Adjust #ifdefs. + +Patch 9.0.0979 +Problem: ch_log() text can be hard to find in the log file. +Solution: Prepend "ch_log()" to the text. + +Patch 9.0.0980 +Problem: The keyboard state response may end up in a shell command. +Solution: Only request the keyboard protocol state when the typeahead is + empty, no more commands are following and not exiting. Add the + t_RK termcap entry for this. + +Patch 9.0.0981 +Problem: Build error in tiny version. +Solution: Add #ifdef. + +Patch 9.0.0982 +Problem: 'cursorline' not drawn before virtual text below. +Solution: Add the 'cursorline' attribute to the empty space. (closes #11647) + +Patch 9.0.0983 +Problem: Stray characters displayed when starting the GUI. +Solution: Add t_RK to the list of terminal options. + +Patch 9.0.0984 +Problem: GUI: remote_foreground() does not always work. (Ron Aaron) +Solution: For GTK use gtk_window_set_keep_above(). (issue #11641) + +Patch 9.0.0985 +Problem: When using kitty keyboard protocol function keys may not work. + (Kovid Goyal) +Solution: Recognize CSI ending in [ABCDEFHPQRS] also when the termcap + entries are not specified. (closes #11648) + +Patch 9.0.0986 +Problem: Build failure with tiny version. +Solution: Add #ifdef. + +Patch 9.0.0987 +Problem: File missing from list of distributed files. +Solution: Add logfile.pro to list of distributed files. + +Patch 9.0.0988 +Problem: Using feedkeys() does not show up in a channel log. +Solution: Add ch_log() calls and clean up the code. + +Patch 9.0.0989 +Problem: Popupwin test is more flaky on MacOS. +Solution: Use a longer wait time. + +Patch 9.0.0990 +Problem: Callback name argument is changed by setqflist(). +Solution: Use the expanded function name for the callback, do not store it + in the argument. (closes #11653) + +Patch 9.0.0991 +Problem: Crash when reading help index with various options set. (Marius + Gedminas) +Solution: Do not set wlv.c_extra to NUL when wlv.p_extra is NULL. + (closes #11651) + +Patch 9.0.0992 +Problem: Vim9 script: get E1096 when comment follows return. +Solution: Adjust condition for return without expression. (closes #11654) + +Patch 9.0.0993 +Problem: Display errors when adding or removing text property type. +Solution: Perform a full redraw. Only use text properties for which the + type is defined. (closes #11655) + +Patch 9.0.0994 +Problem: Tests for empty prop type name fail. +Solution: Correct the error number. + +Patch 9.0.0995 +Problem: Padding before virtual text below is highlighted when 'number' and + 'nowrap' are set. +Solution: Save and restore n_attr_skip. (closes #11643) + +Patch 9.0.0996 +Problem: If 'keyprotocol' is empty "xterm" still uses modifyOtherKeys. +Solution: Remove t_TI, t_RK and t_TE from the "xterm" builtin termcap and + let the default value of 'keyprotocol' add those. + +Patch 9.0.0997 +Problem: Coverity warns for dead code. +Solution: Don't use ASCII_ISUPPER() for a negative value. + +Patch 9.0.0998 +Problem: "gk" may reset skipcol when not needed. +Solution: Only reset skipcol if the cursor column is less. + +Patch 9.0.0999 +Problem: Memory may leak. +Solution: Free the sound callback function name if it was allocated. + +Patch 9.0.1000 +Problem: With 'smoothscroll' skipcol may be reset unnecessarily. +Solution: Check the line does actually fit in the window. + +Patch 9.0.1001 +Problem: Classes are not documented or implemented yet. +Solution: Make the first steps at documenting Vim9 objects, classes and + interfaces. Make initial choices for the syntax. Add a skeleton + implementation. Add "public" and "this" in the command table. + +Patch 9.0.1002 +Problem: Command list test fails. +Solution: Add commands added to the list. + +Patch 9.0.1003 +Problem: Tiny build fails. +Solution: Remove #ifdef from error message. + +Patch 9.0.1004 +Problem: Suspend test sometimes fails on MacOS. +Solution: Wait a short while for terminal responses. + +Patch 9.0.1005 +Problem: A failed test may leave a swap file behind. +Solution: Delete the swap file to avoid another test to fail. Use another + file name. + +Patch 9.0.1006 +Problem: Suspend test still sometimes fails on MacOS. +Solution: Wait a little while for terminal responses. + +Patch 9.0.1007 +Problem: There is no way to get a list of swap file names. +Solution: Add the swapfilelist() function. Use it in the test script to + clean up. Remove deleting individual swap files. + +Patch 9.0.1008 +Problem: Test for swapfilelist() fails on MS-Windows. +Solution: Only check the tail of the path. Mark a test as flaky. + +Patch 9.0.1009 +Problem: Test for catch after interrupt is flaky on MS-Windows. +Solution: Mark the test as flaky. + +Patch 9.0.1010 +Problem: Stray warnings for existing swap files. +Solution: Wipe out the buffer until it has no name and no swap file. + +Patch 9.0.1011 +Problem: ml_get error when using screenpos(). +Solution: Give an error for the line number. (closes #11661) + +Patch 9.0.1012 +Problem: Tests may get stuck in buffer with swap file. +Solution: Bail out when bwipe! doesn't get another buffer. + +Patch 9.0.1013 +Problem: Suspend test often fails on Mac OS. +Solution: Make t_RP empty. + +Patch 9.0.1014 +Problem: Zir files are not recognized. +Solution: Add a pattern for Zir files. (closes #11664) + +Patch 9.0.1015 +Problem: Without /dev/urandom srand() seed is too predictable. +Solution: Use micro seconds and XOR with process ID. (Yasuhiro Matsumoto, + closes #11656) + +Patch 9.0.1016 +Problem: screenpos() does not count filler lines for diff mode. +Solution: Add filler lines. (closes 11658) + +Patch 9.0.1017 +Problem: Test for srand() fails on MS-Windows. +Solution: Do not expect the same result a second time. + +Patch 9.0.1018 +Problem: Suspend test still fails on Mac OS. +Solution: Make 'keyprotocol' empty. + +Patch 9.0.1019 +Problem: 'smoothscroll' and virtual text above don't work together. + (Yee Cheng Chin) +Solution: Skip virtual text above when w_skipcol is non-zero. + (closes #11665) + +Patch 9.0.1020 +Problem: Tests call GetSwapFileList() before it is defined. +Solution: Move the call to after defining the function. (Christopher + Plewright) + +Patch 9.0.1021 +Problem: Test trips over g:name. +Solution: Delete g:name after using it. + +Patch 9.0.1022 +Problem: Suspend test fails on Mac OS when suspending Vim. +Solution: Make 'keyprotocol' empty. + +Patch 9.0.1023 +Problem: MS-Windows: dynamic loading of libsodium doesn't work. +Solution: Add "randombytes_random". (Ken Takata, closes #11667) + +Patch 9.0.1024 +Problem: CI doesn't use the latest FreeBSD version. +Solution: Go from 12.3 to 12.4. (closes #11423) + +Patch 9.0.1025 +Problem: WinScrolled is not triggered when filler lines change. +Solution: Add "topfill" to the values that WinScrolled triggers on. + (closes #11668) + +Patch 9.0.1026 +Problem: type of w_last_topfill is wrong. +Solution: Use "int" instead of "linenr_T". (closes #11670) + +Patch 9.0.1027 +Problem: LGTM is soon shutting down. +Solution: Remove LGTM from CI. (closes #11671) + +Patch 9.0.1028 +Problem: Mouse shape test is flaky, especially on Mac OS. +Solution: Instead of starting all timers at the same time, start the next + one in the callback of the previous one. (Yee Cheng Chin, + closes #11673) Also use "bwipe!" instead of "close!" to avoid + swap files remaining. + +Patch 9.0.1029 +Problem: Autoload directory missing from distribution. +Solution: Add the autoload/zig directory to the list of distributed files. + +Patch 9.0.1030 +Problem: Using freed memory with the cmdline popup menu. +Solution: Clear the popup menu when clearing the matches. (closes #11677) + +Patch 9.0.1031 +Problem: Vim9 class is not implemented yet. +Solution: Add very basic class support. + +Patch 9.0.1032 +Problem: Test fails when terminal feature is missing. +Solution: Use CheckRunVimInTerminal. + +Patch 9.0.1033 +Problem: Tiny build fails because of conflicting typedef. +Solution: Remove one typedef. + +Patch 9.0.1034 +Problem: Reporting swap file when windows are split. +Solution: Close extra windows after running a test. + +Patch 9.0.1035 +Problem: Object members are not being marked as used, garbage collection + may free them. +Solution: Mark object members as used. Fix reference counting. + +Patch 9.0.1036 +Problem: Undo misbehaves when writing from an insert mode mapping. +Solution: Sync undo when writing. (closes #11674) + +Patch 9.0.1037 +Problem: lalloc(0) error for a class without members. +Solution: Don't allocate room for members if there aren't any. + Don't create the class if there was an error. + +Patch 9.0.1038 +Problem: Function name does not match what it is used for. +Solution: Include the modifier in the name. (closes #11679) + +Patch 9.0.1039 +Problem: Using a mapping CmdlineChanged may be triggered twice. +Solution: Count the number of times CmdlineChanged is triggered and avoid + doing it twice. (closes #116820 + +Patch 9.0.1040 +Problem: Test for mapping with CmdlineChanged fails. +Solution: Put back the check for the cmdline length not changing. + +Patch 9.0.1041 +Problem: Cannot define a method in a class. +Solution: Implement defining an object method. Make calling an object + method work. + +Patch 9.0.1042 +Problem: ASAN gives false alarm about array access. +Solution: Use an intermediate pointer. + +Patch 9.0.1043 +Problem: Macro has confusing name and is duplicated. +Solution: Use one macro with an understandable name. (closes #11686) + +Patch 9.0.1044 +Problem: Setting window height using Python may cause errors. +Solution: When setting "curwin" also set "curbuf". (closes #11687) + +Patch 9.0.1045 +Problem: In a class object members cannot be initialized. +Solution: Support initializing object members. Make "dissassemble" work on + an object method. + +Patch 9.0.1046 +Problem: Class method disassemble test fails on MS-Windows. +Solution: Do not match with a specific size. + +Patch 9.0.1047 +Problem: Matchparen is slow. +Solution: Actually use the position where the match started, not the + position where the search started. (closes #11644) + +Patch 9.0.1048 +Problem: With "screenline" in 'culopt' cursorline highlight is wrong. +Solution: Apply the priority logic also when "screenline is in 'culopt'. + (closes #11696) + +Patch 9.0.1049 +Problem: Crash when opening a very small terminal window. +Solution: Instead of crashing fix the cursor position. (closes #11697) + +Patch 9.0.1050 +Problem: Using freed memory when assigning to variable twice. +Solution: Make copy of the list type. (closes #11691) + +Patch 9.0.1051 +Problem: After a failed CTRL-W ] next command splits window. +Solution: Reset postponed_split. (Rob Pilling, closes #11698) + +Patch 9.0.1052 +Problem: Using freed memory on exit when EXITFREE is defined. +Solution: Make a deep copy of the type. Make sure TTFLAG_STATIC is not set + in the copy. + +Patch 9.0.1053 +Problem: Default constructor arguments are not optional. +Solution: Use "= v:none" to make constructor arguments optional. + +Patch 9.0.1054 +Problem: Object member can't get type from initializer. +Solution: If there is no type specified try to use the type of the + initializer. Check for a valid type. + +Patch 9.0.1055 +Problem: Coverity warns for using uninitialized memory. +Solution: Clear the "lhs" field earlier. + +Patch 9.0.1056 +Problem: Leaking memory when disassembling an object method. +Solution: Free the typval of the class. + +Patch 9.0.1057 +Problem: Conflict between supercollider and scala filetype detection. +Solution: Do not check for "Class : Method", it can appear in both + filetypes. (Chris Kipp, closes #11699) + +Patch 9.0.1058 +Problem: String value of class and object do not have useful information. +Solution: Add the class name and for the object the member values. + +Patch 9.0.1059 +Problem: Build failure with some compilers that can't handle a + declaration directly after a "case" statement. +Solution: Add a block to put the declarations in. + +Patch 9.0.1060 +problem: Private and public object members are not implemented yet. +Solution: Implement private and public object members. + +Patch 9.0.1061 +Problem: Cannot display 'showcmd' somewhere else. +Solution: Add the 'showcmdloc' option. (Luuk van Baal, closes #11684) + +Patch 9.0.1062 +Problem: Some test function names do not match what they are doing. +Solution: Leave out user data for the test that is called "NoUserData". + (closes #11703) + +Patch 9.0.1063 +Problem: When using Kitty a shell command may mess up the key protocol + state. +Solution: Output t_te before t_TE. If t_te switches between the main and + the alternate screen then deactivating the key protocol by t_TE + should happen after switching screen. (issue #11705) + +Patch 9.0.1064 +Problem: Code for making 'shortmess' temporarily empty is repeated. +Solution: Add functions for making 'shortmess' empty and restoring it. + (Christian Brabandt, closes #11709) + +Patch 9.0.1065 +Problem: A shell command switching screens may still have a problem with + the kitty keyboard protocol. +Solution: Disable the kitty keyboard protocol both in the current and the + alternate screen, if there are indications it might be needed. + (issue #11705) Also fix naming. + +Patch 9.0.1066 +Problem: Test function name is wrong. +Solution: Rename to what is actually being tested. (closes #11712) + +Patch 9.0.1067 +Problem: In diff mode virtual text is highlighted incorrectly. (Rick Howe) +Solution: Do not use diff attributes for virtual text. (closes #11714) + +Patch 9.0.1068 +Problem: No information about whether requesting term codes has an effect. +Solution: Add ch_log() calls to report the effect of term code responses. + Avoid deleting an entry and then adding back the same one. + +Patch 9.0.1069 +Problem: Diff mode highlight fails for special characters. +Solution: Adjust condition for setting "diff_hlf". + +Patch 9.0.1070 +Problem: Reading beyond array size. +Solution: Only use name[0] and name[1], do not use "name" as a string. + +Patch 9.0.1071 +Problem: Codecov action version is too specific. +Solution: Only use "v3" to automatically use the latest stable version. + (closes #11720) + +Patch 9.0.1072 +Problem: screenpos() column result in fold may be too small. +Solution: Add space of 'number', sign column, etc. (closes #11715) + +Patch 9.0.1073 +Problem: Using "xterm-kitty" for 'term' causes problems. +Solution: Remove the "xterm-" part when 'term' is set from $TERM. Detect a + few kitty-specific properties based on the version response + instead of the terminal name. + +Patch 9.0.1074 +Problem: Class members are not supported yet. +Solution: Add initial support for class members. + +Patch 9.0.1075 +Problem: build fails if the compiler doesn't allow for a declaration right + after "case". +Solution: Add a block. + +Patch 9.0.1076 +Problem: ASAN complains about NULL argument. +Solution: Skip memmove() when there is nothing to move. + +Patch 9.0.1077 +Problem: Can add text property with negative ID before virtual text + property. +Solution: Remember that a text property with a negative ID was used and give + an appropriate error message. (closes #11725) + Fix index computation. + +Patch 9.0.1078 +Problem: With the +vartabs feature indent folding may use wrong 'tabstop'. +Solution: Use the "buf" argument instead of "curbuf". + +Patch 9.0.1079 +Problem: Leaking memory when defining a user command fails. +Solution: Free "compl_arg" when needed. (closes #11726) + +Patch 9.0.1080 +Problem: The "kitty" terminfo entry is not widespread, resulting in the + kitty terminal not working properly. +Solution: Go back to using "xterm-kitty" and avoid the problems it causes in + another way. + +Patch 9.0.1081 +Problem: Using "->" with split lines does not always work. +Solution: Avoid trying to get another line. (closes #11723) + +Patch 9.0.1082 +Problem: Some jsonc files are not recognized. +Solution: Add patterns for jsonc and move some from json to jsonc. + (closes #11711) + +Patch 9.0.1083 +Problem: Empty and comment lines in a class cause an error. +Solution: Skip empty and comment lines. (closes #11734) + +Patch 9.0.1084 +Problem: Code handling low level MS-Windows events cannot be tested. +Solution: Add test_mswin_event() and tests using it. (Christopher Plewright, + closes #11622) + +Patch 9.0.1085 +Problem: Compiler warns for uninitialized variable. +Solution: Initialize the variable. Remove unused function. (John Marriott) + +Patch 9.0.1086 +Problem: Display wrong in Windows terminal after exiting Vim. +Solution: Apply screen restore fix for Windows 11 also to Windows 10 builds. + (Christopher Plewright, closes #11713, closes #11706) + +Patch 9.0.1087 +Problem: Autocommand test sometimes fails. +Solution: Add a short delay. (James McCoy, closes #11737) + +Patch 9.0.1088 +Problem: Clang warns for unused variable. +Solution: Adjust #ifdef. (John Marriott) + +Patch 9.0.1089 +Problem: unnessary assignment +Solution: Remove the assignment. (Luuk van Baal, closes #1136) + +Patch 9.0.1090 +Problem: FHIR Shorthand files are not recognized. +Solution: Add a pattern to detect FSH files. (Matthew Gramigna, + closes #11738) + +Patch 9.0.1091 +Problem: Assignment to non-existing member causes a crash. (Yegappan + Lakshmanan) +Solution: Give an error message and bail out when a member cannot be found. + +Patch 9.0.1092 +Problem: Search error message doesn't show used pattern. +Solution: Pass the actually used pattern to where the error message is + given. (Rob Pilling, closes #11742) + +Patch 9.0.1093 +Problem: Using freed memory of object member. (Yegappan Lakshmanan) +Solution: Make a copy of the object member when getting it. + +Patch 9.0.1094 +Problem: Compiler warning when HAS_MESSAGE_WINDOW is not defined. +Solution: Add UNUSED. + +Patch 9.0.1095 +Problem: Using freed memory when declaration fails. (Yegappan Lakshmanan) +Solution: After unreferencing an object set the reference to NULL. + +Patch 9.0.1096 +Problem: Reallocating hashtab when the size didn't change. +Solution: Bail out when the hashtab is already the desired size. + +Patch 9.0.1097 +Problem: Tests are failing. +Solution: Do clean up a hashtab when at the initial size. + +Patch 9.0.1098 +Problem: Code uses too much indent. +Solution: Use an early return. (Yegappan Lakshmanan, closes #11747) + +Patch 9.0.1099 +Problem: Trying to resize a hashtab may cause a problem. +Solution: Do not try to resize a hashtab before adding an item. + +Patch 9.0.1100 +Problem: A hashtab with many removed items is not cleaned up. +Solution: Re-hash a hashtab even when the size didn't change if too many + items were removed. + +Patch 9.0.1101 +Problem: Unused global variable. +Solution: Remove the variable. (closes #11752) + +Patch 9.0.1102 +Problem: Complicated use of #ifdef. +Solution: Simplify #ifdef use. (Ken Takata, closes #11745) + +Patch 9.0.1103 +Problem: jq files are not recognized. +Solution: Add detection of Jq files. (David McDonald, closes #11743) + +Patch 9.0.1104 +Problem: Invalid memory access when checking function argument types. +Solution: Do not check beyond the number of arguments. (closes #11755) + +Patch 9.0.1105 +Problem: Code is indented too much. +Solution: Use an early return. (Yegappan Lakshmanan, closes #11756) + +Patch 9.0.1106 +Problem: Not all postfix files are recognized. +Solution: Recognize main.cf.proto files. (closes #11732) + +Patch 9.0.1107 +Problem: Float constant not recognized as float. +Solution: Check the vartype instead of comparing with t_float. + (closes #11754) + +Patch 9.0.1108 +Problem: Type error when using "any" type and adding a number to a float. +Solution: Accept both a number and a float. (closes #11753) + +Patch 9.0.1109 +Problem: Leaking allocated type. +Solution: Reset the "static" flag in the allocated type copy. + +Patch 9.0.1110 +Problem: Build fails on Mac OS X 10.4/10.5 . +Solution: Check if the dispatch/dispatch.h header exists. (Evan Miller, + closes #11746) + +Patch 9.0.1111 +Problem: Termcap entries for RGB colors are not set automatically. +Solution: Always set the termcap entries when +termguicolors is enabled. + +Patch 9.0.1112 +Problem: test_mswin_event() can hang. +Solution: Add the "execute" argument to process events right away. + (Christopher Plewright, closes #11760) + +Patch 9.0.1113 +Problem: Users cannot easily try out a PR. +Solution: Add an "artifacts" section to the AppVeyor CI config. (Christian + Brabandt, closes #11762) + +Patch 9.0.1114 +Problem: CI does not use the latest Python version. +Solution: Switch from Python 3.10 to 3.11. (closes #11761) + +Patch 9.0.1115 +Problem: Code is indented more than needed. +Solution: Use an early return to reduce indenting. (Yegappan Lakshmanan, + closes #11758) + +Patch 9.0.1116 +Problem: Compiler may complain about an unused function. +Solution: Add #ifdef. (John Marriott) + +Patch 9.0.1117 +Problem: Terminfo entries for bracketed paste are not used. +Solution: Use the newly added terminfo entries for bracketed paste. + Correct mixup of output strings and key codes. + +Patch 9.0.1118 +Problem: Sporadic test failures when using a terminal window. +Solution: Adjust waiting times. (James McCoy, closes #11763) + +Patch 9.0.1119 +Problem: Type of arguments not checked when calling a partial. +Solution: Give an error for a wrong argument type. (closes #11753) + +Patch 9.0.1120 +Problem: Tex filetype detection not sufficiently tested. +Solution: Add more test cases for "tex" detection. (Jonas Strittmatter, + closes #11765) + +Patch 9.0.1121 +Problem: Cursor positioning and display problems with 'smoothscroll' and + using "zt", "zb" or "zz". +Solution: Adjust computations and conditions. (Yee Cheng Chin, + closes #11764) + +Patch 9.0.1122 +Problem: Class member access is not fully tested yet. +Solution: Add more tests. + +Patch 9.0.1123 +Problem: Class function not implemented yet. +Solution: Implement defining and calling a class function. + +Patch 9.0.1124 +Problem: Virtual text at a column position is truncated at the window edge. + (Yegappan Lakshmanan) +Solution: Do not truncated virtual text that is placed at a column. + +Patch 9.0.1125 +Problem: Memory leak when using class functions. +Solution: Clear and free the array with class functions. + +Patch 9.0.1126 +Problem: Bracketed paste can be enabled when pasted text is not recognized. +Solution: Output t_BE only when t_PS and t_PE are set. + +Patch 9.0.1127 +Problem: No error if function argument shadows class member. +Solution: Give an error for shadowing a class member. + +Patch 9.0.1128 +Problem: Build failure. +Solution: Add type cast. Add missing error messages. + +Patch 9.0.1129 +Problem: Sporadic Test_range() failure. +Solution: Clear typeahead. Move to a separate function. (issue #22771) + +Patch 9.0.1130 +Problem: Unexpected output when autoloading a script for an interactive + operation. +Solution: Reset "KeyTyped" while loading a script and when handling a nested + function. (closes #11773) + +Patch 9.0.1131 +Problem: Build failure without the +eval feature. +Solution: Move code inside #ifdef. + +Patch 9.0.1132 +Problem: Code is indented more than needed. +Solution: Use an early return to reduce indentation. (Yegappan Lakshmanan, + closes #11769) + +Patch 9.0.1133 +Problem: Error message names do not match the items. +Solution: Add "_str" when the text contains "%s". + +Patch 9.0.1134 +Problem: Comparing objects uses identity instead of equality. +Solution: Compare the object values. + +Patch 9.0.1135 +Problem: Missing function argument. +Solution: Add ignore case flag. + +Patch 9.0.1136 +Problem: Memory leak when getting class member type from expr. +Solution: Clear the expression result. + +Patch 9.0.1137 +Problem: Some conditions are always false. +Solution: Remove the useless conditions. (closes #11776) + +Patch 9.0.1138 +Problem: Crash when expecting varargs but it is something else. +Solution: Only use the member when the type is a list. (closes #11774) + +Patch 9.0.1139 +Problem: Cannot create a new object in a compiled function. +Solution: Compile the instructins to create a new object. + +Patch 9.0.1140 +Problem: Cannot call an object method in a compiled function. +Solution: Compile the instructins to invoke an object method. + +Patch 9.0.1141 +Problem: 'cursorcolumn' and 'colorcolumn' wrong after concealing and + wrapping line. +Solution: Reset "wlv.vcol_off" after each screen line. (Alexey Radkov, + closes #11777) + +Patch 9.0.1142 +Problem: Crash and/or memory leak when redefining function after error. +Solution: Clear pointer after making a copy. Clear arrays on failure. + (closes #11774) + +Patch 9.0.1143 +Problem: Invalid memory access with bad 'statusline' value. +Solution: Avoid going over the NUL at the end. + +Patch 9.0.1144 +Problem: Reading beyond text. +Solution: Add strlen_maxlen() and use it. + +Patch 9.0.1145 +Problem: Invalid memory access with recursive substitute expression. +Solution: Check the return value of vim_regsub(). + +Patch 9.0.1146 +Problem: MS-Windows: various special keys and modifiers are not mappable. +Solution: Adjust the handling of keys with modifiers. (Christian Plewright, + closes #11768) + +Patch 9.0.1147 +Problem: Cannot access a class member in a compiled function. +Solution: Implement looking up a class member. + +Patch 9.0.1148 +Problem: Cmdline test fails in the GUI. +Solution: Skip the test when running in the GUI. + +Patch 9.0.1149 +Problem: Class members may be garbage collected. +Solution: Mark class members as being in use. + +Patch 9.0.1150 +Problem: :interface is not implemented yet. +Solution: Implement the basics of :interface. + +Patch 9.0.1151 +Problem: Build failure. +Solution: Add missing part of :interface change. + +Patch 9.0.1152 +Problem: Class "implements" argument not implemented. +Solution: Implement "implements" argument. Add basic checks for when a + class implements an interface. + +Patch 9.0.1153 +Problem: Build error with some compilers. +Solution: Clear pointer the right way. + +Patch 9.0.1154 +Problem: Coverity warns for dead code. +Solution: Remove condition that is always true. + +Patch 9.0.1155 +Problem: Cannot use a class as a type. +Solution: Accept a class and interface name as a type. + +Patch 9.0.1156 +Problem: Tests fail because of a different error message. +Solution: Don't give an error if a type name can't be found. + +Patch 9.0.1157 +Problem: "implements" only handles one interface name. +Solution: Handle a comma separated list of names. Check for duplicate + names. + +Patch 9.0.1158 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11787) + +Patch 9.0.1159 +Problem: Extends argument for class not implemented yet. +Solution: Basic implementation of "extends". + +Patch 9.0.1160 +Problem: ASAN error for ufunc_T allocated with wrong size. +Solution: Make sure the size can always fit the struct. + +Patch 9.0.1161 +Problem: Coverity warns for using strcpy(). +Solution: Call a function to set the function name. + +Patch 9.0.1162 +Problem: Configure does not handle all FORTIFY_SOURCE variants. +Solution: Also handle Fedora's default FORTIFY_SOURCE flags. (Zdenek Dohnal, + closes #11794) + +Patch 9.0.1163 +Problem: Compiler warning for implicit size_t/int conversion. +Solution: Add a type cast. (Mike Williams, closes #11795) + +Patch 9.0.1164 +Problem: Evaluating string expression advances function line. +Solution: Disable function lines while parsing a string expression. + (Hirohito Higashi, closes #11796) + +Patch 9.0.1165 +Problem: Tests using IPv6 sometimes fail. +Solution: Use getaddrinfo() and use try/catch. (James McCoy, + closes #11783) + +Patch 9.0.1166 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11792) + +Patch 9.0.1167 +Problem: EditorConfig files do not have their own filetype. +Solution: Add the "editorconfig" filetype. (Gregory Anders, closes #11779) + +Patch 9.0.1168 +Problem: Code to enable/disable mouse is not from terminfo/termcap. +Solution: Request the "XM" entry and use it to set 'ttymouse' if possible. + +Patch 9.0.1169 +Problem: Some key+modifier tests fail on some AppVeyor images. +Solution: Adjust the tests for key movements and fix the revealed bugs. + (Christopher Plewright, closes #11798) + +Patch 9.0.1170 +Problem: LGTM badge no longer works. +Solution: Remove the LGTM badge. (closes #11799) + +Patch 9.0.1171 +Problem: Screen is not redrawn after using setcellwidths(). +Solution: Redraw the screen when the cell widths have changed. (Yasuhiro + Matsumoto, closes #11800) + +Patch 9.0.1172 +Problem: When 'selection' is "exclusive" then "1v" is one char short. +Solution: Add one character when 'selection' is "exclusive. (closes #11791) + +Patch 9.0.1173 +Problem: Compiler warning for unused variable on non-Unix systems. +Solution: Move #ifdef. (John Marriott) + +Patch 9.0.1174 +Problem: Smali files are not recognized. +Solution: Add a pattern for Smali files. (Amaan Qureshi, closes #11801) + +Patch 9.0.1175 +Problem: The set_ref_in_item() function is too long. +Solution: Use a separate function for more complicated types. (Yegappan + Lakshmanan, closes #11802) + +Patch 9.0.1176 +Problem: smithy files are not recognized. +Solution: Add a pattern for Smithy files. (Chris Kipp, closes #11804) + +Patch 9.0.1177 +Problem: AppVeyor uses some older tools. +Solution: Switch to Visual Studio 2022 and Python 3.11. (Christopher + Plewright, closes #11793) + +Patch 9.0.1178 +Problem: A child class cannot override functions from a base class. +Solution: Allow overriding and implement "super". + +Patch 9.0.1179 +Problem: Not all errors around inheritance are tested. +Solution: Add more tests. Fix uncovered problems. + +Patch 9.0.1180 +Problem: Compiler warnings without the +job feature. +Solution: Adjust #ifdefs. (John Marriott) + +Patch 9.0.1181 +Problem: Class inheritance and typing insufficiently tested. +Solution: Add more tests. Implement missing behavior. + +Patch 9.0.1182 +Problem: go checksum files are not recognized. +Solution: Add the name of go checksum files. (Amaan Qureshi, closes #11803) + +Patch 9.0.1183 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11805) + +Patch 9.0.1184 +Problem: Interface of an object is not recognized when checking type. +Solution: Use the interface implemented by an object. + +Patch 9.0.1185 +Problem: Using class from imported script not tested. +Solution: Add tests. Implement what is missing. + +Patch 9.0.1186 +Problem: Imported class does not work when used twice in a line. +Solution: Fix the type parsing. + +Patch 9.0.1187 +Problem: Test for using imported class fails. +Solution: Skip over rest of type. + +Patch 9.0.1188 +Problem: Return value of type() for class and object unclear. +Solution: Add v:t_object and v:t_class. + +Patch 9.0.1189 +Problem: Invalid memory access with folding and using "L". +Solution: Prevent the cursor from moving to line zero. + +Patch 9.0.1190 +Problem: AppVeyor runs much slower with MSVC 2022. +Solution: Go back to MSVC 2015. (Christopher Plewright, closes #11810) + +Patch 9.0.1191 +Problem: Some Bazel files are not recognized. +Solution: Add an extra Bazel pattern. (Keith Smily, closes #11807) + +Patch 9.0.1192 +Problem: No error when class function argument shadows a member. +Solution: Check for shadowing. + +Patch 9.0.1193 +Problem: Cannot map when using the Kitty key protocol. +Solution: Add a non-simplified mapping for K_ESC. (closes #11811) + +Patch 9.0.1194 +Problem: Compiler warning for comparing pointer with int. +Solution: Change NULL to zero. + +Patch 9.0.1195 +Problem: Restoring KeyTyped when building statusline not tested. +Solution: Add a test. Clean up and fix other tests. (closes #11815) + +Patch 9.0.1196 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11813) + +Patch 9.0.1197 +Problem: Dump file missing from patch. +Solution: Add missing dump file. + +Patch 9.0.1198 +Problem: Abstract class not supported yet. +Solution: Implement abstract class and add tests. + +Patch 9.0.1199 +Problem: Crash when using kitty and using a mapping with . +Solution: Do not try setting did_simplify when it is NULL. (closes #11817) + +Patch 9.0.1200 +Problem: AppVeyor builds with an old Python version. +Solution: Switch from Python 3.8 to 3.11. (Christopher Plewright, + closes #11814) + +Patch 9.0.1201 +Problem: Assignment with operator doesn't work in object method. +Solution: Handle loading the object member. (closes #11820) Add a few more + tests. + +Patch 9.0.1202 +Problem: Crash when iterating over list of objects. +Solution: Do not make a copy of tt_member for object or class. + (closes #11823) + +Patch 9.0.1203 +Problem: Return type of values() is always list. +Solution: Use the member type if possible. (issue #11822) + +Patch 9.0.1204 +Problem: Expression compiled the wrong way after using an object. +Solution: Generate constants before getting the type. + +Patch 9.0.1205 +Problem: Crash when handling class that extends another class with more + than one object members. +Solution: Correct pointer computations. (closes #11824) + +Patch 9.0.1206 +Problem: Testing with Python on AppVeyor does not work properly. +Solution: Fix typo. Move most lines to the .bat file. (Christopher + Plewright, closes #11828) + +Patch 9.0.1207 +Problem: Error when object type is expected but getting "any". +Solution: When actual type is "any" use a runtime type check. + (closes #11826) + +Patch 9.0.1208 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11819) + +Patch 9.0.1209 +Problem: Getting interface member does not always work. +Solution: Convert the index on the interface to the index on the object. + (closes #11825) + +Patch 9.0.1210 +Problem: Compiler complains about declaration after label. +Solution: Move declaration to beginning of block (John Marriott) + +Patch 9.0.1211 +Problem: Storing value in interface member does not always work. +Solution: Convert the index on the interface to the index on the object. + +Patch 9.0.1212 +Problem: Cannot read back what setcellwidths() has done. +Solution: Add getcellwidths(). (Kota Kato, closes #11837) + +Patch 9.0.1213 +Problem: Adding a line below the last one does not expand fold. +Solution: Do not skip mark_adjust() when adding lines below the last one. + (Brandon Simmons, closes #11832, closes #10698) + +Patch 9.0.1214 +Problem: File left behind after running tests. +Solution: Delete the file. (Dominique Pellé, closes #11839) + +Patch 9.0.1215 +Problem: Using isalpha() adds dependency on current locale. +Solution: Do not use isalpha() for recognizing a URL or the end of an Ex + command. (closes #11835) + +Patch 9.0.1216 +Problem: Coverity warns for ignoring return value. +Solution: Break out of loop if function fails. + +Patch 9.0.1217 +Problem: Using an object member in a closure doesn't work. +Solution: Initialize lv_loop_depth. (closes #11840) + +Patch 9.0.1218 +Problem: Completion includes functions that don't work. +Solution: Skip functions that are not implemented. (Kota Kato, + closes #11845) + +Patch 9.0.1219 +Problem: Handling of FORTIFY_SOURCE flags doesn't match Fedora usage. +Solution: Adjust the "sed" patterns. (Zdenek Dohnal, closes #11847) + +Patch 9.0.1220 +Problem: Termcap/terminfo entries do not indicate where modifiers might + appear. +Solution: Add ";*" for function keys where modifiers are likely to be used. + +Patch 9.0.1221 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11833) + +Patch 9.0.1222 +Problem: Terminal tests are flaky on MacOS. +Solution: Add TermWait() calls. (Yegappan Lakshmanan, closes #11852) + +Patch 9.0.1223 +Problem: Cannot use setcellwidths() below 0x100. +Solution: Also accept characters between 0x80 and 0x100. (Ken Takata, + closes #11834) + +Patch 9.0.1224 +Problem: Cannot call a :def function with a number for a float argument. +Solution: Accept a number as well, convert it to a float. + +Patch 9.0.1225 +Problem: Reading past the end of a line when formatting text. +Solution: Check for not going over the end of the line. + +Patch 9.0.1226 +Problem: Spurious empty line when using text propertie and virtual text. +Solution: Do not set "text_prop_follows" when the other text property is not + virtual text. (closes #11846) + +Patch 9.0.1227 +Problem: No cmdline completion for :runtime. +Solution: Add completion for :runtime. (closes #11853, closes #11447) + Improve the resulting matches. + +Patch 9.0.1228 +Problem: Fuzzy menu completion is only tested in the GUI. +Solution: Make fuzzy menu completion test work without GUI. + (closes #11861) + +Patch 9.0.1229 +Problem: Cap'n Proto files are not recognized. +Solution: Add a pattern and the "capnp" filetype. (Amaan Qureshi, + closes #11862) + +Patch 9.0.1230 +Problem: Apache thrift files are not recognized. +Solution: Add a pattern for thrift files. (Amaan Qureshi, closes #11859) + +Patch 9.0.1231 +Problem: Completion of :runtime does not handle {where} argument. +Solution: Parse the {where} argument. (closes #11863) + +Patch 9.0.1232 +Problem: ColorTable saving and restoring does not work properly. +Solution: Restore ColorTable[16] usage. (Christopher Plewright, + closes #11836) + +Patch 9.0.1233 +Problem: search() loops forever if "skip" is TRUE for all matches. +Solution: Keep the position of the first match. + +Patch 9.0.1234 +Problem: The code style has to be checked manually. +Solution: Add basic code style checks in a test. Fix or avoid uncovered + problems. + +Patch 9.0.1235 +Problem: MS-Windows console: not flushing termguicolors. +Solution: Flush termguicolors. (Christopher Plewright, closes #11871) + +Patch 9.0.1236 +Problem: Code in same_leader() can be simplified. +Solution: Simplify code that is executed only once. (closes #11867) + +Patch 9.0.1237 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11858) + +Patch 9.0.1238 +Problem: :runtime completion can be further improved. +Solution: Also complete the {where} argument values and adjust the + completion for that. (closes #11874) + +Patch 9.0.1239 +Problem: Cannot have a line break before an object member access. +Solution: Check for "." in next line. (closes #11864) + +Patch 9.0.1240 +Problem: Cannot access a private object member in a lambda defined inside + the class. +Solution: Go up the context stack to find the class. (closes #11866) + +Patch 9.0.1241 +Problem: Coverity warns for not checking function return value. +Solution: Explicitly ignore the return value. + +Patch 9.0.1242 +Problem: Code for :runtime completion is not consistent. +Solution: Make code for cmdline expansion more consistent. (closes #11875) + +Patch 9.0.1243 +Problem: :setglobal cannot use script-local function for "expr" option. +Solution: Use the pointer to the option value properly. (closes #11883) + +Patch 9.0.1244 +Problem: Cursor briefly displayed in a wrong position when pressing Esc in + Insert mode after autoindent was used. +Solution: Do not adjust the cursor position for assumed deleted white space + if text is following. (closes #11877) + +Patch 9.0.1245 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11879) + +Patch 9.0.1246 +Problem: Code is indented more than necessary. +Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, + closes #11887) + +Patch 9.0.1247 +Problem: Divide by zero with 'smoothscroll' set and a narrow window. +Solution: Bail out when the window is too narrow. + +Patch 9.0.1248 +Problem: Cannot export an interface. (Ernie Rael) +Solution: Add the EX_EXPORT flag to :interface. (closes #11884) + +Patch 9.0.1249 +Problem: Cannot export an abstract class. (Ernie Rael) +Solution: Add the EX_EXPORT flag to :abstract. (closes #11884) + +Patch 9.0.1250 +Problem: Cannot use an object method with :defer. (Ernie Rael) +Solution: Find the object method and generate code to call it. + (closes #11886) + +Patch 9.0.1251 +Problem: Checking returned value of ga_grow() is inconsistent. +Solution: Check for FAIL instaed of "not OK". (Yegappan Lakshmanan, + closes #11897) + +Patch 9.0.1252 +Problem: MS-Windows: scrollback cropped off on Vim exit. +Solution: Don't call SetConsoleScreenBufferInfoEx when using the alternate + screen buffer. (Christopher Plewright, closes #11882) + +Patch 9.0.1253 +Problem: CI adds repository unnecessarily. +Solution: Remove the line from the workflow. (closes #11900) + +Patch 9.0.1254 +Problem: Calling a method on an interface does not work. +Solution: At runtime figure out what method to call. (closes #11901) + +Patch 9.0.1255 +Problem: Changing 'virtualedit' does not have immediate effect. +Solution: Correct how is checked for a changed value. (closes #11878) + +Patch 9.0.1256 +Problem: NetworkManager connection files are not recognized. +Solution: Add a pattern for NetworkManager connection files. (closes #11893) + +Patch 9.0.1257 +Problem: Code style is not check in test scripts. +Solution: Add basic code style check for test files. + +Patch 9.0.1258 +Problem: Code style test fails. +Solution: Adjust test files. + +Patch 9.0.1259 +Problem: Diffmode test fails. +Solution: Adjust expected result for adjusted indenting. + +Patch 9.0.1260 +Problem: Coverity warns for possible NULL pointer usage. +Solution: Change the condition. + +Patch 9.0.1261 +Problem: Elsa files are not recognized. +Solution: Add a pattern for Elsa files. (Amaan Qureshi, closes #11908) + +Patch 9.0.1262 +Problem: The did_set_string_option function is too long. +Solution: Split off functionality to individual functions. (Yegappan + Lakshmanan, Lewis Russell, closes #11904) + +Patch 9.0.1263 +Problem: KDL files are not recognized. +Solution: Add a pattern for KDL files. (Amaan Qureshi, closes #11898) + +Patch 9.0.1264 +Problem: Motif: compiler warning for unused argument. +Solution: Add "UNUSED". + +Patch 9.0.1265 +Problem: Using an interface method may give a compilation error. +Solution: Do not try to compile the body of a method of an interface. + (closes #11885) + +Patch 9.0.1266 +Problem: Error for space before ": type" is inconsistent. +Solution: Give E1059 in more places. (closes #11868) + +Patch 9.0.1267 +Problem: The did_set_string_option function is too long. +Solution: Further cleanup of handling string options. (Yegappan Lakshmanan, + Lewis Russell, closes #11920) + +Patch 9.0.1268 +Problem: .clangd and .stylelintrc files don't get a filetype. +Solution: Use yaml for .clangd and json for .stylelintrc files. (Mark + Skelton, closes #11916) + +Patch 9.0.1269 +Problem: Channel test often fails on Mac OS. +Solution: Increase the wait time from one to 15 milliseconds. (D. Ben + Knoble, closes #11894) + +Patch 9.0.1270 +Problem: Crash when using search stat in narrow screen. +Solution: Check length of message. (closes #11921) + +Patch 9.0.1271 +Problem: Using sizeof() and subtract array size is tricky. +Solution: Use offsetof() instead. (closes #11926) + +Patch 9.0.1272 +Problem: Typo in pattern for filetype detection. +Solution: Fix the typo. (closes #11924) + +Patch 9.0.1273 +Problem: "1v" may select block with wrong size. (Evgeni Chasnovski) +Solution: Compute "curswant" in the right line. (closes #11925) + +Patch 9.0.1274 +Problem: FIRRTL files are not recognized. +Solution: Add a pattern for FIRRTL files. (Amaan Qureshi, closes #11931) + +Patch 9.0.1275 +Problem: The code for setting options is too complicated. +Solution: Refactor the do_set() function. (Yegappan Lakshmanan, Lewis + Russell, closes #11932) + +Patch 9.0.1276 +Problem: Some mappings with Meta and Shift do not work. +Solution: Apply the Shift modifier to the key. (issue #11913) + +Patch 9.0.1277 +Problem: Cursor may move with autocmd in Visual mode. +Solution: Restore "VIsual_active" before calling check_cursor(). + (closes #11939) + +Patch 9.0.1278 +Problem: go.work.sum files are not recognized. +Solution: Recognize go.work.sum files as the gosum filetype. (Amaan Qureshi, + closes #11940) + +Patch 9.0.1279 +Problem: Display shows lines scrolled down erroneously. (Yishai Lerner) +Solution: Do not change "wl_lnum" at index zero. (closes #11938) + +Patch 9.0.1280 +Problem: Inssufficient testing for what 9.0.1265 fixes. +Solution: Add a couple of test cases. (issue #11885) + +Patch 9.0.1281 +Problem: Cadence files are not recognized. +Solution: Recognize Cadence files. (Janez Podhostnik, closes #11951) + +Patch 9.0.1282 +Problem: Ron files are not recognized. +Solution: Recognize Ron files. (Amaan Qureshi, closes #11948) + +Patch 9.0.1283 +Problem: The code for setting options is too complicated. +Solution: Refactor the do_set() function. (Yegappan Lakshmanan, Lewis + Russell, closes #11945) + +Patch 9.0.1284 +Problem: Compiler warnings for uninitialized variables. (Tony Mechelynck) +Solution: Add variable initializations. + +Patch 9.0.1285 +Problem: Various small problems. +Solution: Adjust white space and comments. + +Patch 9.0.1286 +Problem: Coverity warns for using a NULL pointer. +Solution: Bail out whan "varp" is NULL. + +Patch 9.0.1287 +Problem: With the Kitty key protocl Esc with NumLock cannot be mapped. +Solution: Also use K_ESC when there is a modifier. (closes #11811) + +Patch 9.0.1288 +Problem: FunC files are not recognized. +Solution: Recognize FunC files. (Amaan Qureshi, closes #11949) + +Patch 9.0.1289 +Problem: A newer version of clang can be used for CI. +Solution: Switch from clang-15 to clang-16. (closes #11577) + +Patch 9.0.1290 +Problem: CTRL-N and -P on cmdline don't trigger CmdlineChanged. +Solution: Jump to cmdline_changed instead of cmdline_not_changed. + (closes #11956) + +Patch 9.0.1291 +Problem: Move language files are not recognized. +Solution: Recognize Move language files. (Amaan Qureshi, closes #11947) + +Patch 9.0.1292 +Problem: :defer may call the wrong method for an object. (Ernie Rael) +Solution: When en object is from a class that extends or implements, figure + out the method to call at runtime. (closes #11910) + +Patch 9.0.1293 +Problem: The set_num_option() is too long. +Solution: Move code to separate functions. (Yegappan Lakshmanan, + closes #11954) + +Patch 9.0.1294 +Problem: The set_bool_option() function is too long. +Solution: Move code to separate functions. (Yegappan Lakshmanan, + closes #11964) + +Patch 9.0.1295 +Problem: The option initialization function is too long. +Solution: Move code to separate functions. (Yegappan Lakshmanan, + closes #11966) + +Patch 9.0.1296 +Problem: Calling an object method with arguments does not work. (Ernie + Rael) +Solution: Take the argument count into account when looking up the object. + (closes #11911) + +Patch 9.0.1297 +Problem: Wrong value for $LC_CTYPE makes the environ test fail. +Solution: Unset $LC_CTYPE when running tests. (closes #11963) + +Patch 9.0.1298 +Problem: Inserting a register on the command line does not trigger + incsearch or update hlsearch. +Solution: Have cmdline_insert_reg() return CMDLINE_CHANGED when appropriate + and handle it correctly. (Ken Takata, closes #11960) + +Patch 9.0.1299 +Problem: Change for triggering incsearch not sufficiently tested. +Solution: Add a test case. Simplify the code. (closes #11971) + +Patch 9.0.1300 +Problem: 'statusline' only supports one "%=" item. +Solution: Add support for multiple "%=" items. (TJ DeVries, Yegappan + Lakshmanan, closes #11970, closes #11965) + +Patch 9.0.1301 +Problem: Virtual text below empty line not displayed. +Solution: Adjust flags and computations. (closes #11959) + +Patch 9.0.1302 +Problem: On a Belgian keyboard CTRL-] does not work. +Solution: Translate CTRL-$ into CTRL-]. (closes #11831) + +Patch 9.0.1303 +Problem: Motif: scrollbar width/height wrong when maximized. +Solution: Set the width/height when creating the scrollbar. (closes #11946) + +Patch 9.0.1304 +Problem: "$" for 'list' option displayed in wrong position when there are + text properties. +Solution: Adjust logic for order of displayed items. (closes #11959) + +Patch 9.0.1305 +Problem: Cursor in wrong line with virtual text above. +Solution: Count extra line for text property above/below. (closes #11959) + +Patch 9.0.1306 +Problem: No regression test for solved problem of #11959. +Solution: Add a test, also with 'list' set. (closes #11959) + +Patch 9.0.1307 +Problem: Setting 'formatoptions' with :let doesn't check for errors. +Solution: Pass "errbuf" to set_string_option(). (Yegappan Lakshmanan, + closes #11974, closes #11972) + +Patch 9.0.1308 +Problem: The code for setting options is too complicated. +Solution: Refactor the code for setting options. (Yegappan Lakshmanan, + closes #11989) + +Patch 9.0.1309 +Problem: Scrolling two lines with even line count and 'scrolloff' set. +Solution: Adjust how the topline is computed. (closes #10545) + +Patch 9.0.1310 +Problem: 'splitkeep' test has failures. +Solution: Adjust expected cursor line position. + +Patch 9.0.1311 +Problem: Coverity warns for using a NULL pointer. +Solution: Use "empty_option" instead of NULL. + +Patch 9.0.1312 +Problem: Cursor position wrong when splitting window in insert mode. +Solution: Pass the actual mode to win_fix_cursor(). (Luuk van Baal, + closes #11999, + +Patch 9.0.1313 +Problem: Some settings use the current codepage instead of 'encoding'. +Solution: Adjust how options are initialized. (Ken Takata, closes #11992) + +Patch 9.0.1314 +Problem: :messages behavior depends on 'fileformat' of current buffer. +Solution: Pass the buffer pointer to where it is used. (Mirko Ceroni, + closes #11995) + +Patch 9.0.1315 +Problem: Escaping for completion of map command not properly tested. +Solution: Add a few test cases. (closes #12009) + +Patch 9.0.1316 +Problem: MS-Windows: vimfiles dir created with admin group. +Solution: Use ShellExecAsUser to create the vimfiles directory. (Christopher + Plewright, Ken Takata, closes #12000, closes #11888) + +Patch 9.0.1317 +Problem: Crash when using an unset object variable. +Solution: Give an error instead. (closes #12005) + +Patch 9.0.1318 +Problem: Code style test fails. +Solution: Remove trailing white space. + +Patch 9.0.1319 +Problem: PRQL files are not recognized. +Solution: Add a filetype pattern for PRQL files. (Matthias Queitsch, + closes #12018) + +Patch 9.0.1320 +Problem: Checking the type of a null object causes a crash. +Solution: Don't try to get the class of a null object. (closes #12005) + Handle error from calling a user function better. + +Patch 9.0.1321 +Problem: vimscript test fails where using {expr} syntax. +Solution: Only return FCERR_FAILED in call_user_func() for Vim9 script. + +Patch 9.0.1322 +Problem: Crash when indexing "any" which is an object. +Solution: Check the index is a number. Do not check the member type of an + object. (closes #12019) + +Patch 9.0.1323 +Problem: Build failure with +eval feature. +Solution: Add missing part for using funcerror_T. + +Patch 9.0.1324 +Problem: "gj" and "gk" do not move correctly over a closed fold. +Solution: Use the same code as used for "j"/"k" to go to the next/previous + line. (Luuk van Baal, closes #12007) + +Patch 9.0.1325 +Problem: 'colorcolumn' highlight wrong with virtual text above. +Solution: Adjust column of 'colorcolumn' for text propertly. (closes #12004) + +Patch 9.0.1326 +Problem: Relative line number not updated with virtual text above. +Solution: Adjust the row for the line number for virtual text above. + (closes #12004) + +Patch 9.0.1327 +Problem: Cursor in wrong position below line with virtual text below ending + in multi-byte character. +Solution: When checking for last character take care of multi-byte + character. + +Patch 9.0.1328 +Problem: Error when using "none" for GUI color is confusing. +Solution: Mention that the name should perhaps be "NONE". (closes #1400) + +Patch 9.0.1329 +Problem: Completion of map includes simplified ones. +Solution: Do not complete simplified mappings. (closes #12013) + +Patch 9.0.1330 +Problem: Handling new value of an option has a long "else if" chain. +Solution: Use a function pointer. (Yegappan Lakshmanan, closes #12015) + +Patch 9.0.1331 +Problem: Illegal memory access when using :ball in Visual mode. +Solution: Stop Visual mode when using :ball. (Pavel Mayorov, closes #11923) + +Patch 9.0.1332 +Problem: Crash when using buffer-local user command in cmdline window. + (Karl Yngve LervÃ¥g) +Solution: Use the right buffer to find the user command. (closes #12030, + closes #12029) + +Patch 9.0.1333 +Problem: When redo'ing twice may not get the script ID. +Solution: When "last_used_map" map is not set use "last_used_sid". + (closes #11930) + +Patch 9.0.1334 +Problem: Using tt_member for the class leads to mistakes. +Solution: Add a separate tt_class field. + +Patch 9.0.1335 +Problem: No test for bad use of spaces in help files. +Solution: Add checks for use of spaces in help files. Ignore intentional + spaces. (Hirohito Higashi, closes #11952) + +Patch 9.0.1336 +Problem: Functions without arguments are not always declared properly. +Solution: Use "(void)" instead of "()". (Yegappan Lakshmanan, closes #12031) + +Patch 9.0.1337 +Problem: Yuck files are not recognized. +Solution: Add a filetype pattern for yuck files. (Amaan Qureshi, + closes #12033) + +Patch 9.0.1338 +Problem: :defcompile and :disassemble can't find class method. (Ernie Rael) +Solution: Make a class name and class.method name work. (closes #11984) + +Patch 9.0.1339 +Problem: No test for :disassemble with class function. +Solution: Add a test. + +Patch 9.0.1340 +Problem: Coverity warns for using NULL pointer. +Solution: Check that lhs_type is not NULL. + +Patch 9.0.1341 +Problem: Build error with mzscheme but without GUI. +Solution: Adjust #ifdefs. (Ken Takata, closes #12042) Also fix function + argument. + +Patch 9.0.1342 +Problem: MS-Windows: linking may fail with space in directory name. +Solution: Add quotes. (closes #12050) + +Patch 9.0.1343 +Problem: Check for OSC escape sequence doesn't work. +Solution: Move square bracket to the right place. (Johan Mattsson, + closes #12048) + +Patch 9.0.1344 +Problem: Check for OSC escape sequence doesn't work. +Solution: Fix typo in index. + +Patch 9.0.1345 +Problem: Too many "else if" statements for handling options. +Solution: Add more functions to handle options. (Yegappan Lakshmanan, + closes #12051) + +Patch 9.0.1346 +Problem: Starlark files are not recognized. +Solution: Add patterns for Starlark files. (Amaan Qureshi, closes #12049) + +Patch 9.0.1347 +Problem: "gr CTRL-O" stays in Insert mode. (Pierre Ganty) +Solution: Do not set restart_edit when "cmdchar" is 'v'. (closes #12045) + +Patch 9.0.1348 +Problem: Un-grammar files are not recognized. +Solution: Add patterns for Un-grammar files. (Amaan Qureshi, closes #12034) + +Patch 9.0.1349 +Problem: "gr" with a count fails. +Solution: Break out of the loop only after using the count. + +Patch 9.0.1350 +Problem: CPON files are not recognized. +Solution: Add patterns for CPON files. (Amaan Qureshi, closes #12053) + +Patch 9.0.1351 +Problem: Dhall files are not recognized. +Solution: Add patterns for Dhall files. (Amaan Qureshi, closes #12052) + +Patch 9.0.1352 +Problem: "ignore" files are outdated. +Solution: Update "ignore" files. (Ken Takata, closes #12056) + +Patch 9.0.1353 +Problem: Too many "else if" statements to handle option values. +Solution: Add more functions to handle option value changes. (Yegappan + Lakshmanan, closes #12058) + +Patch 9.0.1354 +Problem: "gr CTRL-G" stays in virtual replace mode. (Pierre Ganty) +Solution: Prepend CTRL-V before control characters. (closes #12045) + +Patch 9.0.1355 +Problem: No error when declaring a class twice. (Ernie Rael) +Solution: Pass different flags when declaring the class. (closes #12057) + +Patch 9.0.1356 +Problem: Cannot cancel "gr" with Esc. +Solution: Make "gr" do nothing. (closes #12064) + +Patch 9.0.1357 +Problem: Using null_object results in an internal error. (Ernie Rael) +Solution: Add instructions for pushing an object and class. (closes #12044) + +Patch 9.0.1358 +Problem: Compilation error with some compilers. +Solution: Avoid using "class" as member name. + +Patch 9.0.1359 +Problem: Too many "else if" statements in handling options. +Solution: Add more functions for handling option changes. (Yegappan + Lakshmanan, closes #12060) + +Patch 9.0.1360 +Problem: Cue files are not recognized. +Solution: Add patterns for Cue files. (Amaan Qureshi, closes #12067) + +Patch 9.0.1361 +Problem: extendnew() not sufficiently tested. +Solution: Add a few more test cases for extendnew(). (closes #12075) + +Patch 9.0.1362 +Problem: ml_get error when going to another tab. (Daniel J. Perry) +Solution: Do not call update_topline() if "curwin" is invalid. + (closes #11907) + +Patch 9.0.1363 +Problem: Crash when :def function has :break in skipped block. (Ernie Rael) +Solution: Don't generate a jump for a skipped :break. (closes #12077) + +Patch 9.0.1364 +Problem: Build error with older Mac OS. +Solution: Adjust #ifdef. (Yee Cheng Chin, closes #12074) + +Patch 9.0.1365 +Problem: Dead test code. +Solution: Remove code that depends on Farsi, which has been removed. + (closes #12084) + +Patch 9.0.1366 +Problem: Functions for setting options are in random order. +Solution: Sort functions alphabetically. (Yegappan Lakshmanan, + closes #12082) + +Patch 9.0.1367 +Problem: Divide by zero in zero-width window. +Solution: Check the width is positive. + +Patch 9.0.1368 +Problem: Bass files are not recognized. +Solution: Add patterns for Bass files. (Amaan Qureshi, closes #12088) + +Patch 9.0.1369 +Problem: Still some "else if" constructs for setting options. +Solution: Add a few more functions for handling options. (Yegappan + Lakshmanan, closes #12090) + +Patch 9.0.1370 +Problem: Crash when using a NULL object. (Ernie Rael) +Solution: Check for NULL and give an error message. (closes #12083) + +Patch 9.0.1371 +Problem: Ballooneval interferes with Insert completion. +Solution: Ignore mouse-move events when completing. (closes #12094, + closes #12092) + +Patch 9.0.1372 +Problem: Test for 'toolbariconsize' may fail. +Solution: Only test 'toolbariconsize' when it is supported. (James McCoy, + closes #12095) + +Patch 9.0.1373 +Problem: Wrong text displayed when using both 'linebreak' and 'list'. +Solution: Only set "c_extra" to NUL when "p_extra" is not empty. (Hirohito + Higashi, closes #12065) + +Patch 9.0.1374 +Problem: Function for setting options not used consistently. +Solution: Use a function for 'encoding' and terminal options. (Yegappan + Lakshmanan, closes #12099) + +Patch 9.0.1375 +Problem: Crash when getting member of obj of unknown class. +Solution: Check for NULL class and give an error message. (Ernie Rael, + closes #12096) + +Patch 9.0.1376 +Problem: Accessing invalid memory with put in Visual block mode. +Solution: Adjust the cursor column if needed. + +Patch 9.0.1377 +Problem: job_status() may return "dead" if the process parent changed. +Solution: Call mch_process_running() to check if the job is still alive. + +Patch 9.0.1378 +Problem: Illegal memory access when using virtual editing. +Solution: Make sure "startspaces" is not negative. + +Patch 9.0.1379 +Problem: Functions for handling options are not ordered. +Solution: Put functions in alphabetical order. (Yegappan Lakshmanan, + closes #12101) + +Patch 9.0.1380 +Problem: CTRL-X on 2**64 subtracts two. (James McCoy) +Solution: Correct computation for large number. (closes #12103) + +Patch 9.0.1381 +Problem: ACCESS_ names have a conflict with on some systems. +Solution: Rename by prepending VIM_. (Ola Söder, closes #12105) + +Patch 9.0.1382 +Problem: Failing test for strptime() doesn't show returned value. +Solution: Use assert_equal() instead of assert_true(). + +Patch 9.0.1383 +Problem: xxd: combination of little endian and cols fails. (Aapo + Rantalainen) +Solution: Round up the space taken by the hex output. (closes #12097) + +Patch 9.0.1384 +Problem: Setting HOMEBREW_NO_AUTO_UPDATE is not needed with Homebew version + 4. +Solution: Remove setting HOMEBREW_NO_AUTO_UPDATE. (closes #12008) + +Patch 9.0.1385 +Problem: g'Esc is considered an error. +Solution: Make g'Esc silently abandon the command. (closes #12110) + +Patch 9.0.1386 +Problem: Options test fails with some window width. +Solution: Adjust what text the test checks with. (closes #12111) + +Patch 9.0.1387 +Problem: Scrollbar test sporadically fails. +Solution: Mark the scrollbar test as flaky. (Christian Brabandt, + closes #12113) + +Patch 9.0.1388 +Problem: Amiga: not all builds use gethostname(). +Solution: Use gethostname() for all builds except AROS. (Ola Söder, + closes #12107) + +Patch 9.0.1389 +Problem: Amiga: a couple of include files are included twice. +Solution: Remove duplicate includes. (Ola Söder, closes #12106) + +Patch 9.0.1390 +Problem: FOR_ALL_ macros are defined in an unexpected file. +Solution: Move FOR_ALL_ macros to macros.h. Add FOR_ALL_HASHTAB_ITEMS. + (Yegappan Lakshmanan, closes #12109) + +Patch 9.0.1391 +Problem: "clear" macros are not always used. +Solution: Use ALLOC_ONE, VIM_CLEAR, CLEAR_POINTER and CLEAR_FIELD in more + places. (Yegappan Lakshmanan, closes #12104) + +Patch 9.0.1392 +Problem: Using NULL pointer with nested :open command. +Solution: Check that ccline.cmdbuff is not NULL. + +Patch 9.0.1393 +Problem: Cairo files are not recognized. +Solution: Add a pattern for Cairo files. (Amaan Qureshi, closes #12118) + +Patch 9.0.1394 +Problem: Unx Tal files are not recognized. +Solution: Add a pattern for Unx Tal files. (Amaan Qureshi, closes #12117) + +Patch 9.0.1395 +Problem: Odin files are not recognized. +Solution: Add a pattern for Odin files. (Amaan Qureshi, closes #12122) + +Patch 9.0.1396 +Problem: sort(list, 'N') does not work in Vim9 script context. +Solution: Convert string to number without giving an error. (closes #12061) + +Patch 9.0.1397 +Problem: Highlight for popupmenu kind and extra cannot be set. +Solution: Add PmenuKind, PmenuKindSel, PmenuExtra and PmenuExtraSel + highlight groups and use them. (Gianmaria Bajo, closes #12114) + +Patch 9.0.1398 +Problem: Profile test repeats the headers many times. +Solution: Put the headers in script variables. + +Patch 9.0.1399 +Problem: Highlight test script has a few problems. +Solution: Rewrite the script in Vim9 syntax. (closes #10379) + +Patch 9.0.1400 +Problem: find_file_in_path() is not reentrant. +Solution: Instead of global variables pass pointers to the functions. + (closes #12093) + +Patch 9.0.1401 +Problem: Condition is always true. +Solution: Remove the condition. (closes #12139) + +Patch 9.0.1402 +Problem: Crash when using null_class. +Solution: Give an error when trying to use a null class. + +Patch 9.0.1403 +Problem: Unused variables and functions. +Solution: Delete items and adjust #ifdefs. (Dominique Pellé, closes #12145) + +Patch 9.0.1404 +Problem: Compilation error with some compilers. +Solution: Adjust array initialization. (John Marriott) + +Patch 9.0.1405 +Problem: Missing check for out-of-memory. +Solution: Check for alloc() returning NULL pointer. (closes #12149) + +Patch 9.0.1406 +Problem: ILE RPG files are not recognized. +Solution: Add patterns for ILE RPG files. (Andreas Louv, issue #12152) + +Patch 9.0.1407 +Problem: TableGen files are not recognized. +Solution: Add a pattern for TableGen files. (Amaan Qureshi, closes #12156) + +Patch 9.0.1408 +Problem: QMLdir files are not recognized. +Solution: Add a pattern for QMLdir files. (Amaan Qureshi, closes #12161) + +Patch 9.0.1409 +Problem: Racket files are recognized as scheme. +Solution: Recognize rackets files separately. (Gabriel Kakizaki, + closes #12164, closes #12162) + +Patch 9.0.1410 +Problem: MacOS: sed fails on .po files. +Solution: Set $LANG to "C". (Yee Cheng Chin, closes #12153) + +Patch 9.0.1411 +Problem: Accuracy of profiling is not optimal. +Solution: Use CLOCK_MONOTONIC if possible. (Ernie Rael, closes #12129) + +Patch 9.0.1412 +Problem: Pony files are not recognized. +Solution: Add a pattern for Pony files. (Amaan Qureshi, closes #12155) + +Patch 9.0.1413 +Problem: Compiler warning for unused variable. +Solution: Move variable declaration. (John Marriott) + +Patch 9.0.1414 +Problem: in Kitty does not use the Shift modifier. +Solution: Apply the Shift modifier to ASCII letters. (closes #11913) + +Patch 9.0.1415 +Problem: Crystal files are not recognized. +Solution: Add a pattern for Crystal files. (Amaan Qureshi, closes #12175) + +Patch 9.0.1416 +Problem: Crash when collection is modified when using filter(). +Solution: Lock the list/dict/blob. (Ernie Rael, closes #12183) + +Patch 9.0.1417 +Problem: ESDL files are not recognized. +Solution: Add a pattern for ESDL files. (Amaan Qureshi, closes #12174) + +Patch 9.0.1418 +Problem: The included xdiff code is a bit outdated. +Solution: Sync with the latest git xdiff code. (Yee Cheng Chin, + closes #12181) + +Patch 9.0.1419 +Problem: Lean files are not recognized. +Solution: Add a pattern for Lean files. (Amaan Qureshi, closes #12177) + +Patch 9.0.1420 +Problem: Build failure because SIZE_MAX is not defined. +Solution: Define SIZE_MAX when missing. (John Marriott) + +Patch 9.0.1421 +Problem: Nu files are not recognized. +Solution: Add a pattern for Nu files. (Amaan Qureshi, closes #12172) + +Patch 9.0.1422 +Problem: Sage files are not recognized. +Solution: Add a pattern for Sage files. (Amaan Qureshi, closes #12176) + +Patch 9.0.1423 +Problem: WebAssembly Interface Type files are not recognized. +Solution: Add a pattern for WIT files. (Amaan Qureshi, closes #12173) + +Patch 9.0.1424 +Problem: Unused macros are defined. +Solution: Remove the unused macros. + +Patch 9.0.1425 +Problem: "wat" and "wast" files are one filetype. +Solution: Add a separate filetype for "wat" files. (Amaan Qureshi, + closes #12165) + +Patch 9.0.1426 +Problem: Indent wrong after "export namespace" in C++. +Solution: Skip over "inline" and "export" in any order. (Virginia Senioria, + closes #12134, closes #12133) + +Patch 9.0.1427 +Problem: Warning for uninitialized variable. (Tony Mechelynck) +Solution: Add #ifdef. + +Patch 9.0.1428 +Problem: Cursor in wrong position when leaving insert mode. +Solution: Update the w_valid flags. Position the cursor also when not + redrawing. (closes #12137) + +Patch 9.0.1429 +Problem: Invalid memory access when ending insert mode. +Solution: Check if the insert_skip value is valid. + +Patch 9.0.1430 +Problem: Livebook files are not recognized. +Solution: Add a pattern for Livebook files. (Mathias Jean Johansen, + closes #12203) + +Patch 9.0.1431 +Problem: getscriptinfo() loops even when specific SID is given. +Solution: Only loop when needed. Give a clearer error message. + (closes #12207) + +Patch 9.0.1432 +Problem: Completion popup in wrong position with virtual text "above". +Solution: Adjust the column. (closes #12210) + +Patch 9.0.1433 +Problem: On some systems the Lua library is not found. +Solution: Check if a subdirectory for Lua exists. (closes #4475) + +Patch 9.0.1434 +Problem: Crash when adding package already in 'runtimepath'. +Solution: Change order for using 'runtimepath' entries. (closes #12215) + +Patch 9.0.1435 +Problem: Scrolling too many lines when 'wrap' and 'diff' are set. +Solution: Only scroll by screenlines for 'diff' when 'wrap' is not set. + (closes #12211) + +Patch 9.0.1436 +Problem: Cannot compare a typed variable with v:none. +Solution: Allow for "x is v:none" and "x isnot v:none". (issue #12194) + +Patch 9.0.1437 +Problem: Test fails with different error number. +Solution: Adjust the expected error. + +Patch 9.0.1438 +Problem: .fs files are falsely recognized as forth files. +Solution: Check 100 lines for something that looks like forth. (Johan + Kotlinski, closes #12219, closes #11988) + +Patch 9.0.1439 +Problem: Start Insert mode when accessing a hidden prompt buffer. +Solution: Call leaving_window() in aucmd_restbuf(). (Thorben Tröbst, + closes #12148, closes #12147) + +Patch 9.0.1440 +Problem: "rvim" can execute a shell through :diffpatch. +Solution: Disallow the shell "patch" command. + +Patch 9.0.1441 +Problem: MacOS: Python 3 using framework do not set dll name properly. +Solution: Use the framework prefix. (Yee Cheng Chin, closes #12189) + +Patch 9.0.1442 +Problem: mapset() does not restore non-script context. +Solution: Also accept negative sid. (closes #12132) + +Patch 9.0.1443 +Problem: Ending Insert mode when accessing a hidden prompt buffer. +Solution: Don't stop Insert mode when it was active before. (closes #12237) + +Patch 9.0.1444 +Problem: Crash when passing NULL to setcmdline(). (Andreas Louv) +Solution: Use tv_get_string() instead of using v_string directly. + (closes #12231, closes #12227) + +Patch 9.0.1445 +Problem: openSUSE: configure doesn't find the Motif library. (Tony + Mechelynck) +Solution: Also search in /usr/lib64. + +Patch 9.0.1446 +Problem: Unnecessary checks for the "skip" flag when skipping. +Solution: Remove the unnecessary checks. (closes #12254) + +Patch 9.0.1447 +Problem: Condition is always true. +Solution: Remove the useless condition. (closes #12253) + +Patch 9.0.1448 +Problem: Diff test fails on MacOS 13. +Solution: Install GNU diffutils. (Ozaki Kiichi, closes #12258) + +Patch 9.0.1449 +Problem: Test for prompt buffer is flaky. +Solution: Use WaitForAssert() instead of TermWait(). (Ozaki Kiichi, + closes #12247) + +Patch 9.0.1450 +Problem: MacOS: building fails if clock_gettime() is not available. +Solution: Add a configure check for clock_gettime(). (closes #12242) + +Patch 9.0.1451 +Problem: Unnecessary redrawing when 'showcmdloc' is not "last". +Solution: Redraw later when "showcmd_is_clear" is set. (Luuk van Baal, + closes #12260) + +Patch 9.0.1452 +Problem: Code using EVAL_CONSTANT is dead, it is never set. +Solution: Remove EVAL_CONSTANT. (closes #12252) + +Patch 9.0.1453 +Problem: Typos in source code and tests. +Solution: Fi the typos. (Dominique Pellé, closes #12217) + +Patch 9.0.1454 +Problem: Code indenting is confused by macros. +Solution: Put semicolon after the macros instead of inside. (Ozaki Kiichi, + closes #12257) + +Patch 9.0.1455 +Problem: C++ 20 modules are not recognized. +Solution: Add patterns to recognize C++ 20 modules as "cpp". (Ben Jackson, + closes #12261) + +Patch 9.0.1456 +Problem: Shortmess test depends on order of test execution. +Solution: Clear messages. (closes #12264) + +Patch 9.0.1457 +Problem: No regression test for what patch 9.0.1333 fixes. +Solution: Extend existing test to cover the fixed problem. (issue #11930) + +Patch 9.0.1458 +Problem: Buffer overflow when expanding long file name. +Solution: Use a larger buffer and avoid overflowing it. (Yee Cheng Chin, + closes #12201) + +Patch 9.0.1459 +Problem: Typo in name of type. +Solution: Change funccal_T to funccall_T. (closes #12265) + +Patch 9.0.1460 +Problem: Insufficient testing for getcmdcompltype(). +Solution: Add a few more test cases. (closes #12268) + +Patch 9.0.1461 +Problem: Ruler not drawn correctly when using 'rulerformat'. +Solution: Adjust formatting depending on whether the ruler is drawn in the + statusline or the command line. (Sean Dewar, closes #12246) + +Patch 9.0.1462 +Problem: Recursively calling :defer function if it does :qa. +Solution: Clear the defer entry before calling the function. (closes #12266) + +Patch 9.0.1463 +Problem: Virtual text truncation only works with Unicode 'encoding'. +Solution: Convert the ellipsis character to 'encoding' if needed. (Hirohito + Higashi, closes #12233) + +Patch 9.0.1464 +Problem: Strace filetype detection is expensive. +Solution: Match with a cheap pattern first. (Federico Mengozzi, + closes #12220) + +Patch 9.0.1465 +Problem: Haiku build fails. +Solution: Do not include globals.h and proto.h twice. (Ozaki Kiichi, + closes #12273) + +Patch 9.0.1466 +Problem: Cannot use an object member name as a method argument. +Solution: Do not give an error for using an object member name for a method + argument. (Hirohito Higashi, closes #12241, closes #12225) + Fix line number for other argument error. + +Patch 9.0.1467 +Problem: Jenkinsfiles are not recognized as groovy. +Solution: Add a pattern for Jenkinsfiles. (closes #12236) + +Patch 9.0.1468 +Problem: Recursively calling :defer function if it does :qa in a compiled + function. +Solution: Clear the defer entry before calling the function. (closes #12271) + +Patch 9.0.1469 +Problem: Deferred functions not called from autocommands. +Solution: Also go through the funccal_stack. (closes #12267) + +Patch 9.0.1470 +Problem: Deferred functions invoked in unexpected order when using :qa and + autocommands. +Solution: Call deferred functions for the current funccal before using the + stack. (closes #12278) + +Patch 9.0.1471 +Problem: Warnings for function declarations. +Solution: Add argument types. (Michael Jarvis, closes #12277) + +Patch 9.0.1472 +Problem: ":drop fname" may change the last used tab page. +Solution: Restore the last used tab page when :drop has changed it. + (closes #12087) + +Patch 9.0.1473 +Problem: CI does not run sound tests. +Solution: Re-enable sound tests. Use "apt-get" instead of "apt". (Ozaki + Kiichi, closes #12280) + +Patch 9.0.1474 +Problem: CI runs with old version of Ubuntu and tools. +Solution: Update CI to more recent versions. (closes #11092) + +Patch 9.0.1475 +Problem: Busted configuration files are not recognized. +Solution: Recognize busted configuration files as Lua. (Craig MacEachern, + closes #12209) + +Patch 9.0.1476 +Problem: Lines put in non-current window are not displayed. (Marius + Gedminas) +Solution: Don't increment the topline when inserting just above it. + (closes #12212) + +Patch 9.0.1477 +Problem: Crash when recovering from corrupted swap file. +Solution: Check for a valid page count. (closes #12275) + +Patch 9.0.1478 +Problem: Filetypes for *.v files not detected properly. +Solution: Use the file contents to detect the filetype. (Turiiya, + closes #12281) + +Patch 9.0.1479 +Problem: Small source file problems; outdated list of distributed files. +Solution: Small updates to source files and list of distributed files. + +Patch 9.0.1480 +Problem: Using popup menu may leave text in the command line. +Solution: Clear the command line if the popup menu covered it. (Luuk van + Baal, closes #12286) + +Patch 9.0.1481 +Problem: Decrypting with libsodium may fail if the library changes. +Solution: Add parameters used to the encrypted file header. (Christian + Brabandt, closes #12279) + +Patch 9.0.1482 +Problem: Crash when textprop has a very large "padding" value. (Yegappan + Lakshmanan) +Solution: Avoid the "after" count to go negative. + +Patch 9.0.1483 +Problem: += operator does not work on class member. +Solution: Do not skip as if "this." was used. (Christian Brabandt, + closes #12263) + +Patch 9.0.1484 +Problem: Coverity warns for using invalid array index. +Solution: Add entry for Xchacha, even though it is not used. + +Patch 9.0.1485 +Problem: no functions for converting from/to UTF-16 index. +Solution: Add UTF-16 flag to existing funtions and add strutf16len() and + utf16idx(). (Yegappan Lakshmanan, closes #12216) + +Patch 9.0.1486 +Problem: Parallel make might not work. +Solution: Add missing dependencies. (Samuel Dionne-Riel, closes #12288) + +Patch 9.0.1487 +Problem: Content-type header for LSP channel not according to spec. +Solution: Use "vscode-jsonrpc" instead of "vim-jsonrpc". (Yegappan + Lakshmanan, closes #12295) + +Patch 9.0.1488 +Problem: xchacha20v2 crypt header is platform dependent. +Solution: Avoid using "size_t". (Ozaki Kiichi, closses #12296) + +Patch 9.0.1489 +Problem: Crypt with libsodium is not tested on CI. +Solution: Configure testing with libsodium. (Ozaki Kiichi, closes #12297) + +Patch 9.0.1490 +Problem: The ModeChanged event may be triggered too often. +Solution: Only trigger ModeChanged when no operator is pending. + (closes #12298) + +Patch 9.0.1491 +Problem: Wrong scrolling with ls=0 and :botright split. +Solution: Add statusline before calling frame_new_height(). (closes #12299) + +Patch 9.0.1492 +Problem: Using uninitialized memory when argument is missing. +Solution: Check there are sufficient arguments before the base. + (closes #12302) + +Patch 9.0.1493 +Problem: Popup menu position wrong in window with toolbar. +Solution: Take the window toolbar into account when positioning the popup + menu. (closes #12308) + +Patch 9.0.1494 +Problem: Crash when recovering from corrupted swap file. +Solution: Bail out when the line index looks wrong. (closes #12276) + +Patch 9.0.1495 +Problem: GTK3: hiding the mouse pointer does not work. (Rory O’Kane) +Solution: Set alpha level to zero. (Kenny Stauffer, closes #12293, + closes #3256) + +Patch 9.0.1496 +Problem: Test restoring register with wrong value. +Solution: Correct name of variable. (closes #12310) + +Patch 9.0.1497 +Problem: The ruler percentage can't be localized. +Solution: Use a string that can be translated. (Emir Sari, closes #12311) + +Patch 9.0.1498 +Problem: In a terminal window the cursor may jump around. (Kenny Stauffer) +Solution: Do not move the cursor to the position for terminal-normal mode. + (closes #12312) + +Patch 9.0.1499 +Problem: Using uninitialized memory with fuzzy matching. +Solution: Initialize the arrays used to store match positions. + +Patch 9.0.1500 +Problem: The falsy operator is not tested properly. +Solution: Add a few more test cases. (closes #12319) + +Patch 9.0.1501 +Problem: Crash with nested :try and :throw in catch block. +Solution: Jump to :endtry before returning from function. (closes #12245) + +Patch 9.0.1502 +Problem: No test for deleting the end of a long wrapped line. +Solution: Add a test to check the right text is displayed. (Luuk van Baal, + closes #12318) + +Patch 9.0.1503 +Problem: Luau files are not recognized. +Solution: Add a patter for Luau files. (Amaan Qureshi, closes #12317) + +Patch 9.0.1504 +Problem: No error when calling remote_startserver() with an empty string. +Solution: Give an error for an empty string. (Hirohito Higashi, + closes #12327) + +Patch 9.0.1505 +Problem: Error when heredoc content looks like heredoc. +Solution: Handle curly expressions. (closes #12325) + +Patch 9.0.1506 +Problem: Line number not displayed when using 'smoothscroll'. +Solution: Adjust condition for showing the line number. (closes #12333) + +Patch 9.0.1507 +Problem: Assert message is confusing with boolean result. assert_inrange() + replaces message instead of adding it. +Solution: Don't put quotes around expected boolean value. Append message + for assert_inrange(). (closes #12342, closes #12341) + +Patch 9.0.1508 +Problem: Catch does not work when lines are joined with a newline. +Solution: Set "nextcmd" appropriately. (closes #12348) + +Patch 9.0.1509 +Problem: Error message lacks mentioning the erroneous argument. +Solution: Specify the argument that the error is for. + +Patch 9.0.1510 +Problem: Misleading variable name for error message. +Solution: Change "name" to "number". (closes #12345) + +Patch 9.0.1511 +Problem: Crash when using wrong arg types to assert_match(). +Solution: Check for NULL pointer. (closes #12349) + +Patch 9.0.1512 +Problem: Inserting lines when scrolling with 'smoothscroll' set. +Solution: Adjust line height computation for w_skipcol. (Luuk van Baal, + closes #12350) + +Patch 9.0.1513 +Problem: Text scrolls unnecessarily when splitting and 'splitkeep' is not + "cursor". +Solution: Avoid resetting w_skipcol. (Luuk van Baal, closes #12334) + +Patch 9.0.1514 +Problem: Test waits unnecessarily long before checking screendump. +Solution: Remove TermWait() call. + +Patch 9.0.1515 +Problem: reverse() does not work for a String. +Solution: Implement reverse() for a String. (Yegappan Lakshmanan, + closes #12179) + +Patch 9.0.1516 +Problem: Cannot use special keys in mapping. +Solution: Do allow for special keys in and mappings. + (closes #12326) + +Patch 9.0.1517 +Problem: MacOS: configure removes -O2 from $CFLAGS. +Solution: Only adjust $CFLAGS for gcc. (closes #12351) + +Patch 9.0.1518 +Problem: Search stats not always visible when searching backwards. +Solution: Do not display the top/bot message on top of the search stats. + (Christian Brabandt, closes #12322, closes #12222) + +Patch 9.0.1519 +Problem: Global 'filetype' is set when it is detected from the file content. +Solution: Set the local 'filetype' option value. + +Patch 9.0.1520 +Problem: Completion for option name includes all bool options. +Solution: Do not recognize the "noinv" prefix. Prefix "no" or "inv" when + appropriate. + +Patch 9.0.1521 +Problem: Failing redo of command with control characters. +Solution: Use AppendToRedobuffLit() for colon commands. (closes #12354) + +Patch 9.0.1522 +Problem: Some functions give two error messages. +Solution: Do not give a second error message. (closes #12352) + +Patch 9.0.1523 +Problem: Some error messages are not marked for translation. +Solution: Surround the messages in _(). (closes #12356) + +Patch 9.0.1524 +Problem: Passing -1 for bool is not always rejected. +Solution: Check for error in a better way. (closes #12358) + +Patch 9.0.1525 +Problem: 'smoothscroll' does not always work properly. +Solution: Do not reset w_skipcol after it was intentionally set. (Luuk van + Baal, closes #12360, closes #12199, closes #12323) + +Patch 9.0.1526 +Problem: Condition is always true. +Solution: Remove unnecessary condition. (closes #12359) + +Patch 9.0.1527 +Problem: Crash when using negative value for term_cols. +Solution: Check for invalid term_cols value. (Kenta Sato, closes #12362) + +Patch 9.0.1528 +Problem: Libsodium encryption is only used with "huge" features, even when + manually enabled through configure. (Tony Mechelynck) +Solution: Remove the condition on FEAT_HUGE. + +Patch 9.0.1529 +Problem: Code style test doesn't check for space after "if". +Solution: Add a test for space. + +Patch 9.0.1530 +Problem: Cursor moves to wrong line when 'foldmethod' is "diff". (Rick + Howe) +Solution: Adjust logic for scrolling. (Luuk van Baal, closes #12364, + closes #12218) + +Patch 9.0.1531 +Problem: Crash when register contents ends up being invalid. +Solution: Check "y_array" is not NULL. + +Patch 9.0.1532 +Problem: Crash when expanding "~" in substitute causes very long text. +Solution: Limit the text length to MAXCOL. + +Patch 9.0.1533 +Problem: Test for 'smoothscroll' is ineffective. +Solution: Change the order of testing "zb" and "zt". (Luuk van Baal, + closes #12366) + +Patch 9.0.1534 +Problem: Test for expanding "~" in substitute takes too long. +Solution: Disable the test for now. + +Patch 9.0.1535 +Problem: Test commented out in a wrong way. +Solution: Use legacy script comment character. + +Patch 9.0.1536 +Problem: CI: sound dummy stopped working. +Solution: Temporarily stop using sound dummy. + +Patch 9.0.1537 +Problem: Message for opening the cmdline window is not translated. +Solution: Add gettext() and scan the defaults script for text to be + translated. (closes #12371) + +Patch 9.0.1538 +Problem: :wqall does not trigger ExitPre. (Bart Libert) +Solution: Move preparations for :qall to a common function. (closes #12374) + +Patch 9.0.1539 +Problem: Typst filetype is not recognized. +Solution: Distinguish between sql and typst. (Gaetan Lepage, closes #12363) + +Patch 9.0.1540 +Problem: reverse() on string doesn't work in compiled function. +Solution: Accept string in argument type check. (Yegappan Lakshmanan, + closes #12377) + +Patch 9.0.1541 +Problem: CI: sound dummy is disabled. +Solution: Make sound dummy work again. (closes #12380) + +Patch 9.0.1542 +Problem: Line not fully displayed if it doesn't fit in the screen. +Solution: Do not reset s_skipcol if not needed. (Luuk van Baal, + closes #12376) + +Patch 9.0.1543 +Problem: Display errors when making topline shorter and 'smoothscroll' is + set. +Solution: Reset w_skipcol when the topline becomes shorter than its current + value. (Luuk van Baal, closes #12367) + +Patch 9.0.1544 +Problem: Recent glibc marks sigset() as a deprecated. +Solution: Use sigaction() in mch_signal() if possible. (Ozaki Kiichi, + closes #12373) + +Patch 9.0.1545 +Problem: Text not scrolled when cursor moved with "g0" and "h". +Solution: Adjust w_skipcol when needed. (Luuk van Baal, closes #12387) + +Patch 9.0.1546 +Problem: Some commands for opening a file don't use 'switchbuf'. +Solution: Use 'switchbuf' for more commands. (Yegappan Lakshmanan, + closes #12383, closes #12381) + +Patch 9.0.1547 +Problem: Coveralls workflow on CI is commented out. +Solution: Remove the Coveralls workflow. (closes #12389) + +Patch 9.0.1548 +Problem: CI: check in sound-dummy module may throw an error. +Solution: Check whether apt-cache can show the package description. + (Christian Brabandt, closes #12390) + +Patch 9.0.1549 +Problem: USD filetype is not recognized. +Solution: Add patterns for USD filetype. (Colin Kennedy, closes #12370) + +Patch 9.0.1550 +Problem: In cmdline window S-Tab does not select previous completion. + (Maxim Kim) +Solution: Add a mappint for S-Tab. (closes #12116) + +Patch 9.0.1551 +Problem: Position of marker for 'smoothscroll' not computed correctly. +Solution: Take 'list' and other options into account. (Luuk van Baal, + closes #12393) + +Patch 9.0.1552 +Problem: CI: sound-dummy module is not installed. +Solution: Invert using the result of the condition. (closes #12394) + +Patch 9.0.1553 +Problem: CI: using slightly outdated gcc version. +Solution: Use "brew" to get a more recent gcc version. (closes #12391) + +Patch 9.0.1554 +Problem: Code for handling 'switchbuf' is repeated. +Solution: Add a function to handle 'switchbuf'. (Yegappan Lakshmanan, + closes #12397) + +Patch 9.0.1555 +Problem: setcharsearch() does not clear last searched char properly. +Solution: Do not accept lastc_bytelen smaller than one. (closes #12398) + +Patch 9.0.1556 +Problem: Vim9: error for missing "return" after "throw". +Solution: Set had_return flag for "throw". (closes #12262) + +Patch 9.0.1557 +Problem: Test failures for unreachable code. +Solution: Add a test override to ignore unreachable code. + +Patch 9.0.1558 +Problem: Wrong error for unreachable code after :throw. +Solution: Adjust the error message. + +Patch 9.0.1559 +Problem: Function argument types not always checked and using v:none may + cause an error. +Solution: Check argument types once the function type is known. Do not give + an error for using v:none as an argument. (closes #12200) + +Patch 9.0.1560 +Problem: Win32: When 'encoding' is set $PATH has duplicate entries. +Solution: Only append the directory if it is not there yet. (Ken Takata, + closes #12400, closes #12372) + +Patch 9.0.1561 +Problem: Display wrong when moving cursor to above the top line and + 'smoothscroll' is set. +Solution: Call adjust_skipcol() in more places and make it work better. + (Luuk van Baal, closes #12395) + +Patch 9.0.1562 +Problem: Mixing package managers is not a good idea. +Solution: Install gcc 13 with apt-get. (closes #12405) + +Patch 9.0.1563 +Problem: GTK3: window manager resize hints are incomplete. +Solution: Use NULL for second argument of gtk_window_set_geometry_hints(). + (Kenny Stauffer closes #11055) + +Patch 9.0.1564 +Problem: Display moves up and down with 'incsearch' and 'smoothscroll'. +Solution: Do not check if w_skipcol changed. (Luuk van Baal, closes #12410, + closes #12409) + +Patch 9.0.1565 +Problem: Json lines files are not recognized. +Solution: Add a pattern to detect "jsonl" files. (issue #7520) + +Patch 9.0.1566 +Problem: Motif: GUI scrollbar test fails in 24 lines terminal. +Solution: Skip the part of the test that fails for now. + +Patch 9.0.1567 +Problem: Profiler calculation may be wrong on 32 bit builds. +Solution: Use 64 bit variable if possible. (Isao Sato, closes #12412) + +Patch 9.0.1568 +Problem: With 'smoothscroll' cursor may move below botline. +Solution: Call redraw_later() if needed, Compute cursor row with adjusted + condition. (Luuk van Baal, closes #12415) + +Patch 9.0.1569 +Problem: Cannot use "this.member" in lambda in class method. +Solution: Adjust check for reserved keyword. (Hirohito Higashi, + closes #12416, closes #12076, closes #12336) + +Patch 9.0.1570 +Problem: Some tests are slow. +Solution: Make a few test cases faster. + +Patch 9.0.1571 +Problem: RedrawingDisabled not used consistently. +Solution: Avoid RedrawingDisabled going negative. Set RedrawingDisabled in + win_split_ins(). (closes #11961) + +Patch 9.0.1572 +Problem: Error messages are not translated. +Solution: Add _(). + +Patch 9.0.1573 +Problem: Error for function name has wrong line number. +Solution: Set the line number before giving the error. + +Patch 9.0.1574 +Problem: MS-Windows: list of translation input files incomplete. +Solution: Move the list of files to a common file. (closes #12426) + +Patch 9.0.1575 +Problem: "file N of M" message is not translated. +Solution: Make argument count message translatable. (close #12429) + +Patch 9.0.1576 +Problem: Users may not know what to do with an internal error. +Solution: Add a translated message with instructions. + +Patch 9.0.1577 +Problem: MS-Windows: context menu translations may be wrong. +Solution: Set the encoding before using gettext(). (Ken Takata, + closes #12441, closes #12431) + +Patch 9.0.1578 +Problem: SpellCap highlight not always updated when needed. +Solution: Handle updating line below closed fold and other situations where + only part of the window is redrawn. (Luuk van Baal, closes #12428, + closes #12420) + +Patch 9.0.1579 +Problem: Some error messages are not translated. +Solution: Add the N_() marker on messages. (closes #12427) + +Patch 9.0.1580 +Problem: CI: indent test hangs on FreeBSD. +Solution: Set 'nomore' when running the indent tests. (Ozaki Kiichi, + closes #12446) + +Patch 9.0.1581 +Problem: Translation does not work for plural argument. +Solution: Use PLURAL_MSG() for errors and with xgettext. (closes #12443) + +Patch 9.0.1582 +Problem: :stopinsert may not work in a popup close handler. (Ben Jackson) +Solution: Restore stop_insert_mode when appropriate. (closes #12452, + closes #12434) + +Patch 9.0.1583 +Problem: Get E304 when using 'cryptmethod' "xchacha20v2". (Steve Mynott) +Solution: Add 4th crypt method to block zero ID check. Avoid syncing a swap + file before reading the file. (closes #12433) + +Patch 9.0.1584 +Problem: Not all meson files are recognized. +Solution: Add "meson.options". (Liam Beguin, closes #12444) + +Patch 9.0.1585 +Problem: Weird use of static variables for spell checking. +Solution: Move the variables to a structure and pass them from win_update() + to win_line(). (Luuk van Baal, closes #12448) + +Patch 9.0.1586 +Problem: Checking translations gives an error for using two messages with + ngettext() that differ in "%" items. +Solution: Adjust the check script to tolerate omitting one "%" item. + +Patch 9.0.1587 +Problem: Corn config files are not recognized. +Solution: Add a pattern for Corn config files. (Jake Stanger, closes #12449) + +Patch 9.0.1588 +Problem: Incsearch not triggered when pasting clipboard register on the + command line. +Solution: Also set "literally" when using a clipboard register. (Ken Takata, + closes #12460) + +Patch 9.0.1589 +Problem: Filetype test contains too many special characters. +Solution: Use Vim9 syntax for a few things. + +Patch 9.0.1590 +Problem: Filetype test has trailing white space. +Solution: Remove trailing white space. + +Patch 9.0.1591 +Problem: Some "gomod" files are not recognized. +Solution: Check for "go.mod" file name before checking out the contents. + (Omar El Halabi, closes #12462) + +Patch 9.0.1592 +Problem: Not all timer tests are marked as flaky. +Solution: Set the flaky flag for all timer tests. (closes #12355) + +Patch 9.0.1593 +Problem: MS-Windows: assert error when compiled with debug mode. +Solution: Adjust arguments to setvbuf(). (Ken Takata, closes #12467) + +Patch 9.0.1594 +Problem: Some internal error messages are translated. +Solution: Consistently do not translate internal error messages. + (closes #12459) + +Patch 9.0.1595 +Problem: Line pointer becomes invalid when using spell checking. +Solution: Call ml_get() at the right places. (Luuk van Baal, closes #12456) + +Patch 9.0.1596 +Problem: :registers command does not work in sandbox. +Solution: Add flag to the command. (closes #12473) + +Patch 9.0.1597 +Problem: Cursor ends up below the window after a put. +Solution: Mark w_crow and w_botline invalid when changing the cursor line. + (closes #12465) + +Patch 9.0.1598 +Problem: screenchar(), screenchars() and screenstring() do not work + properly when 'encoding' is set to a double-byte encoding. +Solution: Fix the way the bytes of the characters are obtained. + (issue #12469) + +Patch 9.0.1599 +Problem: Cursor not adjusted when near top or bottom of window and + 'splitkeep' is not "cursor". +Solution: Move boundary checks to outer cursor move functions, inner + functions should only return valid cursor positions. (Luuk van + Baal, closes #12480) + +Patch 9.0.1600 +Problem: screenpos() does not take w_skipcol into account. +Solution: Subtract w_skipcol from column. (closes #12486, closes #12476) + +Patch 9.0.1601 +Problem: Filetype detection fails for *.conf file without comments. + (Dmitrii Tcyganok) +Solution: Use "conf" filetype as a fallback for an empty .conf file. + (closes #12487, closes #12483) + +Patch 9.0.1602 +Problem: Stray character is visible if 'smoothscroll' marker is displayed + on top of a double-wide character. +Solution: When overwriting a double-width character with the 'smoothscroll' + marker clear the second half. (closes #12469) + +Patch 9.0.1603 +Problem: Display wrong when scrolling multiple lines with 'smoothscroll' + set. +Solution: Redraw when w_skipcol changed. (closes #12477, closes #12468) + +Patch 9.0.1604 +Problem: Errors from the codestyle test are a bit confusing. +Solution: Use assert_report() with a clearer message. Avoid a warning for + an existing swap file. + +Patch 9.0.1605 +Problem: Crash when calling method on super in child constructor. (Israel + Chauca Fuentes) +Solution: Clear the type list. (Ernie Rael, closes #12489, closes #12471) + +Patch 9.0.1606 +Problem: Using freed memory when 'foldcolumn' is set. +Solution: Save extra pointer to free it later. (closes #12492) + +Patch 9.0.1607 +Problem: screenpos() returns wrong row with diff filler lines. +Solution: Only add filler lines when appropriate. Also don't add the + 'smoothscroll' marker when w_skipcol is zero. (closes #12485, + closes #12484) + +Patch 9.0.1608 +Problem: update_topline() is called twice. +Solution: Do not call update_topline() before curs_columns(). (Luuk van + Baal, closes #12495) + +Patch 9.0.1609 +Problem: Crash when an object indirectly references itself. +Solution: Avoid clearing an object while it is already being cleared. + (closes #12494) + +Patch 9.0.1610 +Problem: Display is wrong when 'smoothscroll' is set and scrolling multiple + lines. +Solution: Redraw with UPD_NOT_VALID when "skipcol" is or was set. + (closes #12490, closes #12468) + +Patch 9.0.1611 +Problem: v:maxcol can be changed in a :for loop. +Solution: Check for read-only loop variable. (closes #12470) + +Patch 9.0.1612 +Problem: "skipcol" not reset when using multi-byte characters. +Solution: Compare with w_virtcol instead of w_cursor.col. (closes #12457) + +Patch 9.0.1613 +Problem: Some make output gets picked up by 'errorformat'. +Solution: Ignore make output by default. (Gregory Anders, closes #12481) + +Patch 9.0.1614 +Problem: strlen() called too often for :spellrepall. +Solution: Store the result in a variable. (closes #12497) + +Patch 9.0.1615 +Problem: URL shortcut files are not recognized. +Solution: Add a pattern for URL shortcut files. (closes #12474) + +Patch 9.0.1616 +Problem: Quickfix text field is truncated. +Solution: Fix output of text field after pattern field in quickfix buffer. + (Shane Harper, closes #12498) + +Patch 9.0.1617 +Problem: charidx() and utf16idx() result is not consistent with byteidx(). +Solution: When the index is equal to the length of the text return the + lenght of the text instead of -1. (Yegappan Lakshmanan, + closes #12503) + +Patch 9.0.1618 +Problem: Trace32 files are not recognized. +Solution: Add patterns for the t32 filetype. (Christoph Sax, closes #12505) + +Patch 9.0.1619 +Problem: The focus gained/lost escape sequences cause trouble for a + terminal where Vim does not expect them. +Solution: Always recognize the codes for focus gained/lost. (closes #12499) + +Patch 9.0.1620 +Problem: Nix files are not recognized from the hashbang line. +Solution: Add a hashbang check. (issue #12507) + +Patch 9.0.1621 +Problem: FILETYPE_FILE is defined to the same value multiple times. Same + for a few similar macros. +Solution: Define FILETYPE_FILE and others in feature.h only + +Patch 9.0.1622 +Problem: Filetype name t32 is a bit obscure. +Solution: Rename t32 to trace32. (Christoph Sax, closes #12512) + +Patch 9.0.1623 +Problem: The program to filetype translation is not exported. +Solution: Export Exe2filetype(). + +Patch 9.0.1624 +Problem: Crash when calling object constructor from legacy script. (Israel + Chauca Fuentes) +Solution: Pass a pointer for "ufunc". (closes #12502) + +Patch 9.0.1625 +Problem: "super" is not considered a reserved name. +Solution: Add "super" to the list of reserved names. (closes #12515) + +Patch 9.0.1626 +Problem: Visual area not shown when using 'showbreak' and start of line is + not visible. (Jaehwang Jung) +Solution: Adjust "fromcol" for the space taken by 'showbreak'. + (closes #12514) + +Patch 9.0.1627 +Problem: No generic mechanism to test syntax plugins. +Solution: Add a syntax plugin test mechanism, using screendumps. Add a + simple test for "c". + +Patch 9.0.1628 +Problem: Syntax tests fail on FreeBSD. +Solution: Pass the Vim executable path with VIMPROG. (Ken Takata, + closes #12535) Adjust the paths. + +Patch 9.0.1629 +Problem: Having utf16idx() rounding up is inconvenient. +Solution: Make utf16idx() round down. (Yegappan Lakshmanan, closes #12523) + +Patch 9.0.1630 +Problem: "make clean" at the toplevel fails. +Solution: Clean the indent and syntax directories in a sub-shell. (Ben + Jackson, closes #12536, closes #12526) + +Patch 9.0.1631 +Problem: Passing a wrong variable type to an option gives multiple errors. +Solution: Bail out early on failure. (closes #12504) + +Patch 9.0.1632 +Problem: Not all cabal config files are recognized. +Solution: Add a couple of patterns. (Marcin Szamotulski, closes #12463) + +Patch 9.0.1633 +Problem: Duplicate code for converting float to string. +Solution: Use tv_get_string(). (closes #12521) + +Patch 9.0.1634 +Problem: Message is cleared when removing mode message (Gary Johnson). +Solution: Do not clear the command line after displaying a message. + +Patch 9.0.1635 +Problem: Error message is cleared when removing mode message. +Solution: Also reset flags when the message is further down. + +Patch 9.0.1636 +Problem: Expanding a pattern interferes with command line completion. +Solution: Set the file index only when appropriate. (closes #12519) + +Patch 9.0.1637 +Problem: Compiler warning for uninitialized variable. +Solution: Move the variable to an inner block and initialize it. (Christian + Brabandt, closes #12549) + +Patch 9.0.1638 +Problem: crypt tests hang and cause memory errors +Solution: Move variable to start of function. + +Patch 9.0.1639 +Problem: Build failure without the crypt feature. +Solution: Adjust #ifdefs + +Patch 9.0.1640 +Problem: Compiler warning for unused variables without the crypt feature. +Solution: Adjust #ifdefs + +Patch 9.0.1641 +Problem: The log file does not give information about window sizes. +Solution: Add a few log messages about obtaining the window size. + +Patch 9.0.1642 +Problem: Build failure with tiny features. +Solution: Add #ifdef's. + +Patch 9.0.1643 +Problem: Filetype detection fails if file name ends in many '~'. +Solution: Strip multiple '~' at the same time. (closes #12553) + +Patch 9.0.1644 +Problem: Not all filetype file name matches are tested. +Solution: Add more file names to test with. (Jonas Strittmatter, + closes #12569) + +Patch 9.0.1645 +Problem: zserio files are not recognized. +Solution: Add a pattern for zserio files. (Dominique Pellé, + closes #12544) + +Patch 9.0.1646 +Problem: CI: codecov may take a very long time to run. +Solution: Add a timeout. (Philip Heiduck, closes #12559) + +Patch 9.0.1647 +Problem: Insufficient testing for syntax plugins. +Solution: Add shell file examples. (Charles Campbell) Create a messages + file for easier debugging and reporting the test results. + +Patch 9.0.1648 +Problem: Result of syntax tests is hard to see. +Solution: List the failed tests. + +Patch 9.0.1649 +Problem: Syntax test failure causes script to abort. +Solution: Fix appending string to list. + +Patch 9.0.1650 +Problem: MS-Windows: default 'viewdir' may include read-only directory. +Solution: Use $HOME instead of $VIM for 'viewdir' default. (closes #12119) + +Patch 9.0.1651 +Problem: Unclear why syntax test fails on Mac. +Solution: Temporarily show the whole "messages" file. + +Patch 9.0.1652 +Problem: Unclear why syntax test fails on Mac. +Solution: Echo v:errors when it's not empty. + +Patch 9.0.1653 +Problem: Amiga: default 'viewdir' may not work. +Solution: Use "home:" instead of "$VIM". Add a test. (Christian Brabandt, + closes #12576) + +Patch 9.0.1654 +Problem: MS-Windows: test for default 'viewdir' fails. +Solution: Escape the pattern. + +Patch 9.0.1655 +Problem: Syntax test fails when Vim window is not tall enough. +Solution: Make sure each terminal window is closed. + +Patch 9.0.1656 +Problem: Syntax test fails when detected shell type differs. +Solution: Avoid using "/bin/sh", it depends on the system. Add a check that + the shell type detection is correct. + +Patch 9.0.1657 +Problem: One more syntax test depends on the system. +Solution: Use "dash" instead of "sh". + +Patch 9.0.1658 +Problem: Autoload files for "zig" are not installed. +Solution: Add install and uninstall rules in the makefile. (Christian + Brabandt, closes #12577, closes #12567) + +Patch 9.0.1659 +Problem: Termdebug: default highlight cleared when changing colorscheme. +Solution: Use a ColorScheme autocommand. (Christian Brabandt, closes #12566, + closes #12555) + +Patch 9.0.1660 +Problem: Error for using matchfuzzy() in Vim9 script returning a list of + dicts. +Solution: Make return type of matchfuzzy() list. (Yegappan Lakshmanan, + closes #12574) + +Patch 9.0.1661 +Problem: BUCK files are not recognized. +Solution: Recognize BUCK files as "bzl". (Son Luong Ngoc, closes #12564) + +Patch 9.0.1662 +Problem: Crash when using a class member twice. (Christian J. Robinson) +Solution: Make a copy of the value. + +Patch 9.0.1663 +Problem: Termdebug on MS-Windows: some file names are not recognized. +Solution: Do not always change \t and \n. (Christian Brabandt, + closes #12565, closes #12560, closes #12550) + +Patch 9.0.1664 +Problem: Divide by zero when scrolling with 'smoothscroll' set. +Solution: Avoid using a negative width. (closes #12540, closes #12528) + +Patch 9.0.1665 +Problem: Empty CmdlineEnter autocommand causes errors in Ex mode. +Solution: Save and restore ex_pressedreturn. (Christian Brabandt, + closes # 12581, closes #12578) + +Patch 9.0.1666 +Problem: Compiler may warn for uninitialized variable. +Solution: Initialize this_props_len. (Christian Brabandt, closes #12599) + +Patch 9.0.1667 +Problem: Regression test doesn't fail when fix is reverted. +Solution: Add "n" to 'cpoptions' instead of using :winsize. (closes #12587, + issue #12528) + +Patch 9.0.1668 +Problem: PEM files are not recognized. +Solution: Add patterns to match PEM files. (closes #12582) + +Patch 9.0.1669 +Problem: Crash syncing swapfile in new buffer when using sodium crypt. + (James McCoy) +Solution: Add checks for sodium encryption. (Christian Brabandt, + closes #12591, closes #12585) + +Patch 9.0.1670 +Problem: Resetting local option to global value is inconsistent. +Solution: Handle "<" specifically for 'scrolloff' and 'sidescrolloff'. + (closes #12594) + +Patch 9.0.1671 +Problem: Termdebug: error with more than 99 breakpoints. +Solution: Use a different sign for breakpoint 100 and over. (closes #12589, + closes #12588) + +Patch 9.0.1672 +Problem: Tabline highlight wrong after truncated double width label. +Solution: Fill up half a double width character later. (closes #12614) + +Patch 9.0.1673 +Problem: Cannot produce a status 418 or 503 message. +Solution: Add err_teapot(). + +Patch 9.0.1674 +Problem: Help for builtin functions is not sorted properly. +Solution: Put err_teapot() help in the right position. + +Patch 9.0.1675 +Problem: Test may run into timeout when using valgrind. +Solution: Use a longer timeout when using valgrind. + +Patch 9.0.1676 +Problem: Warning for buffer in use when exiting early. +Solution: Change file names to be able to see what buffer is in use when + exiting. + +Patch 9.0.1677 +Problem: Typo in syntax test input file. +Solution: Fix the typo and the expected dump files. (THARAK HEGDE, + closes #12635) + +Patch 9.0.1678 +Problem: Blade files are not recognized. +Solution: Add a pattern for Blade files. (closes #12650) + +Patch 9.0.1679 +Problem: Tests may leave leftover files around +Solution: Clean up tests and remove files + +Patch 9.0.1680 +Problem: sodium test fails in Github CI +Solution: Catch sodium_mlock() errors and do not error out + +Patch 9.0.1681 +Problem: Build Failure with Perl 5.38 +Solution: Fix Build Failure + +Patch 9.0.1682 +Problem: crypt: sodium encryption is not portable +Solution: use little-endian byte order for sodium encrypted files + +Patch 9.0.1683 +Problem: need runtime files updated +Solution: merge various github PRs + +Patch 9.0.1684 +Problem: libvterm slightly outdated +Solution: Update libvterm from rev 818 to rev 839 + +Patch 9.0.1685 +Problem: Python 3.11 interface throws deprecation warnings +Solution: ignore those warnings for gcc and clang + +Patch 9.0.1686 +Problem: undotree() only works for the current buffer +Solution: Add an optional "buffer number" parameter to undotree(). If + omitted, use the current buffer for backwards compatibility. + +Patch 9.0.1687 +Problem: mapset() not properly handling script ID +Solution: replace_termcodes() may accept a script ID + +Patch 9.0.1688 +Problem: cannot store custom data in quickfix list +Solution: add `user_data` field for the quickfix list + +Patch 9.0.1689 +Problem: python 3.12 produces warnings and fails test +Solution: Make use of raw strings in python3 tests + +Patch 9.0.1690 +Problem: popup_create() not aborting on errors +Solution: check for errors in arguments given and abort if an error + occurred + +Patch 9.0.1691 +Problem: wrong viewport restored for incsearch and smoothscroll +Solution: Save and restore skipcol as well + +Patch 9.0.1692 +Problem: Android not handling AI_V4MAPPED ai_flag +Solution: don't set AI_V4MAPPED flag when on Android, since + Android's getaddrinfo returns EAI_BADFLAGS if ai_flags + contains it + +Patch 9.0.1693 +Problem: Ctrl-Q not handled like Ctrl-V in replace mode +Solution: Handle Ctrl-Q like Ctrl-V + +Patch 9.0.1694 +Problem: wrong mapping applied when replaying a char search +Solution: Store a NOP after the ESC + +Patch 9.0.1695 +Problem: Crash with overlong textprop above +Solution: Consider only positive padding + +Patch 9.0.1696 +Problem: sodium_mlock may still fail in CI +Solution: Catch E1230 in testscript and skip test + +Patch 9.0.1697 +Problem: incsearch test not sufficient (after 9.0.1691) +Solution: add an additional test + +Patch 9.0.1698 +Problem: Test_map_restore_sid fails in GUI +Solution: Feed an unsimplified Ctrl-B + +Patch 9.0.1699 +Problem: compile warning for xdiff/xutils on MS-Windows +Solution: add explicit type cast from size_t to long + +Patch 9.0.1700 +Problem: Cannot compile with dynamic perl < 5.38 (after 9.0.1681) +Solution: Fix if_perl/dyn from perl 5.32 to 5.38 + +Patch 9.0.1701 +Problem: vim9 crash when class member overridden +Solution: Use method_count field instead + +Patch 9.0.1702 +Problem: Undo test is flaky. +Solution: Apply filter and change time to "1 second ago" in both dumps. + +Patch 9.0.1703 +Problem: Vim9 Calling a method in an extended class fails +Solution: use method index directly + +Patch 9.0.1704 +Problem: Cannot use positional arguments for printf() +Solution: Support positional arguments in string formatting + +Patch 9.0.1705 +Problem: cursor position wrong when clicking on an unprintable char +Solution: Don't update prev_ptr when wlv.n_extra is not zero. + +Patch 9.0.1706 +Problem: typos in the xxd manpage +Solution: Fix typos and formatting + +Patch 9.0.1707 +Problem: Cannot wrap around in popup_filter_menu() +Solution: Allow to wrap around by default + +Patch 9.0.1708 +Problem: getcompletion() failes for user-defined commands +Solution: set context for completion function + +Patch 9.0.1709 +Problem: dynamic build with python 3.12 breaks +Solution: if_python3.c: Fix building dynamic Python3 interpreter + +Patch 9.0.1710 +Problem: sidescrolloff and scrolloff options work slightly + different than other global-local options +Solution: Make it behave consistent for all global-local options + +Patch 9.0.1711 +Problem: dead code in charset.c +Solution: remove it + +Patch 9.0.1712 +Problem: missing null check in object_clear() +Solution: Add null check of cl + +Patch 9.0.1713 +Problem: Github CI fails to load snd-dummy kernel module +Solution: Make installation of linux-modules-extra optional + +Patch 9.0.1714 +Problem: getcompletion() "cmdline" fails after :autocmd +Solution: Use set_cmd_context() instead of set_one_cmd_context(). + +Patch 9.0.1715 +Problem: duplicate test in message_test.c +Solution: Remove duplicate test and make functions static + +Patch 9.0.1716 +Problem: Windows build with python 3.12 and clang fails +Solution: Remove the PyBool_Type function pointer for python 3.12 + +Patch 9.0.1717 +Problem: virtcol2col returns last byte of a multi-byte char +Solution: Make it return the first byte for a multi-byte char + +Patch 9.0.1718 +Problem: dict-completion does not respect region +Solution: respect selected region in dict completion + +Patch 9.0.1719 +Problem: if_lua: crash for Lua functions invoked via Vim callbacks +Solution: Use Lua registry rather than upvalues for udata cache + +Patch 9.0.1720 +Problem: Vim9 class using wrong index for overridden method +Solution: Use correct index for overridden method + +Patch 9.0.1721 +Problem: Build failure on Windows with dynamic lua (after 9.0.1719) +Solution: move definition further down in if_lua + +Patch 9.0.1722 +Problem: wrong error messages when passing wrong types to count() +Solution: fix it + +Patch 9.0.1723 +Problem: Fix regression in {func} argument of reduce() +Solution: pass function name as string again + +Patch 9.0.1724 +Problem: vim9class constructor argument type checking bug +Solution: fix it + +Patch 9.0.1725 +Problem: Wrong cursor position when clicking after concealed text + with 'virtualedit'. +Solution: Store virtual columns in ScreenCols[] instead of text + columns, and always use coladvance() when clicking. + +Patch 9.0.1726 +Problem: incorrect heights in win_size_restore() +Solution: avoid restoring incorrect heights in win_size_restore() + +Patch 9.0.1727 +Problem: minor problems with the teapot() +Solution: remove the null check, update documentation + +Patch 9.0.1728 +Problem: missing winid argument for virtcol() +Solution: Add a {winid} argument to virtcol() + +Patch 9.0.1729 +Problem: screenpos() wrong result with w_skipcol and cpoptions+=n +Solution: Use adjust_plines_for_skipcol() instead of subtracting + w_skipcol. + +Patch 9.0.1730 +Problem: passing multiple patterns to runtime not working +Solution: prepend prefix to each argument separately + +Patch 9.0.1731 +Problem: blockwise Visual highlight not working with virtual text +Solution: Reset the correct variable at the end of virtual selection and + Check for double-width char inside virtual text. + +Patch 9.0.1732 +Problem: vimexpr: shadowing variable +Solution: Rename local variable + +Patch 9.0.1733 +Problem: CI: cannot cache linux-modules-extra +Solution: Enable caching and reduce failed downloads + +Patch 9.0.1734 +Problem: runtime completion fails for multiple args +Solution: Make it work + +Patch 9.0.1735 +Problem: Rename completion specific findex var +Solution: Move "findex" static variable to xp_selected in expand_T + +Patch 9.0.1736 +Problem: Github Actions times out after 20 minutes +Solution: Increase the timeout to 25 minutes + +Patch 9.0.1737 +Problem: Calling a base class method through an extended class fails +Solution: Create lookup table for member index in the interface to + to the member class implementing the interface + +Patch 9.0.1738 +Problem: Duplicate code to reverse a string +Solution: Move reverse_text() to strings.c and remove string_reverse(). + +Patch 9.0.1739 +Problem: leftover files in libvterm +Solution: Fix cleaning of libvterm directory + +Patch 9.0.1740 +Problem: segfault when reading invalid viminfo file +Solution: Check the expected type in the viminfo file + +Patch 9.0.1741 +Problem: No type checking in interfaces +Solution: Implement member type check in vim9 interfaces + +Patch 9.0.1742 +Problem: Wrong curswant when clicking and the second cell of a + double-width char. +Solution: Don't copy virtcol of the first char to the second one. + +Patch 9.0.1743 +Problem: Parameter of gui_gtk:gui_mch_browse incorrectly marked as + UNUSED. +Solution: Remove UNUSED flag. + +Patch 9.0.1744 +Problem: Dead code in open_cmdwin() +Solution: Remove it + +Patch 9.0.1745 +Problem: Missing test coverage for blockwise Visual highlight with + virtual that starts with a double-width char. +Solution: Add a new virtual text to the test. Some other small fixes. + +Patch 9.0.1746 +Problem: vim9class compile error for char/char_u conversion +Solution: Correctly cast to (char *) + +Patch 9.0.1747 +Problem: screenpos() may cause unnecessary redraw. +Solution: Don't unnecessarily reset VALID_WROW flag. + +Patch 9.0.1748 +Problem: CI: cannot label issues automatically +Solution: Create CI labeler + +Patch 9.0.1749 +Problem: Text property highlight doesn't override a sign highlight over + a tab character +Solution: Let text_property override tab highlighting + +Patch 9.0.1750 +Problem: CI: fails because of changed error messages + (after: 9.0.1741) +Solution: Adjust expected error messages + +Patch 9.0.1751 +Problem: CI: labeler configuration not found + (after 9.0.1748) +Solution: set configuration path + +Patch 9.0.1752 +Problem: CI: Coveralls is no longer used +Solution: Remove .coveralls.yml + +Patch 9.0.1753 +Problem: can't move to last non-blank char +Solution: Make g behave like that + +Patch 9.0.1754 +Problem: still ci breakage (after 9.0.1741) +Solution: fix remaining issue + +Patch 9.0.1755 +Problem: CI still fails with sodium mlock error +Solution: catch mlock failure + +Patch 9.0.1756 +Problem: failing cursorline sign test +Solution: only reset char attr, if cursorline + option is not set + +Patch 9.0.1757 +Problem: ex_class() function is too long +Solution: refactor it + +Patch 9.0.1758 +Problem: vim9 no class identifiers in stack dumps +Solution: Prefix class members in stack traces with the class name + followed by a dot. + +Patch 9.0.1759 +Problem: Visual highlight not working with cursor at end of screen line + and 'showbreak'. +Solution: Only update "vcol_prev" when drawing buffer text. + +Patch 9.0.1760 +Problem: vim9 class problem with new() constructor +Solution: Don't allow a return type for the new() class constructor. + +Patch 9.0.1761 +Problem: g behaves different from g +Solution: Make g behave like g + +Patch 9.0.1762 +Problem: Not able to get the virtual text property +Solution: Make prop_list() return virtual text and alignment + +Patch 9.0.1763 +Problem: crash when passing invalid buffer to undotree() +Solution: Use get_buf_arg() instead of tv_get_buf_from_arg(). + +Patch 9.0.1764 +Problem: CI: label should not be set on all yml files +Solution: only set it for specific yml files in .github + +Patch 9.0.1765 +Problem: Error when cross-compiling Vim +Solution: use AC_CHECK_SIZEOF to find sizeof(wchar_t) + +Patch 9.0.1766 +Problem: Runtime: Missing QML support +Solution: Add QML support to Vim + +Patch 9.0.1767 +Problem: '.-' no allowed in highlight group names +Solution: Allow dot and hyphen characters in highlight group names + +Patch 9.0.1768 +Problem: Runtime: no support for bicep files +Solution: Add filetype support for bicepparam + +Patch 9.0.1769 +Problem: executable() ignoring symlinks on Windows +Solution: resolve reparse points + +Patch 9.0.1770 +Problem: lines disappear when modifying chars before virt text +Solution: take virtual text property length into account + +Patch 9.0.1771 +Problem: regex: combining chars in collections not handled +Solution: Check for following combining characters for NFA and BT engine + +Patch 9.0.1772 +Problem: Cursor is adjusted in window that did not change in size by + 'splitkeep'. +Solution: Only check that cursor position is valid in a window that + has changed in size. + +Patch 9.0.1773 +Problem: cannot distinguish Forth and Fortran *.f files +Solution: Add Filetype detection Code + +Patch 9.0.1774 +Problem: no support for custom cmdline completion +Solution: Add new vimscript functions + +Patch 9.0.1775 +Problem: Wrong comparison in vim9type.c +Solution: Change condition to false + +Patch 9.0.1776 +Problem: No support for stable Python 3 ABI +Solution: Support Python 3 stable ABI + +Patch 9.0.1777 +Problem: patch 9.0.1771 causes problems +Solution: revert it + +Patch 9.0.1778 +Problem: if_py_both: code-style issue +Solution: add space + +Patch 9.0.1779 +Problem: Need more state() tests +Solution: Add a few more tests for operater pending mode and register + yank command + +Patch 9.0.1780 +Problem: Vim9 type not defined during object creation +Solution: Define type during object creation and not during class + definition, parse mulit-line member initializers, fix lock + initialization + +Patch 9.0.1781 +Problem: Problems when setting bin/paste option +Solution: When setting binary/paste, remember that this also affects + depending options, so that :verbose set returns the right + location. + +Patch 9.0.1782 +Problem: prop_list() does not return text_padding_left +Solution: Store and return the text_padding_left value for text + properties + +Patch 9.0.1783 +Problem: Wrong display with wrapping virtual text or unprintable chars, + 'showbreak' and 'smoothscroll'. +Solution: Don't skip cells taken by 'showbreak' in screen lines before + "w_skipcol". Combined "n_skip" and "skip_cells". + +Patch 9.0.1784 +Problem: redundant else in pum_set_selected() +Solution: Remove it + +Patch 9.0.1785 +Problem: wrong cursor position with 'showbreak' and lcs-eol +Solution: Add size of 'showbreak' before when 'listchars' "eol" is used. + Also fix wrong cursor position with wrapping virtual text on + empty line and 'showbreak'. + +Patch 9.0.1786 +Problem: Vim9: need instanceof() function +Solution: Implement instanceof() builtin + +Patch 9.0.1787 +Problem: Cannot build with latest luajit +Solution: adjust sed regexp and don't expect '-' in version output + +Patch 9.0.1788 +Problem: C4090 warnings in strings.c +Solution: Add type casts + +Patch 9.0.1789 +Problem: too early declaration of variable in pum_set_selected() +Solution: Move declaration to where it is actually used + +Patch 9.0.1790 +Problem: The Content-Type header is an optional header that some LSP + servers struggle with and may crash when encountering it. +Solution: Drop the Content-Type header from all messages, because we use + the default value anyway. + +Patch 9.0.1791 +Problem: No tests for the termdebug plugin +Solution: Add some simple tests for the termdebug plugin + +Patch 9.0.1792 +Problem: Normal mode "gM", "gj", "gk" commands behave incorrectly with + virtual text. +Solution: Use linetabsize() instead of linetabsize_str(). + +Patch 9.0.1793 +Problem: obsolete macros in configure script +Solution: Remove those and start moving to autoconf 2.71 + +Patch 9.0.1794 +Problem: autoconf: not correctly detecing include dirs +Solution: make use of python3 to generate includedirs + +Patch 9.0.1795 +Problem: Indentation issues +Solution: Fix code indentation issues. + +Patch 9.0.1796 +Problem: Vim9 problems with null_objects +Solution: Vim9 improve null_object usage + +Patch 9.0.1797 +Problem: Vimball/Visual Basic filetype detection conflict +Solution: runtime(vb): Improve Vimball and Visual Basic detection logic + +Patch 9.0.1798 +Problem: The 'syntax' option has no completion. +Solution: Add syntax option completion. + +Patch 9.0.1799 +Problem: Russian menu translation can be improved +Solution: update the Russian menu files + +Patch 9.0.1800 +Problem: Cursor position still wrong with 'showbreak' and virtual text + after last character or 'listchars' "eol". +Solution: Remove unnecessary w_wcol adjustment in curs_columns(). Also + fix first char of virtual text not shown at the start of a screen + line. + +Patch 9.0.1801 +Problem: Vim9 instanceof() fails in a def func +Solution: allow Objects in compile time check + +Patch 9.0.1802 +Problem: Multiline regex with Visual selection fails when Visual + selection contains virtual text after last char. +Solution: Only include virtual text after last char when getting full + line length. + +Patch 9.0.1803 +Problem: Cannot detect norg markup files +Solution: Add norg markup language detection + +Patch 9.0.1804 +Problem: Vim9: no support for private object methods +Solution: Add support for private object/class methods + +Patch 9.0.1805 +Problem: Vim9: problem compiling object method as function call arg +Solution: After a object/class method call, remove the object/class from + the stack. + +Patch 9.0.1806 +Problem: Vim9: bogus error on export +Solution: Don't error out when the export command is not executed + +Patch 9.0.1807 +Problem: runtime: crystal scripts not recognised +Solution: Filetype detect Crystal scripts by shebang line + +Patch 9.0.1808 +Problem: termdebug: Typo in termdebug test +Solution: fix the typos + +Patch 9.0.1809 +Problem: termdebug test flayk +Solution: wait slightly longer + +Patch 9.0.1810 +Problem: camel-case spelling has issues with digits +Solution: Improve the camCase spell checking by taking digits + and caps into account + +Patch 9.0.1811 +Problem: still some issues with term_debug test +Solution: Use WaitForAssert() + +Patch 9.0.1812 +Problem: CI still fails with sodium_mlock error() +Solution: Catch and ignore E1230 error in test_crypt + +Patch 9.0.1813 +Problem: 'linebreak' is incorrectly drawn after 'breakindent'. +Solution: Don't include 'breakindent' size when already after it. + +Patch 9.0.1814 +Problem: Vim9 no error on duplicate object member var +Solution: detect duplicate members and error out + +Patch 9.0.1815 +Problem: pango_coverage_unref() deprecated in pango > 1.51 +Solution: use g_object_unref() instead + +Patch 9.0.1816 +Problem: configure: sed uses non-portable regex +Solution: use '*' modifier instead of '\?' in regex + for luajit version detection + +Patch 9.0.1817 +Problem: configure: using obsolete AC_HEADER_STDC +Solution: Remove it and re-create configure + +Patch 9.0.1818 +Problem: dynamically linking perl is broken +Solution: Fix all issues + +Patch 9.0.1819 +Problem: Github CI too complex +Solution: CI: Tidy up matrix + +Patch 9.0.1820 +Problem: Rexx files may not be recognised +Solution: Add shebang detection and improve disambiguation of *.cls + files + +Patch 9.0.1821 +Problem: Vim9 constructors are always static +Solution: make the "static" keyword an error + +Patch 9.0.1822 +Problem: Vim9: no check for duplicate members in extended classes +Solution: Check for duplicate members in extended classes. + Fix memory leak. + +Patch 9.0.1823 +Problem: Autoconf 2.69 too old +Solution: Migrate to Autoconf 2.71 + +Patch 9.0.1824 +Problem: Vim9: private members may be modifiable +Solution: prevent modification for def function + +Patch 9.0.1825 +Problem: Wrong cursor position with virtual text before a whitespace + character and 'linebreak'. +Solution: Always set "col_adj" to "size - 1" and apply 'linebreak' after + adding the size of 'breakindent' and 'showbreak'. + +Patch 9.0.1826 +Problem: keytrans() doesn't translate recorded key typed in a GUI +Solution: Handle CSI like K_SPECIAL, like in mb_unescape() + +Patch 9.0.1827 +Problem: xxd: no color support +Solution: Add color support using xxd -R + +Patch 9.0.1828 +Problem: Wrong cursor position with virtual text before double-width + char at window edge. +Solution: Check for double-width char before adding virtual text size. + +Patch 9.0.1829 +Problem: Vim9 missing access-checks for private vars +Solution: Use the proper check for private/readonly variable. Access + level for a member cannot be changed in a class implementing an + interface. Update the code indentation + +Patch 9.0.1830 +Problem: Vim9: crash when accessing a null object +Solution: Check accessing a NULL object in def function + +Patch 9.0.1831 +Problem: Vim9: failing null test +Solution: Use required public keyword + +Patch 9.0.1832 +Problem: xxd: reporting wrong version (after 9.0.1827) +Solution: Update version string + +Patch 9.0.1833 +Problem: runtime files may execute code in current dir +Solution: only execute, if not run from current directory + +Patch 9.0.1834 +Problem: Some problems with xxd coloring +Solution: Fix the following problems: + +Patch 9.0.1835 +Problem: Perl interface has problems with load PL_current_context +Solution: Fix Perl interface to load PL_current_context from library + +Patch 9.0.1836 +Problem: Wrong display with "above" virtual text and 'linebreak' or + 'breakindent' and 'showbreak'. +Solution: Exclude size of "above" virtual text when calculating them. + +Patch 9.0.1837 +Problem: Vim9: class_member_type() can be optimized +Solution: class_member_type() provides more information; + safe an additional alloc()/free() + +Patch 9.0.1838 +Problem: Vim9: Cannot modify class member vars from def function +Solution: Add support for modifying class member variables from a def + function + +Patch 9.0.1839 +Problem: No Makefile rule to build cscope database +Solution: Add rule + +Patch 9.0.1840 +Problem: use-after-free in do_ecmd +Solution: Verify oldwin pointer after reset_VIsual() + +Patch 9.0.1841 +Problem: style: trailing whitespace in ex_cmds.c +Solution: remove it + +Patch 9.0.1842 +Problem: Need more accurate profiling +Solution: Improve profiling results + +Patch 9.0.1843 +Problem: xxd color test flaky +Solution: Filter unneeded lines + +Patch 9.0.1844 +Problem: doc helptags may not be up to date +Solution: Add CI jobs to verify helptags are updated + +Patch 9.0.1845 +Problem: xxd: Test_xxd_color start failing +Solution: Revert changes to dump file + +Patch 9.0.1846 +Problem: crash in fullcommand +Solution: Check for typeval correctly + +Patch 9.0.1847 +Problem: potential oob write in do_addsub() +Solution: don't overflow buf2, check size in for loop() + +Patch 9.0.1848 +Problem: buffer-overflow in vim_regsub_both() +Solution: Check remaining space + +Patch 9.0.1849 +Problem: CI error on different signedness +Solution: cast unsigned to int + +Patch 9.0.1850 +Problem: Vim9: wrong line number where options set +Solution: Set source line number earlier + +Patch 9.0.1851 +Problem: Virtual text at a column causes 'breakindent' and 'showbreak' + to be missing (after patch 9.0.1124). +Solution: Add check for "tp_col" in another place where TP_FLAG_WRAP is + checked. + +Patch 9.0.1852 +Problem: i_CTRL-O does not reset Select Mode +Solution: Reset select mode on CTRL-O in insert mode + +Patch 9.0.1853 +Problem: CI error on different signedness in regexp.c + (after patch 9.0.1848) +Solution: Cast strlen() call to int + +Patch 9.0.1854 +Problem: test_crash1() fails on CI +Solution: don't run Screendump test, verify that it doesn't crash + by running it through a shell command line, testing + the exit value and concatenating success cmd using '&&' + +Patch 9.0.1855 +Problem: mode() doesn't indicate command line for terminal +Solution: make it return 'ct' for command-line from Terminal mode + +Patch 9.0.1856 +Problem: issues with formatting positional arguments +Solution: fix them, add tests and documentation + +Patch 9.0.1857 +Problem: heap-use-after-free in is_qf_win() +Solution: Check buffer is valid before accessing it + +Patch 9.0.1858 +Problem: heap use after free in ins_compl_get_exp() +Solution: validate buffer before accessing it + +Patch 9.0.1859 +Problem: heap-use-after-free in bt_normal() +Solution: check that buffer is still valid + +Patch 9.0.1860 +Problem: CI: test_crash1() is flaky +Solution: Wait a bit longer + +Patch 9.0.1861 +Problem: xxd: issue when -R is specified several times +Solution: Fix command line parsing + +Patch 9.0.1862 +Problem: Vim9 Garbage Collection issues +Solution: Class members are garbage collected early leading to + use-after-free problems. Handle the garbage + collection of classes properly. + +Patch 9.0.1863 +Problem: wrong format specifiers in e_aptypes_is_null_str_nr +Solution: Fix the wrong format specifier + +Patch 9.0.1864 +Problem: crash with bt_quickfix1_poc when cleaning up + and EXITFREE is defined +Solution: Test if buffer is valid in a window, else close + window directly, don't try to access buffer properties + +Patch 9.0.1865 +Problem: Vim9: garbage collection may cause crash +Solution: validate that class members typeval is not null + +Patch 9.0.1866 +Problem: Undo is synced after character find. +Solution: Set no_u_sync when calling gotchars_nop(). + +Patch 9.0.1867 +Problem: Vim9: access to interface statics possible +Solution: Prevent direct access to interface statics + +Patch 9.0.1868 +Problem: test_crash still fails for circle ci +Solution: give even more time to complete + +Patch 9.0.1869 +Problem: Coverity warns about unitialized var +Solution: initialize it + +Patch 9.0.1870 +Problem: Vim9: disassamble does not show static +Solution: Show static flag + +Patch 9.0.1871 +Problem: Github CI does not run i386 job +Solution: Add a i386 architecture + +Patch 9.0.1872 +Problem: CI: test_crash() fails on CI +Solution: Skip test on BSD + +Patch 9.0.1873 +Problem: heap-buffer-overflow in vim_regsub_both +Solution: Disallow exchanging windows when textlock is active + +Patch 9.0.1874 +Problem: CI may fail in test_recover_empty_swap +Solution: Set directory option + +Patch 9.0.1875 +Problem: Vim9: improve test for disassemble + static +Solution: Add a Vim9 script disassemble test for an interface with + static members + +Patch 9.0.1876 +Problem: Vim9: parsing commands with newlines wrong +Solution: Accept a '\n' for parsing lists and command arguments + +Patch 9.0.1877 +Problem: missing test for patch 9.0.1873 +Solution: add a test trying to exchange windows + +Patch 9.0.1878 +Problem: tests running sh have problems +Solution: Check that dash is installed + +Patch 9.0.1879 +Problem: Vim9: incorrect duplicate class member detection +Solution: Incorrect duplicate class member detection when variable names + have the same prefix. Not able to access class member variables + using an object. Fix coding style issues + +Patch 9.0.1880 +Problem: Vim9: Need more tests for inheritance +Solution: Add access tests and fixes. + +Patch 9.0.1881 +Problem: Test_crash fails on Mac +Solution: Skip test on Mac + +Patch 9.0.1882 +Problem: Trailing white space in tests +Solution: Delete it + +Patch 9.0.1883 +Problem: Vim9: Calling an interface method using a child object fails +Solution: Search methods of parent class + +Patch 9.0.1884 +Problem: Wrong order of arguments for error messages +Solution: Reverse order or arguments for e_aptypes_is_null_nr_str + +Patch 9.0.1885 +Problem: Vim9: no support for abstract methods +Solution: Add support for defining abstract methods in an abstract class + +Patch 9.0.1886 +Problem: Various Typos +Solution: Fix Typos + +Patch 9.0.1887 +Problem: Vim9: class members are accessible via object +Solution: Disable class member variable access using an object + +Patch 9.0.1888 +Problem: Vim9: Problem trying to invoke class method +Solution: Lookup the class method insider other classes + +Patch 9.0.1889 +Problem: Vim9 static tests fail +Solution: Fix tests, make CI happy ;) + +Patch 9.0.1890 +Problem: Vim9: lookup code for class/object repaeated +Solution: Refactor and make use of lookup functions + +Patch 9.0.1891 +Problem: No runtime support for Mojo +Solution: Add basic filetype and syntax plugins + +Patch 9.0.1892 +Problem: CI: no FreeBSD 14 support +Solution: Drop support for FreeBSD 12, add FreeBSD 14 + +Patch 9.0.1893 +Problem: CI: strptime test fails on BSD14 +Solution: Skip the test + +Patch 9.0.1894 +Problem: CI: trailing white space in tests +Solution: clean up the trailing white space + +Patch 9.0.1895 +Problem: Vim9: finding method/member is inefficient +Solution: Use lookups + +Patch 9.0.1896 +Problem: "below" virtual text doesn't work with 'rightleft'. +Solution: Use column from right border with 'rightleft'. + +Patch 9.0.1897 +Problem: Vim9: confusing error with .= in compiled functions +Solution: Check in error condition, if .= was attempted and in that case + give a different error message. + +Patch 9.0.1898 +Problem: Vim9: restrict access to static vars and methods +Solution: Class members are accesible only from the class where they are + defined. + +Patch 9.0.1899 +Problem: potential buffer overflow in PBYTE macro +Solution: Check returned memline length + +Patch 9.0.1900 +Problem: Configure script uses non-portable == comparison +Solution: Use the standard and portable "=" instead + +Patch 9.0.1901 +Problem: win32: not correctly freeing environment +Solution: After we call GetEnvironmentStringsW, we should call + FreeEnvironmentStringsW + +Patch 9.0.1902 +Problem: Vim9: Coverity complains about dead code +Solution: Copy only object methods from the super class + to a subclass when extending a class. Fix + Coverity warning. + +Patch 9.0.1903 +Problem: Github Actions fails because snd-dummy modules missing + in current runner images +Solution: ignore modprobe error + +Patch 9.0.1904 +Problem: Cirrus-CI fails because we have used all credits +Solution: Remove FreeBSD 13.1 and MacOS M1 + +Patch 9.0.1905 +Problem: FEAT_FLOAT no longer defined +Solution: Remove last existing FEAT_FLOAT ifdefs in + message_test + +Patch 9.0.1906 +Problem: Vim9: Interfaces should not support class methods and + variables +Solution: Make sure interface follow the interface specification + +Patch 9.0.1907 +Problem: No support for liquidsoap filetypes +Solution: Add liquidsoap filetype detection code + +Patch 9.0.1908 +Problem: undefined behaviour upper/lower function ptrs +Solution: Fix UBSAN error in regexp and simplify upper/lowercase + modifier code + +Patch 9.0.1909 +Problem: Vim9: problem calling class method from other class +Solution: Fix this problem, fix readonly object access, update error + messages. + +Patch 9.0.1910 +Problem: Mac OS X: missing sound support on older versions +Solution: Check Macro MAC_OS_X_VERSION_MIN_REQUIRED + +Patch 9.0.1911 +Problem: Vim9: segfault with null object and instanceof() +Solution: return early + +Patch 9.0.1912 +Problem: Cirrus-CI running out of credits +Solution: disable Cirrus-CI for now + +Patch 9.0.1913 +Problem: if_python: undefined behaviour for function pointers +Solution: Fix if_python undefined behavior for function pointer casts + +Patch 9.0.1914 +Problem: Vim9: few issues when accessing object members +Solution: When calling an object method, check for null object. + Accessing a Dict object member doesn't work. + +Patch 9.0.1915 +Problem: r_CTRL-C works differently in visual mode +Solution: Make r_CTRL-C behave consistent in visual mode + in terminal and Windows GUI + +Patch 9.0.1916 +Problem: Crash when allocating large terminal screen +Solution: Don't allow values > 1000 for terminal + screen columns and rows + +Patch 9.0.1917 +Problem: undefined behaviour with python function pointer +Solution: correctly cast function pointers from void + +Patch 9.0.1918 +Problem: No filetype detection for Authzed filetypes +Solution: Detect the *.zed file extension as authzed filetype + +Patch 9.0.1919 +Problem: Wrong curswant when clicking on empty line or with vsplits. +Solution: Don't check for ScreenCols[] before the start of the window + and handle empty line properly. + +Patch 9.0.1920 +Problem: Vim9: cannot write public var in nested object +Solution: Write variable in nested read-only object reference. + Also test write fails. + +Patch 9.0.1921 +Problem: not possible to use the jumplist like a stack +Solution: Add the 'jumpoptions' setting to make the jumplist + a stack. + +Patch 9.0.1922 +Problem: LSP server request message is misinterpreted as a response message +Solution: Check that the message does not have the "message" field + +Patch 9.0.1923 +Problem: curswant wrong on click with 've' and 'wrap' set +Solution: Add w_leftcol to mouse click column. + +Patch 9.0.1924 +Problem: LSP server message still wrongly handled (after 9.0.1922) +Solution: Handle 'method' messages properly, don't discard them, add + tests. + +Patch 9.0.1925 +Problem: if_python: still undefined behaviour with function pointer +Solution: fix remaining problems + +Patch 9.0.1926 +Problem: Vim9: not enough info in error message +Solution: Add class name, change member to variable, quote names + +Patch 9.0.1927 +Problem: patch 1916 (fixed terminal size) not optimal +Solution: Add defines to make it easier changeable later + +Patch 9.0.1928 +Problem: Vim9: constructor type checking bug +Solution: Fix class constructor regression + +Patch 9.0.1929 +Problem: runtime tests fail with tiny vim +Solution: check for tiny vim, run runtime tests in CI + even for tiny version + +Patch 9.0.1930 +Problem: compiler warnings with clang-17 +Solution: Fix function prototypes and function pointer + +Patch 9.0.1931 +Problem: make test_compilers fails on ubuntu +Solution: set LC_ALL=C + +Patch 9.0.1932 +Problem: Vim9: error when using null object constructor +Solution: Check for a null object only when calling an object method + +Patch 9.0.1933 +Problem: Can change the type of a v: variable using if_lua. +Solution: Add additional handling of v: variables like :let. + +Patch 9.0.1934 +Problem: bwipe fails after switching window from aucmd_win. +Solution: Decrement b_nwindows after switching back to aucmd_win. + +Patch 9.0.1935 +Problem: Vim9: not consistent error messages +Solution: Make error messages more consistent. Use "variable" for + (object/class) member + +Patch 9.0.1936 +Problem: test: using wrong expected message in test_crypt +Solution: make use of single quotes + +Patch 9.0.1937 +Problem: missing test for mouse click + 'virtedit' +Solution: Add test for clicking after eol with 'virtualedit' and wrapped + line + +Patch 9.0.1938 +Problem: multispace wrong when scrolling horizontally +Solution: Update position in "multispace" or "leadmultispace" also in + skipped chars. Reorder conditions to be more consistent. + +Patch 9.0.1939 +Problem: still a problem when processing LSP RPC requests +Solution: When processing async LSP RPC requests, compare sequence + numbers only in response messages + +Patch 9.0.1940 +Problem: wrong upstream version in libvterm README +Solution: correct version to 839 + +Patch 9.0.1941 +Problem: Memory leak detected (after 9.0.1928) +Solution: Free arg_objm in get_lambda_tv() + +Patch 9.0.1942 +Problem: Vim9: execution stack invalidated with null object +Solution: Check for a null object before adjusting the execution stack + +Patch 9.0.1943 +Problem: CI not run with clang-17 +Solution: Update CI to use clang-17 + +Patch 9.0.1944 +Problem: Vim9: function instruction pointer invalidated +Solution: Use the funcref index instead of the instruction pointer + +Patch 9.0.1945 +Problem: Vim9: missing support for ro-vars in interface +Solution: Support only read-only object variables in an interface, + add additional checks when parsing class definitions. + +Patch 9.0.1946 +Problem: filename expansion using ** in bash may fail +Solution: Try to enable the globstar setting + +Patch 9.0.1947 +Problem: Bash Expansion test fails on Windows/MacOS +Solution: Disable Test_glob_extended_bash for now + +Patch 9.0.1948 +Problem: Vim9: object variable "this." should only be used in + constructor +Solution: Disallow to this in normal object methods (other than + constructors) + +Patch 9.0.1949 +Problem: Vim9: allows reserved keywords as members +Solution: Disallow reserved keywords, disallow + duplicate object and class variables + +Patch 9.0.1950 +Problem: Vim9: error codes spread out +Solution: group them together and reserve 100 + more for future use + +Patch 9.0.1951 +Problem: Vim9: hard to debug vim9_class errors from CI +Solution: Include the line number in assert_xxx() calls. Include the + entire error message in the tests. Fix the indentation in the + test file. Add tags for new error codes. + +Patch 9.0.1952 +Problem: Vim9: unused static field +Solution: remove it and simplify code + +Patch 9.0.1953 +Problem: Misplaced comment in errors.h +Solution: Move it up + +Patch 9.0.1954 +Problem: CI: change netrw label in labeller bot +Solution: Rename it to 'plugin-netrw' + +Patch 9.0.1955 +Problem: Vim9: lockvar issues with objects/classes +Solution: fix `get_lhs()` object/class access and avoid `SEGV`, + make error messages more accurate. + +Patch 9.0.1956 +Problem: Custom cmdline completion skips original cmdline when pressing + Ctrl-P at first match if completion function invokes glob(). +Solution: Move orig_save into struct expand_T. + +Patch 9.0.1957 +Problem: termcap options should change on keyprotocol setting +Solution: Apply termcap entries when 'keyprotocol' changes + +Patch 9.0.1958 +Problem: cannot complete option values +Solution: Add completion functions for several options + +Patch 9.0.1959 +Problem: Vim9: methods parameters and types are covariant +Solution: Support contra-variant type check for object method arguments + (similar to Dart). + +Patch 9.0.1960 +Problem: Make CI checks more strict +Solution: Add -Wstrict-prototypes -Wmissing-prototypes to CI, + fix uncovered problems + +Patch 9.0.1961 +Problem: Cmdline completion for 'listchars' fields doesn't include + "multispace" and "leadmultispace" (after 9.0.1958). +Solution: Include "multispace" and "leadmultispace" in lcstab. + +Patch 9.0.1962 +Problem: No support for writing extended attributes +Solution: Add extended attribute support for linux + +Patch 9.0.1963 +Problem: Configure script may not detect xattr correctly +Solution: include sys/xattr instead of attr/xattr, + make Test_write_with_xattr_support() test + xattr feature correctly + +Patch 9.0.1964 +Problem: xattr support fails to build on MacOS X +Solution: Disable xattr support for MacOS X + +Patch 9.0.1965 +Problem: wrong auto/configure script +Solution: regenerate with autoconf 2.71 + +Patch 9.0.1966 +Problem: configure prints stray 6 when checking libruby +Solution: redirect stdout to dev/null + +Patch 9.0.1967 +Problem: xattr errors not translated +Solution: mark for translation, consistently capitalize + first letter. + +Patch 9.0.1968 +Problem: cmdline completion should consider key option +Solution: Disable cmdline completion for key option, slightly + refactor how P_NO_CMD_EXPAND is handled + +Patch 9.0.1969 +Problem: buffer-overflow in trunc_string() +Solution: Add NULL at end of buffer + +Patch 9.0.1970 +Problem: win32: high-dpi support can be improved +Solution: implement WM_GETDPISCALEDSIZE + +Patch 9.0.1971 +Problem: macOS: FEAT_SOUND guard too restrictive +Solution: check for older macOS support properly + +Patch 9.0.1972 +Problem: win32: missing '**' expansion test (after v9.0.1947) +Solution: Add test for MS-Windows + +Patch 9.0.1973 +Problem: Clean up cmdline option completion code +Solution: Fix various minor problems + +Patch 9.0.1974 +Problem: vim9: using contra-variant type-checks (after v9.0.1959) +Solution: Use invariant type checking instead + +Patch 9.0.1975 +Problem: xattr: permission-denied errors on write +Solution: ignore those errors + +Patch 9.0.1976 +Problem: style: space before tab in optionstr.c +Solution: remove the space + +Patch 9.0.1977 +Problem: Vim9: object members can change type +Solution: Check type during assignment to object/class var + +Patch 9.0.1978 +Problem: No filetype detection for just files +Solution: Detect just files (*.just, justfile, etc) + +Patch 9.0.1979 +Problem: Cirrus CI disabled +Solution: re-enable Cirrus CI + +Patch 9.0.1980 +Problem: win32: issues with stable python ABI +Solution: if_python3,win32: Fix Python3 stable ABI + +Patch 9.0.1981 +Problem: Cannot scroll up in diff mode with many filler lines and zero + 'scrolloff'. +Solution: Invalidate w_cline_row before calling comp_botline(). + +Patch 9.0.1982 +Problem: vim9: clean up from v9.0.1955 +Solution: Fix a few remaining issues, improve error message + +Patch 9.0.1983 +Problem: Scrolling non-current window using mouse is inconsistent + depending on 'scrollbind'/'scrolloff' and different from GUI + vertical scrollbar when 'cursorbind' is set. +Solution: Don't move cursor in non-current windows for 'cursorbind' if + cursor in the current window didn't move. + +Patch 9.0.1984 +Problem: CI: Test_open_delay*() fails on FreeBSD 14 +Solution: Skip it on BSD + +Patch 9.0.1985 +Problem: CI: codecov is intrusive +Solution: disable codecov comments + +Patch 9.0.1986 +Problem: Vim9: accepting type-annotations +Solution: Reject type annotations outside of declarations. + +Patch 9.0.1987 +Problem: win32: font-size calculation can be improved +Solution: calculate font size before the window size + +Patch 9.0.1988 +Problem: Vim9: potential use-after-free for class members +Solution: Use the class-related grow array for storing the + member type instead of using a temporary type + list grow array + +Patch 9.0.1989 +Problem: Vim9: double error message given +Solution: Only give second error message, if ther + wasn't one given before + +Patch 9.0.1990 +Problem: strange error number +Solution: change error number, + add doc tag for E1507 + +Patch 9.0.1991 +Problem: no cmdline completion for setting the font +Solution: enable it on Win32 and GTK builds + +Patch 9.0.1992 +Problem: segfault in exmode when redrawing +Solution: skip gui_scroll when exmode_active + +Patch 9.0.1993 +Problem: warning about unused function definition +Solution: add ifdefs + +Patch 9.0.1994 +Problem: inconsistent feature description +Solution: delete old mentioned feature sets small and big + +Patch 9.0.1995 +Problem: Invalid memory access when 'foldexpr' returns empty string. +Solution: Check for NUL. + +Patch 9.0.1996 +Problem: Cannot build with python312 +Solution: Define wrapper types and functions for python 3.12 + +Patch 9.0.1997 +Problem: Some unused code in move.c and string.c +Solution: Remove it + +Patch 9.0.1998 +Problem: xxd: cannot reverse a bit dump +Solution: implement reversing the bit dump using -b -r + +Patch 9.0.1999 +Problem: Vim9: some error messages can be improved +Solution: Mention the defining class for variable access error message + +Patch 9.0.2000 +Problem: Vim9: use-after-free in deep call stack +Solution: Get the objct pointer from execution stack + +Patch 9.0.2001 +Problem: Vim9: segfault with islocked() +Solution: Check that the lval pointer is not null for objects and + class variables + +Patch 9.0.2002 +Problem: Vim9: need cleanup of class related interface code +Solution: Remove the unused class variable and class method related code + for interfaces. + +Patch 9.0.2003 +Problem: xxd: compilation warning +Solution: initialize variables + +Patch 9.0.2004 +Problem: Missing test file +Solution: git-add the file to the repo + +Patch 9.0.2005 +Problem: partially revert patch v9.0.1997 +Solution: add a comment, to make clear it's not used + +Patch 9.0.2006 +Problem: Vim9: need more tests +Solution: add additional disassembly tests + +Patch 9.0.2007 +Problem: Vim9: covariant parameter types allowed when assigning + functions +Solution: Enforce invariant type check for arguments and return value + when assigning a funcref + +Patch 9.0.2008 +Problem: test: undofile left behind +Solution: cleanup undofile + +Patch 9.0.2009 +Problem: cmdline-completion for comma-separated options wrong +Solution: Fix command-line expansions for options with filenames with + commas + +Patch 9.0.2010 +Problem: [security] use-after-free from buf_contents_changed() +Solution: block autocommands + +Patch 9.0.2011 +Problem: INI files not detected +Solution: detect uppercase .INI as dosini files + +Patch 9.0.2012 +Problem: Vim9: error message can be more accurate +Solution: Fix the error messages + +Patch 9.0.2013 +Problem: Unicode tables outdated +Solution: Update Unicode tables to v15.1 (released 23.09.2023) + +Patch 9.0.2014 +Problem: confusing ifdefs in if_.c +Solution: refactor ifndefs to #ifdefs + +Patch 9.0.2015 +Problem: Vim9: does not handle islocked() from a method correctly +Solution: Handle islocked() builtin from a method. + +Patch 9.0.2016 +Problem: Vim9: assignment operators don't work for class vars +Solution: implement it + +Patch 9.0.2017 +Problem: linebreak applies for leading whitespace +Solution: only apply linebreak, once we have found non-breakat chars in + the line + +Patch 9.0.2018 +Problem: complete_info() returns wrong index +Solution: Make order of 'info' in completion_info consistent + +Patch 9.0.2019 +Problem: Vim9: no support for funcrefs +Solution: Add support for object/class funcref members + +Patch 9.0.2020 +Problem: Vim9: islocked() needs more work +Solution: rework islocked() and remove sync_root + from get_lval() + +Patch 9.0.2021 +Problem: Coverity complains about change in charset (after v9.0.2017) +Solution: check pointer t at index 0 + +Patch 9.0.2022 +Problem: When clicking in the middle of a TAB, getmousepos() returns + the column of the next char instead of the TAB. +Solution: Break out of the loop when the vcol to find is inside current + char. Fix invalid memory access when calling virtcol2col() on + an empty line. + +Patch 9.0.2023 +Problem: need more tests for :cq +Solution: Add more tests, including wraparound on linux + +Patch 9.0.2024 +Problem: no filetype detection for Debian sources +Solution: Add new deb822sources filetype + +Patch 9.0.2025 +Problem: no cmdline completion for ++opt args +Solution: Add cmdline completion for :e ++opt=arg and :terminal + [++options] + +Patch 9.0.2026 +Problem: win32: python3 dll loading can be improved +Solution: Load DLL from registry path + +Patch 9.0.2027 +Problem: Vim9: no support for bitwise operators in lambda funcs +Solution: move "evaluate" assignment a bit up in order to decide + to perform bitwise operations + +Patch 9.0.2028 +Problem: confusing build dependencies +Solution: clean them up, make them parallelizable + +Patch 9.0.2029 +Problem: Vim9: no support for partials using call() +Solution: Add support + +Patch 9.0.2030 +Problem: no max callback recursion limit +Solution: bail out, if max call recursion for callback functions + has been reached. + +Patch 9.0.2031 +Problem: `TextChangedI` can trigger on entering Insert mode if there + was previously a change not in Insert mode. +Solution: Make it trigger only when text is actually changed in Insert + mode. + +Patch 9.0.2032 +Problem: Cannot accurately get mouse clicking position when clicking on + a TAB or with virtual text. +Solution: Add a "coladd" field to getmousepos() result. + +Patch 9.0.2033 +Problem: gcc overflow-warning for f_resolve +Solution: use pointer p instead of pointer q[-1] + +Patch 9.0.2034 +Problem: don't try to copy SMACK attribute, when none exist +Solution: return early if SMACK extended attributes do not exist or + if they are not supported + +Patch 9.0.2035 +Problem: [security] use-after-free with wildmenu +Solution: properly clean up the wildmenu when exiting + +Patch 9.0.2036 +Problem: if_python: rework python3.12 build dependency + (after 9.0.1996) +Solution: use PyTuple_Size instead of inlining the Py_SIZE + into the Vim code base + +Patch 9.0.2037 +Problem: A few remaining cmdline completion issues with C-E/Y +Solution: Fix cmdline completion fuzzy/Ctrl-E/Ctrl-Y/options when not + used at the end + +Patch 9.0.2038 +Problem: Vim9: object method funcref not cleaned up after use +Solution: Clean up type stack after using object method funcref, + remove now longer used ISN_DEFEROBJ instrunction + +Patch 9.0.2039 +Problem: completion shows current word after completion restart +Solution: remove the word being completed after completion restart + +Patch 9.0.2040 +Problem: trim(): hard to use default mask +Solution: Use default 'mask' when it is v:none + +Patch 9.0.2041 +Problem: trim(): hard to use default mask (partly revert v9.0.2040) +Solution: use default mask when it is empty + +Patch 9.0.2042 +Problem: Test_cq_zero_exmode fails without channel feature +Solution: Make the test check the channel feature + +Patch 9.0.2043 +Problem: Vim9: issue with funcref assignmentand varargs +Solution: Fix funcref type checking + +Patch 9.0.2044 +Problem: Vim9: exceptions confuse defered functions +Solution: save and restore exception state when calling defered + functions + +Patch 9.0.2045 +Problem: tests: checking for swap files takes time +Solution: don't check for swap files when test has been skipped + +Patch 9.0.2046 +Problem: win32,python: warning that MS_WIN64 got re-defined +Solution: Do not define MS_WIN64, as it is no longer used + +Patch 9.0.2047 +Problem: perl: warning about inconsistent dll linkage +Solution: suppress warning + +Patch 9.0.2048 +Problem: python: uninitialized warning +Solution: initialize 'minor' always + +Patch 9.0.2049 +Problem: Vim9: not recognizing qualified class vars for infix ops +Solution: Drop the class type from the stack before generating the + CLASSMEMBER instruction + +Patch 9.0.2050 +Problem: Vim9: crash with deferred function call and exception +Solution: Save and restore exception state + +Patch 9.0.2051 +Problem: Vim9: wrong error for non-existing object var +Solution: mention object or class depending on whether + the var is an object or class variable. + +Patch 9.0.2052 +Problem: win32: using deprecated wsock32 api +Solution: Use winsock2 (ws2_32) consistently + +Patch 9.0.2053 +Problem: zig filetype detection test wrong +Solution: Remove .zir pattern, add new test for .zon pattern + +Patch 9.0.2054 +Problem: win32: iscygpty needs update +Solution: Update iscygpty to the latest version, make use iswascii() + API function + +Patch 9.0.2055 +Problem: Vim9: non-consistent error messages +Solution: make error messages more consistent with common structure + +Patch 9.0.2056 +Problem: no digraph for quadruple prime +Solution: add quadruple prime digraph using 4' + +Patch 9.0.2057 +Problem: Vim9: no strict type checks for funcrefs varargs +Solution: Perform strict type checking when declaring funcrefs + with vararg declaration, add tests + +Patch 9.0.2058 +Problem: tests: avoid error when no swap files exist +Solution: use unlet! so that no error message is reported + in case the variable does not exists + +Patch 9.0.2059 +Problem: outstanding exceptions may be skipped +Solution: When restoring exception state, process remaining outstanding + exceptions + +Patch 9.0.2060 +Problem: *.{gn,gni} files are not recognized +Solution: Detect some as gn filetype (without adding an extra filetype) + +Patch 9.0.2061 +Problem: not able to detect xkb filetypes +Solution: Detect files below /u/s/X11/xkb as xkb files (without adding + an extra filetype) + +Patch 9.0.2062 +Problem: Janet files are not recognised +Solution: Add filename and shebang detection (without + adding an extra filetype plugin) + +Patch 9.0.2063 +Problem: pacman hooks are detected as conf filetype +Solution: make it consistent to pacman.conf and detect those + hooks as confini + +Patch 9.0.2064 +Problem: cannot use buffer-number for errorformat +Solution: add support for parsing a buffer number using '%b' in + 'errorformat' + +Patch 9.0.2065 +Problem: EXPAND flag set for filetype option +Solution: Remove P_EXPAND flag from the 'filetype' option + +Patch 9.0.2066 +Problem: xxd: corrupting files when reversing bit dumps +Solution: handle reversing bit dump slightly differently + +Patch 9.0.2067 +Problem: xxd: coloring was disabled on Cygwin +Solution: don't include WIN32 + +Patch 9.0.2068 +Problem: [security] overflow in :history +Solution: Check that value fits into int + +Patch 9.0.2069 +Problem: possible to escape bracketed paste mode with Ctrl-C +Solution: Do not handle Ctrl-C specially when key_protocol + is in use, makes bracketed paste mode more robust + +Patch 9.0.2070 +Problem: [security] disallow setting env in restricted mode +Solution: Setting environment variables in restricted mode could + potentially be used to execute shell commands. Disallow this. + +Patch 9.0.2071 +Problem: objdump files not recognized +Solution: detect *.objdump files, add a filetype plugin + +Patch 9.0.2072 +Problem: Vim9: no nr2str conversion in list-unpack +Solution: Generate 2STRING instruction to convert dict index to string + +Patch 9.0.2073 +Problem: typo in quickfix.c comments +Solution: fix them + +Patch 9.0.2074 +Problem: Completion menu may be wrong +Solution: Check for the original direction of the completion menu, + add more tests, make it work with 'noselect' + +Patch 9.0.2075 +Problem: TextChangedI may not always trigger +Solution: trigger it in more cases: for insert/ + append/change operations, and when + opening a new line, + +Patch 9.0.2076 +Problem: Vim9: No support for type aliases +Solution: Implement :type command + +Patch 9.0.2077 +Problem: CI fails because of trailing whitespace in test +Solution: Remove it + +Patch 9.0.2078 +Problem: several problems with type aliases +Solution: Check for more error conditions, add tests, + fix issues + +Patch 9.0.2079 +Problem: Not all Dart files detected +Solution: Add shebang filetype detection for Dart + +Patch 9.0.2080 +Problem: vim9_script test too large +Solution: split vim9 type alias test into + separate test file + +Patch 9.0.2081 +Problem: With 'smoothscroll' set, "w_skipcol" is not reset when unsetting + 'wrap'. Resulting in incorrect calculation of the cursor position. +Solution: Reset "w_skipcol" when unsetting 'wrap'. + +Patch 9.0.2082 +Problem: test_channel may fail because of IPv6 config issues +Solution: Catch and skip the test, if getaddrinfo() fails with + 'Address family not supported' + +Patch 9.0.2083 +Problem: Perl: xsubpp may be in non-standard location +Solution: Add --with-subpp configure option + +Patch 9.0.2084 +Problem: Vim9: abstract static methods are possible +Solution: Disallow abstract static methods + +Patch 9.0.2085 +Problem: Vim9: abstract can be used in interface +Solution: Disallow the use of abstract in an interface + +Patch 9.0.2086 +Problem: code cleanup for option callbacks needed +Solution: remove flag os_doskip, it's not necessary, as we can check, + whether an error message was returned + +Patch 9.0.2087 +Problem: build-failure in vim9class +Solution: reference correct error message, + disable non-failing test + +Patch 9.0.2088 +Problem: Vim9: still allows abstract static methods + (after v9.0.2084, v9.0.2085 and v9.0.2087) +Solution: Disallow abstract static methods + +Patch 9.0.2089 +Problem: sound_playfile() fails when using powershell +Solution: quote filename using doublequotes, don't escape filename, + because it doesn't use the shell + +Patch 9.0.2090 +Problem: complete_info() skips entries with 'noselect' +Solution: Check, if first entry is at original text state + +Patch 9.0.2091 +Problem: Vim9: cannot convert list to string using += + (after 9.0.2072) +Solution: convert dict index to string later in compile_member() + +Patch 9.0.2092 +Problem: tests: failure in test_arabic +Solution: adjust the test for the changed arabic keymap + +Patch 9.0.2093 +Problem: Unsupported option causes rest of modeline test to be skipped. +Solution: Revert the change from patch 8.2.1432. + +Patch 9.0.2094 +Problem: Vim9: need more assignment tests +Solution: Add test for using different types in assignment, function + arguments and return values + +Patch 9.0.2095 +Problem: statusline may look different than expected +Solution: do not check for highlighting of stl and stlnc characters + +Patch 9.0.2096 +Problem: Vim9: confusing usage of private +Solution: clarify and use protected keyword instead + +Patch 9.0.2097 +Problem: No support for cypher files +Solution: Add cypher filetype detection + +Patch 9.0.2098 +Problem: No filetype support for xcompose files +Solution: Add filetype detection + +Patch 9.0.2099 +Problem: Terminal control codes¹ are sent even when silent + mode is on, causing the terminal to clear up +Solution: Block any terminal codes when silent mode is on + +Patch 9.0.2100 +Problem: CI: test_termdebug fails +Solution: only test for a changed winlayout, if the window + width actually changed + +Patch 9.0.2101 +Problem: CI: test_termdebug may still fail +Solution: use term_wait() to make it more robust + +Patch 9.0.2102 +Problem: matchparen highlight not cleared in completion mode +Solution: Clear matchparen highlighting in completion mode + +Patch 9.0.2103 +Problem: recursive callback may cause issues on some archs +Solution: Decrease the limit drastically to 20 + +Patch 9.0.2104 +Problem: wast filetype should be replaced by wat filetype +Solution: start using the official wat filetype name + +Patch 9.0.2105 +Problem: Skipcol is not reset when topline changed scrolling cursor to top +Solution: reset skipcol + +Patch 9.0.2106 +Problem: [security]: Use-after-free in win_close() +Solution: Check window is valid, before accessing it + +Patch 9.0.2107 +Problem: [security]: FPE in adjust_plines_for_skipcol +Solution: don't divide by zero, return zero + +Patch 9.0.2108 +Problem: [security]: overflow with count for :s command +Solution: Abort the :s command if the count is too large + +Patch 9.0.2109 +Problem: [security]: overflow in nv_z_get_count +Solution: break out, if count is too large + +Patch 9.0.2110 +Problem: [security]: overflow in ex address parsing +Solution: Verify that lnum is positive, before substracting from + LONG_MAX + +Patch 9.0.2111 +Problem: [security]: overflow in get_number +Solution: Return 0 when the count gets too large + +Patch 9.0.2112 +Problem: [security]: overflow in shift_line +Solution: allow a max indent of INT_MAX + +Patch 9.0.2113 +Problem: Coverity warns for another overflow in shift_line() +Solution: Test for INT_MAX after the if condition, cast integer values + to (long long) before multiplying. + +Patch 9.0.2114 +Problem: overflow detection not accurate when adding digits +Solution: Use a helper function + +Patch 9.0.2115 +Problem: crash when callback function aborts because of recursiveness +Solution: correctly initialize rettv + +Patch 9.0.2116 +Problem: No test for defining sign without attribute +Solution: Add test for defining sign without attributes + +Patch 9.0.2117 +Problem: [security] use-after-free in qf_free_items +Solution: only access qfpnext, if it hasn't been freed + +Patch 9.0.2118 +Problem: [security]: avoid double-free +Solution: Only fee plain_font, when it is not the same as bold_font + +Patch 9.0.2119 +Problem: remove dead-condition in ex_class() +Solution: remove the extra condition + +Patch 9.0.2120 +Problem: un-used assignment in do_source_buffer_init +Solution: Remove it + +Patch 9.0.2121 +Problem: [security]: use-after-free in ex_substitute +Solution: always allocate memory + +Patch 9.0.2122 +Problem: [security]: prevent overflow in indenting +Solution: use long long and remove cast to (int) + +Patch 9.0.2123 +Problem: Problem with initializing the length of range() lists +Solution: Set length explicitly when it shouldn't contain any items + +Patch 9.0.2124 +Problem: INT overflow logic can be simplified +Solution: introduce trim_to_int() function + +Patch 9.0.2125 +Problem: File info disappears immediately when 'cmdheight' has just + decreased due to switching tabpage and 'shortmess' doesn't + contain 'o' or 'O'. +Solution: Make sure msg_row isn't smaller than cmdline_row. + +Patch 9.0.2126 +Problem: Unused assignments when checking the value of 'listchars'. +Solution: Loop only once when just checking the value. Add a test to + check that this change doesn't cause double-free. + +Patch 9.0.2127 +Problem: translation Makefiles can be improved +Solution: Modified and extended po-related Makefiles and + related files + +Patch 9.0.2128 +Problem: No runtime files for SWIG filetypes +Solution: Add syntax and filetype plugins for SWIG (Simplified Wrapper + Interface Generator) description files. + +Patch 9.0.2129 +Problem: [security]: use-after-free in call_dfunc() +Solution: Refresh dfunc pointer + +Patch 9.0.2130 +Problem: some errors with translation Makefiles +Solution: fix issues + +Patch 9.0.2131 +Problem: not all nushell files detected +Solution: use *.nu to detect nushell files + +Patch 9.0.2132 +Problem: Duplicate Netbeans Error Message +Solution: Remove duplicate message + +Patch 9.0.2133 +Problem: Cannot detect overstrike mode in Cmdline mode +Solution: Make mode() return "cr" for overstrike + +Patch 9.0.2134 +Problem: ml_get error when scrolling after delete +Solution: mark topline to be validated in main_loop + if it is larger than current buffers line + count + +Patch 9.0.2135 +Problem: No test for mode() when executing Ex commands +Solution: Add some test cases and simplify several other test cases. + Also add a few more test cases for ModeChanged. + +Patch 9.0.2136 +Problem: MSVC errorformat can be improved +Solution: parse error type and column number in MSVC errorformat + +Patch 9.0.2137 +Problem: Can't detect angular & mustache filetypes +Solution: Detect *.mustache as Mustache filetype; + detect *.component.html as html.angular filetype + +Patch 9.0.2138 +Problem: Overflow logic requires long long +Solution: Define vimlong_T data type to make life easier + for porters + +Patch 9.0.2139 +Problem: html.angular ft is problematic +Solution: partly revert v9.0.2137 + +Patch 9.0.2140 +Problem: [security]: use-after-free in win-enter +Solution: validate window pointer before calling win_enter() + +Patch 9.0.2141 +Problem: [security]: buffer-overflow in suggest_trie_walk +Solution: Check n before using it as index into byts array + +Patch 9.0.2142 +Problem: [security]: stack-buffer-overflow in option callback functions +Solution: pass size of errbuf down the call stack, use snprintf() + instead of sprintf() + +Patch 9.0.2143 +Problem: [security]: buffer-overflow in ex_substitute +Solution: clear memory after allocating + +Patch 9.0.2144 +Problem: Text properties causes wrong line wrapping to be drawn. +Solution: Find the index of the last text property that inserts text. + +Patch 9.0.2145 +Problem: Wrong scrolling in Insert mode with 'smoothscroll' at the + bottom of the window. +Solution: Don't use set_topline() when 'smoothscroll' is set. + +Patch 9.0.2146 +Problem: text-property without type errors when joining +Solution: count all text-properties, with or without type + before joining lines + +Patch 9.0.2147 +Problem: Type check tests fail without the channel feature +Solution: only run tests, when Vim was build with +channel + +Patch 9.0.2148 +Problem: Vim does not detect pacman.log file +Solution: Detect pacmanlogs and add syntax highlighting + +Patch 9.0.2149 +Problem: [security]: use-after-free in exec_instructions() +Solution: get tv pointer again + +Patch 9.0.2150 +Problem: Using int for errbuflen in option funcs +Solution: Use size_t for errbuflen in string option functions + +Patch 9.0.2151 +Problem: 'breakindent' is not drawn after diff filler lines. +Solution: Correct check for whether 'breakindent' should be drawn. + +Patch 9.0.2152 +Problem: Using type unknown for List/Dict containers +Solution: Use 'any' instead + +Patch 9.0.2153 +Problem: no support to build on OpenVMS +Solution: Add OpenVMS X86_64 platform port + +Patch 9.0.2154 +Problem: The options[] array is not sorted alphabetically. +Solution: Sort it alphabetically. Add a test. Avoid unnecessary loop + iterations in findoption(). + +Patch 9.0.2155 +Problem: Vim9: type not kept when assigning vars +Solution: When assigning a List or a Dict value to a variable of type + 'any', keep the type + +Patch 9.0.2156 +Problem: Vim9: can use typealias in an assignment +Solution: Generate errors when class/typealias involved in the rhs of an + assignment + +Patch 9.0.2157 +Problem: Vim9: incorrectly parses :def func definitions +Solution: check for more context when parsing function args + +Patch 9.0.2158 +Problem: [security]: use-after-free in check_argument_type +Solution: Reset function type pointer when freeing the function type + list + +Patch 9.0.2159 +Problem: screenpos() may crash with neg. column +Solution: validate and correct column + +Patch 9.0.2160 +Problem: instanceof() should use varargs as second arg +Solution: Modify `instanceof()` to use varargs instead of list + +Patch 9.0.2161 +Problem: Vim9: not able to use imported interfaces and classes +Solution: Detect imported class/interfaces names correclty + +Patch 9.0.2162 +Problem: Vim9: type documentation out-dated +Solution: Update documentation, fix typo in type alias + definition + +Patch 9.0.2163 +Problem: Vim9: type can be assigned to list/dict +Solution: Prevent assigning a `type` to a `list` or `dict` + +Patch 9.0.2164 +Problem: Vim9: can use type a func arg/return value +Solution: Check if using type as function argument or return value + +Patch 9.0.2165 +Problem: Vim9: can simplify arg type checking code +Solution: In `f_argcheck` array use `arg_any`, instead of NULL + +Patch 9.0.2166 +Problem: Memory leak in Configure Script when checking GTK +Solution: Free the allocated memory + +Patch 9.0.2167 +Problem: Vim9-script object/class variable declarations use syntax + that is inconsistent with the rest of the language. +Solution: Use :var to declare object and class variables. + +Patch 9.0.2168 +Problem: Moving tabpages on :drop may cause an endless loop +Solution: Disallow moving tabpages on :drop when cleaning up the arglist + first + +Patch 9.0.2169 +Problem: Vim9: builtin funcs may accept a non-value +Solution: Restrict builtin functions that accept `type` + +Patch 9.0.2170 +Problem: Vim9: no support for const/final class/objects vars +Solution: Support final and const object and class variables + +Patch 9.0.2171 +Problem: The options[] array is still not sorted alphabetically + (after: v9.0.2154), causing test failures +Solution: Sort the remaining items + +Patch 9.0.2172 +Problem: Vim9: compiling :defer may fail +Solution: compile defer, when ctx_skip is not SKIP_YES + +Patch 9.0.2173 +Problem: Vim9: Vim crashes when compiling a for statement with a + non-existing type +Solution: Error out when lhs_type is not null + +Patch 9.0.2174 +Problem: Vim9: segfault when assigning to type +Solution: do not clear typeval, add missing patch number + +Patch 9.0.2175 +Problem: Compiler warning for uninitialized var +Solution: initialize variable to NULL vim:tw=78:ts=8:noet:ft=help:norl: From 18d0d29b420543efd4938619d821df7b67988de5 Mon Sep 17 00:00:00 2001 From: Ken Takata Date: Tue, 19 Dec 2023 20:12:29 +0100 Subject: [PATCH 055/120] patch 9.0.2175: Compile error with Motif UI + mouse support Problem: Compile error with Motif UI + mouse support (after v9.0.1262) Solution: Use correct oldval option pointer Fix compilation error introduced by 9.0.1262 and found in #13704. closes: #13726 Signed-off-by: Ken Takata Signed-off-by: Christian Brabandt --- src/optionstr.c | 2 +- src/version.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/optionstr.c b/src/optionstr.c index ad1dc81a84..326e625526 100644 --- a/src/optionstr.c +++ b/src/optionstr.c @@ -2956,7 +2956,7 @@ did_set_mousemodel(optset_T *args UNUSED) if (check_opt_strings(p_mousem, p_mousem_values, FALSE) != OK) return e_invalid_argument; #if defined(FEAT_GUI_MOTIF) && defined(FEAT_MENU) && (XmVersion <= 1002) - else if (*p_mousem != *oldval) + else if (*p_mousem != *args->os_oldval.string) // Changed from "extend" to "popup" or "popup_setpos" or vv: need // to create or delete the popup menus. gui_motif_update_mousemodel(root_menu); diff --git a/src/version.c b/src/version.c index 78fb3e01f6..e65c2310cd 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2176, /**/ 2175, /**/ From 955652f6df9c4a1048fde8028c5c7f7871b5f71a Mon Sep 17 00:00:00 2001 From: "K.Takata" Date: Wed, 20 Dec 2023 04:15:47 +0900 Subject: [PATCH 056/120] runtime(doc): Update change.txt (#13725) Fix-up and clarify commit e06f2b498ccca921f34a1bec4464f042a5a2cabd Signed-off-by: Ken Takata Signed-off-by: Christian Brabandt --- runtime/doc/change.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index 8c74551cc1..972886d015 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -1,4 +1,4 @@ -*change.txt* For Vim version 9.0. Last change: 2023 Dec 08 +*change.txt* For Vim version 9.0. Last change: 2023 Dec 19 VIM REFERENCE MANUAL by Bram Moolenaar @@ -452,9 +452,12 @@ octal number. Note that when 'nrformats' includes "octal", decimal numbers with leading zeros cause mistakes, because they can be confused with octal numbers. -Note similarly, when 'nrformats' includes "bin", binary numbers with a leading -'0b' or '0B' can be interpreted as hexadecimal rather than binary since '0b' -are valid hexadecimal digits. +Note similarly, when 'nrformats' includes both "bin" and "hex", binary numbers +with a leading '0x' or '0X' can be interpreted as hexadecimal rather than +binary since '0b' are valid hexadecimal digits. CTRL-A on "0x0b11" results in +"0x0b12", not "0x0b100". +When 'nrformats' includes "bin" and doesn't include "hex", CTRL-A on "0b11" in +"0x0b11" results in "0x0b100". When the number under the cursor is too big to fit into 32 or 64 bit (depending on how Vim was build), it will be rounded off to the nearest number From 3ffc5bc6b8230bf8f28c75515e734dfb4545b29f Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 20 Dec 2023 03:17:08 +0800 Subject: [PATCH 057/120] CI: change dependabot prefix to "CI" (#13724) The default prefix of dependabot is "build(deps)". Change it to "CI". Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- .github/dependabot.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5ace4600a1..54873486da 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,3 +4,5 @@ updates: directory: "/" schedule: interval: "weekly" + commit-message: + prefix: "CI" From 379df7c1dbb23d44918c7fbf102c4a0f7bdc2132 Mon Sep 17 00:00:00 2001 From: ronaaron Date: Tue, 19 Dec 2023 21:20:14 +0200 Subject: [PATCH 058/120] runtime(8th): updated 8th syntax (#13720) * updated 8th.vim * removed obsolete code Signed-off-by: Ron Aaron Signed-off-by: Doug Kearns Signed-off-by: Christian Brabandt --- runtime/syntax/8th.vim | 683 ++++++++++++++++++++++------------------- 1 file changed, 369 insertions(+), 314 deletions(-) diff --git a/runtime/syntax/8th.vim b/runtime/syntax/8th.vim index 643c9cb095..a88a5a294a 100644 --- a/runtime/syntax/8th.vim +++ b/runtime/syntax/8th.vim @@ -1,26 +1,26 @@ " Vim syntax file " Language: 8th -" Version: 21.08 -" Last Change: 2021 Sep 20 +" Version: 23.09.01 +" Last Change: 2023 Dec 19 " Maintainer: Ron Aaron " URL: https://8th-dev.com/ " Filetypes: *.8th " NOTE: You should also have the ftplugin/8th.vim file to set 'isk' -if version < 600 - syntax clear - finish -elseif exists("b:current_syntax") +if exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim syn clear -" Synchronization method + syn sync ccomment -syn sync maxlines=100 +syn sync maxlines=200 + syn case match +syn iskeyword 33-255 + syn match eighthColonName "\S\+" contained syn match eighthColonDef ":\s\+\S\+" contains=eighthColonName @@ -34,230 +34,257 @@ syn keyword eighthDefine var var, " Built in words: com! -nargs=+ Builtin syn keyword eighthBuiltin -Builtin args #:args b #:b dhm #:dhm exec# #:exec# id2ns #:id2ns id? #:id? idd #:idd key #:key oa #:oa -Builtin oid #:oid okey #:okey with #:with with! #:with! zip #:zip gen-secret 2fa:gen-secret gen-url 2fa:gen-url -Builtin validate-code 2fa:validate-code ! G:! #! G:#! ## G:## #> G:#> #if G:#if ' G:' ( G:( (* G:(* -Builtin (:) G:(:) (code) G:(code) (defer) G:(defer) (dump) G:(dump) (getc) G:(getc) (gets) G:(gets) + +Builtin gen-secret 2fa:gen-secret gen-url 2fa:gen-url validate-code 2fa:validate-code cb AWS:cb cli AWS:cli +Builtin cmd AWS:cmd cp AWS:cp rc AWS:rc call DBUS:call init DBUS:init + DOM:+ - DOM:- attr! DOM:attr! +Builtin attr@ DOM:attr@ attrs DOM:attrs children DOM:children css-parse DOM:css-parse each DOM:each +Builtin find DOM:find new DOM:new type DOM:type ! G:! !if G:!if #! G:#! ## G:## #if G:#if ' G:' ( G:( +Builtin (* G:(* (:) G:(:) (code) G:(code) (defer) G:(defer) (dump) G:(dump) (getc) G:(getc) (gets) G:(gets) Builtin (interp) G:(interp) (log) G:(log) (needs) G:(needs) (parseln) G:(parseln) (putc) G:(putc) (puts) G:(puts) -Builtin (putslim) G:(putslim) (stat) G:(stat) (with) G:(with) ) G:) +hook G:+hook +listener G:+listener -Builtin +ref G:+ref ,# G:,# -- G:-- -----BEGIN G:-----BEGIN -Inf G:-Inf -Inf? G:-Inf? -hook G:-hook -Builtin -listener G:-listener -ref G:-ref -rot G:-rot . G:. .# G:.# .hook G:.hook .needs G:.needs .r G:.r -Builtin .s G:.s .s-truncate G:.s-truncate .stats G:.stats .ver G:.ver .with G:.with 0; G:0; 2dip G:2dip -Builtin 2drop G:2drop 2dup G:2dup 2over G:2over 2swap G:2swap 3drop G:3drop 3rev G:3rev 4drop G:4drop -Builtin 8thdt? G:8thdt? 8thsku G:8thsku 8thver? G:8thver? 8thvernum? G:8thvernum? : G:: ; G:; ;; G:;; -Builtin ;;; G:;;; ;with G:;with <# G:<# <#> G:<#> >clip G:>clip >json G:>json >kind G:>kind >n G:>n -Builtin >r G:>r >s G:>s ?: G:?: @ G:@ BITMAP: G:BITMAP: ENUM: G:ENUM: FLAG: G:FLAG: Inf G:Inf Inf? G:Inf? -Builtin NaN G:NaN NaN? G:NaN? SED-CHECK G:SED-CHECK SED: G:SED: SED: G:SED: \ G:\ _dup G:_dup _swap G:_swap -Builtin actor: G:actor: again G:again ahead G:ahead and G:and appname G:appname apropos G:apropos argc G:argc -Builtin args G:args array? G:array? assert G:assert base G:base bi G:bi bits G:bits break G:break break? G:break? -Builtin breakif G:breakif build? G:build? buildver? G:buildver? bye G:bye c# G:c# c/does G:c/does case: G:case: -Builtin catch G:catch chdir G:chdir clip> G:clip> clone G:clone clone-shallow G:clone-shallow cold G:cold -Builtin compile G:compile compile? G:compile? compiling? G:compiling? conflict G:conflict const G:const -Builtin container? G:container? counting-allocations G:counting-allocations cr G:cr curlang G:curlang -Builtin curry G:curry curry: G:curry: decimal G:decimal default: G:default: defer: G:defer: deferred: G:deferred: -Builtin deg>rad G:deg>rad depth G:depth die G:die dip G:dip drop G:drop dstack G:dstack dump G:dump -Builtin dup G:dup dup>r G:dup>r dup? G:dup? e# G:e# enum: G:enum: error? G:error? eval G:eval eval! G:eval! -Builtin eval0 G:eval0 execnull G:execnull expect G:expect extra! G:extra! extra@ G:extra@ false G:false -Builtin fnv G:fnv fourth G:fourth free G:free func: G:func: getc G:getc getcwd G:getcwd getenv G:getenv -Builtin gets G:gets handler G:handler header G:header help G:help hex G:hex i: G:i: i; G:i; isa? G:isa? -Builtin items-used G:items-used jcall G:jcall jclass G:jclass jmethod G:jmethod json! G:json! json-8th> G:json-8th> -Builtin json-nesting G:json-nesting json-pretty G:json-pretty json-throw G:json-throw json> G:json> -Builtin json@ G:json@ k32 G:k32 keep G:keep l: G:l: last G:last lib G:lib libbin G:libbin libc G:libc -Builtin listener@ G:listener@ literal G:literal locals: G:locals: lock G:lock lock-to G:lock-to locked? G:locked? -Builtin log G:log log-syslog G:log-syslog log-task G:log-task log-time G:log-time log-time-local G:log-time-local -Builtin long-days G:long-days long-months G:long-months longjmp G:longjmp lookup G:lookup loop G:loop -Builtin loop- G:loop- map? G:map? mark G:mark mark? G:mark? memfree G:memfree mobile? G:mobile? n# G:n# -Builtin name>os G:name>os name>sem G:name>sem ndrop G:ndrop needs G:needs new G:new next-arg G:next-arg -Builtin nip G:nip noop G:noop not G:not nothrow G:nothrow ns G:ns ns: G:ns: ns>ls G:ns>ls ns>s G:ns>s -Builtin ns? G:ns? null G:null null; G:null; null? G:null? number? G:number? of: G:of: off G:off on G:on -Builtin onexit G:onexit only G:only op! G:op! or G:or os G:os os-names G:os-names os>long-name G:os>long-name -Builtin os>name G:os>name over G:over p: G:p: pack G:pack parse G:parse parse-csv G:parse-csv parsech G:parsech -Builtin parseln G:parseln parsews G:parsews pick G:pick poke G:poke pool-clear G:pool-clear pool-clear-all G:pool-clear-all +Builtin (stat) G:(stat) (with) G:(with) ) G:) +hook G:+hook +ref G:+ref ,# G:,# -- G:-- -----BEGIN G:-----BEGIN +Builtin -Inf G:-Inf -Inf? G:-Inf? -hook G:-hook -ref G:-ref -rot G:-rot . G:. .# G:.# .hook G:.hook +Builtin .needs G:.needs .r G:.r .s G:.s .s-truncate G:.s-truncate .stats G:.stats .ver G:.ver .with G:.with +Builtin 0; G:0; 2dip G:2dip 2drop G:2drop 2dup G:2dup 2nip G:2nip 2over G:2over 2swap G:2swap 2tuck G:2tuck +Builtin 3drop G:3drop 3drop G:3drop 3dup G:3dup 3rev G:3rev 4drop G:4drop 8thdt? G:8thdt? 8thsku G:8thsku +Builtin 8thver? G:8thver? 8thvernum? G:8thvernum? : G:: ; G:; ;; G:;; ;;; G:;;; ;with G:;with >clip G:>clip +Builtin >json G:>json >kind G:>kind >n G:>n >r G:>r >s G:>s ?: G:?: ?@ G:?@ @ G:@ BITMAP: G:BITMAP: +Builtin ENUM: G:ENUM: FLAG: G:FLAG: I G:I Inf G:Inf Inf? G:Inf? J G:J K G:K NaN G:NaN NaN? G:NaN? SED-CHECK G:SED-CHECK +Builtin SED: G:SED: SED: G:SED: X G:X \ G:\ _dup G:_dup _swap G:_swap actor: G:actor: again G:again +Builtin ahead G:ahead and G:and apropos G:apropos argc G:argc args G:args array? G:array? assert G:assert +Builtin base G:base base>n G:base>n bi G:bi bits G:bits break G:break break? G:break? breakif G:breakif +Builtin build? G:build? buildver? G:buildver? bye G:bye c/does G:c/does case: G:case: catch G:catch +Builtin chdir G:chdir clip> G:clip> clone G:clone clone-shallow G:clone-shallow cold G:cold compile G:compile +Builtin compile? G:compile? compiling? G:compiling? conflict G:conflict const G:const container? G:container? +Builtin counting-allocations G:counting-allocations cr G:cr critical: G:critical: critical; G:critical; +Builtin curlang G:curlang curry G:curry curry: G:curry: decimal G:decimal default: G:default: defer: G:defer: +Builtin deferred: G:deferred: deg>rad G:deg>rad depth G:depth die G:die dip G:dip drop G:drop dstack G:dstack +Builtin dump G:dump dup G:dup dup>r G:dup>r dup? G:dup? e# G:e# enum: G:enum: error? G:error? eval G:eval +Builtin eval! G:eval! eval0 G:eval0 expect G:expect extra! G:extra! extra@ G:extra@ false G:false fnv G:fnv +Builtin fourth G:fourth free G:free func: G:func: getc G:getc getcwd G:getcwd getenv G:getenv gets G:gets +Builtin handler G:handler header G:header help G:help hex G:hex i: G:i: i; G:i; isa? G:isa? items-used G:items-used +Builtin jcall G:jcall jclass G:jclass jmethod G:jmethod json! G:json! json-8th> G:json-8th> json-nesting G:json-nesting +Builtin json-pretty G:json-pretty json-throw G:json-throw json> G:json> json@ G:json@ k32 G:k32 keep G:keep +Builtin l: G:l: last G:last lib G:lib libbin G:libbin libc G:libc literal G:literal locals: G:locals: +Builtin lock G:lock lock-to G:lock-to locked? G:locked? log G:log log-syslog G:log-syslog log-task G:log-task +Builtin log-time G:log-time log-time-local G:log-time-local long-days G:long-days long-months G:long-months +Builtin longjmp G:longjmp lookup G:lookup loop G:loop loop- G:loop- map? G:map? mark G:mark mark? G:mark? +Builtin mobile? G:mobile? n# G:n# name>os G:name>os name>sem G:name>sem ndrop G:ndrop needs G:needs +Builtin new G:new next-arg G:next-arg nip G:nip noop G:noop not G:not nothrow G:nothrow ns G:ns ns: G:ns: +Builtin ns>ls G:ns>ls ns>s G:ns>s ns? G:ns? null G:null null; G:null; null? G:null? nullvar G:nullvar +Builtin number? G:number? of: G:of: off G:off on G:on onexit G:onexit only G:only op! G:op! or G:or +Builtin os G:os os-names G:os-names os>long-name G:os>long-name os>name G:os>name over G:over p: G:p: +Builtin pack G:pack parse G:parse parse-csv G:parse-csv parse-date G:parse-date parsech G:parsech parseln G:parseln +Builtin parsews G:parsews pick G:pick poke G:poke pool-clear G:pool-clear pool-clear-all G:pool-clear-all Builtin prior G:prior private G:private process-args G:process-args process-args-fancy G:process-args-fancy Builtin process-args-help G:process-args-help process-args-vars G:process-args-vars prompt G:prompt -Builtin public G:public putc G:putc puts G:puts putslim G:putslim quote G:quote r! G:r! r> G:r> r@ G:r@ -Builtin rad>deg G:rad>deg rand-jit G:rand-jit rand-jsf G:rand-jsf rand-native G:rand-native rand-normal G:rand-normal +Builtin public G:public putc G:putc puts G:puts quote G:quote r! G:r! r> G:r> r@ G:r@ rad>deg G:rad>deg +Builtin rand-jit G:rand-jit rand-jsf G:rand-jsf rand-native G:rand-native rand-normal G:rand-normal Builtin rand-pcg G:rand-pcg rand-pcg-seed G:rand-pcg-seed rand-range G:rand-range rand-select G:rand-select Builtin randbuf-pcg G:randbuf-pcg random G:random rdrop G:rdrop recurse G:recurse recurse-stack G:recurse-stack Builtin ref@ G:ref@ reg! G:reg! reg@ G:reg@ regbin@ G:regbin@ remaining-args G:remaining-args repeat G:repeat Builtin required? G:required? requires G:requires reset G:reset roll G:roll rop! G:rop! rot G:rot rpick G:rpick -Builtin rroll G:rroll rstack G:rstack rswap G:rswap rusage G:rusage s>ns G:s>ns same? G:same? scriptdir G:scriptdir -Builtin scriptfile G:scriptfile sem G:sem sem-post G:sem-post sem-rm G:sem-rm sem-wait G:sem-wait sem-wait? G:sem-wait? -Builtin sem>name G:sem>name semi-throw G:semi-throw set-wipe G:set-wipe setenv G:setenv setjmp G:setjmp -Builtin settings! G:settings! settings![] G:settings![] settings@ G:settings@ settings@? G:settings@? -Builtin settings@[] G:settings@[] sh G:sh sh$ G:sh$ short-days G:short-days short-months G:short-months -Builtin sleep G:sleep sleep-until G:sleep-until slog G:slog space G:space stack-check G:stack-check -Builtin stack-size G:stack-size step G:step sthrow G:sthrow string? G:string? struct: G:struct: swap G:swap -Builtin tab-hook G:tab-hook tell-conflict G:tell-conflict tempdir G:tempdir tempfilename G:tempfilename -Builtin third G:third throw G:throw thrownull G:thrownull times G:times tlog G:tlog tri G:tri true G:true -Builtin tuck G:tuck type-check G:type-check typeassert G:typeassert uid G:uid uname G:uname unlock G:unlock -Builtin unpack G:unpack until G:until until! G:until! while G:while while! G:while! with: G:with: word? G:word? -Builtin words G:words words-like G:words-like words/ G:words/ xchg G:xchg xor G:xor >auth HTTP:>auth -Builtin (curry) I:(curry) notimpl I:notimpl sh I:sh trace-word I:trace-word call JSONRPC:call auth-string OAuth:auth-string -Builtin gen-nonce OAuth:gen-nonce params OAuth:params call SOAP:call ! a:! + a:+ - a:- / a:/ 2each a:2each -Builtin 2map a:2map 2map+ a:2map+ 2map= a:2map= = a:= @ a:@ @? a:@? _@ a:_@ all a:all any a:any bsearch a:bsearch -Builtin centroid a:centroid clear a:clear close a:close diff a:diff dot a:dot each a:each each! a:each! -Builtin each-slice a:each-slice exists? a:exists? filter a:filter generate a:generate group a:group -Builtin indexof a:indexof insert a:insert intersect a:intersect join a:join len a:len map a:map map+ a:map+ -Builtin map= a:map= mean a:mean mean&variance a:mean&variance merge a:merge new a:new op! a:op! open a:open -Builtin pop a:pop push a:push qsort a:qsort randeach a:randeach reduce a:reduce reduce+ a:reduce+ remove a:remove -Builtin rev a:rev shift a:shift shuffle a:shuffle slice a:slice slice+ a:slice+ slide a:slide smear a:smear -Builtin sort a:sort union a:union x a:x x-each a:x-each xchg a:xchg y a:y zip a:zip 8thdir app:8thdir -Builtin asset app:asset atrun app:atrun atrun app:atrun atrun app:atrun basedir app:basedir current app:current -Builtin datadir app:datadir exename app:exename lowmem app:lowmem main app:main name app:name oncrash app:oncrash +Builtin rreset G:rreset rroll G:rroll rstack G:rstack rswap G:rswap rusage G:rusage s>ns G:s>ns same? G:same? +Builtin scriptdir G:scriptdir scriptfile G:scriptfile sem G:sem sem-post G:sem-post sem-rm G:sem-rm +Builtin sem-wait G:sem-wait sem-wait? G:sem-wait? sem>name G:sem>name semi-throw G:semi-throw set-wipe G:set-wipe +Builtin setenv G:setenv setjmp G:setjmp settings! G:settings! settings![] G:settings![] settings@ G:settings@ +Builtin settings@? G:settings@? settings@[] G:settings@[] sh G:sh sh$ G:sh$ short-days G:short-days +Builtin short-months G:short-months sleep G:sleep sleep-msec G:sleep-msec sleep-until G:sleep-until +Builtin slog G:slog space G:space stack-check G:stack-check stack-size G:stack-size step G:step sthrow G:sthrow +Builtin string? G:string? struct: G:struct: swap G:swap tab-hook G:tab-hook tell-conflict G:tell-conflict +Builtin tempdir G:tempdir tempfilename G:tempfilename third G:third throw G:throw thrownull G:thrownull +Builtin times G:times tlog G:tlog tri G:tri true G:true tuck G:tuck type-check G:type-check typeassert G:typeassert +Builtin uid G:uid uname G:uname unlock G:unlock unpack G:unpack until G:until until! G:until! while G:while +Builtin while! G:while! with: G:with: word? G:word? words G:words words-like G:words-like words/ G:words/ +Builtin xchg G:xchg xor G:xor >auth HTTP:>auth (curry) I:(curry) notimpl I:notimpl sh I:sh trace-word I:trace-word +Builtin call JSONRPC:call auth-string OAuth:auth-string gen-nonce OAuth:gen-nonce params OAuth:params +Builtin call SOAP:call ! a:! + a:+ - a:- / a:/ 2each a:2each 2map a:2map 2map+ a:2map+ 2map= a:2map= +Builtin <> a:<> = a:= @ a:@ @? a:@? _@ a:_@ all a:all any a:any bsearch a:bsearch centroid a:centroid +Builtin clear a:clear close a:close cmp a:cmp diff a:diff dot a:dot each a:each each! a:each! each-par a:each-par +Builtin each-slice a:each-slice exists? a:exists? filter a:filter filter-par a:filter-par generate a:generate +Builtin group a:group indexof a:indexof insert a:insert intersect a:intersect join a:join len a:len +Builtin map a:map map+ a:map+ map-par a:map-par map= a:map= maxlen a:maxlen mean a:mean mean&variance a:mean&variance +Builtin merge a:merge new a:new op! a:op! open a:open pigeon a:pigeon pivot a:pivot pop a:pop push a:push +Builtin qsort a:qsort randeach a:randeach reduce a:reduce reduce+ a:reduce+ remove a:remove rev a:rev +Builtin rindexof a:rindexof shift a:shift shuffle a:shuffle slice a:slice slice+ a:slice+ slide a:slide +Builtin smear a:smear sort a:sort split a:split squash a:squash switch a:switch union a:union uniq a:uniq +Builtin unzip a:unzip x a:x x-each a:x-each xchg a:xchg y a:y zip a:zip 8thdir app:8thdir asset app:asset +Builtin atrun app:atrun atrun app:atrun atrun app:atrun basedir app:basedir basename app:basename config-file-name app:config-file-name +Builtin current app:current datadir app:datadir display-moved app:display-moved exename app:exename +Builtin localechanged app:localechanged lowmem app:lowmem main app:main name app:name oncrash app:oncrash Builtin opts! app:opts! opts@ app:opts@ orientation app:orientation orientation! app:orientation! pid app:pid -Builtin post-main app:post-main pre-main app:pre-main raise app:raise request-perm app:request-perm +Builtin post-main app:post-main pre-main app:pre-main privdir app:privdir raise app:raise read-config app:read-config +Builtin read-config-map app:read-config-map read-config-var app:read-config-var request-perm app:request-perm Builtin restart app:restart resumed app:resumed signal app:signal standalone app:standalone subdir app:subdir -Builtin suspended app:suspended sysquit app:sysquit terminated app:terminated trap app:trap (here) asm:(here) -Builtin >n asm:>n avail asm:avail c, asm:c, here! asm:here! n> asm:n> used asm:used w, asm:w, ! b:! -Builtin + b:+ / b:/ 1+ b:1+ 1- b:1- = b:= >base16 b:>base16 >base32 b:>base32 >base64 b:>base64 >base85 b:>base85 -Builtin >hex b:>hex >mpack b:>mpack @ b:@ append b:append base16> b:base16> base32> b:base32> base64> b:base64> -Builtin base85> b:base85> bit! b:bit! bit@ b:bit@ clear b:clear compress b:compress conv b:conv each b:each -Builtin each! b:each! each-slice b:each-slice expand b:expand fill b:fill getb b:getb hex> b:hex> len b:len -Builtin mem> b:mem> move b:move mpack-compat b:mpack-compat mpack-date b:mpack-date mpack-ignore b:mpack-ignore -Builtin mpack> b:mpack> n! b:n! n+ b:n+ n@ b:n@ new b:new op b:op pad b:pad rev b:rev search b:search -Builtin shmem b:shmem slice b:slice splice b:splice ungetb b:ungetb unpad b:unpad writable b:writable -Builtin xor b:xor +block bc:+block .blocks bc:.blocks add-block bc:add-block block-hash bc:block-hash -Builtin block@ bc:block@ first-block bc:first-block hash bc:hash last-block bc:last-block load bc:load -Builtin new bc:new save bc:save set-sql bc:set-sql validate bc:validate validate-block bc:validate-block -Builtin add bloom:add filter bloom:filter in? bloom:in? accept bt:accept ch! bt:ch! ch@ bt:ch@ connect bt:connect -Builtin disconnect bt:disconnect init bt:init leconnect bt:leconnect lescan bt:lescan listen bt:listen -Builtin on? bt:on? read bt:read scan bt:scan service? bt:service? services? bt:services? write bt:write -Builtin * c:* * c:* + c:+ + c:+ = c:= = c:= >ri c:>ri >ri c:>ri abs c:abs abs c:abs arg c:arg arg c:arg -Builtin conj c:conj conj c:conj im c:im n> c:n> new c:new new c:new re c:re >redir con:>redir accept con:accept -Builtin accept-pwd con:accept-pwd ansi? con:ansi? black con:black blue con:blue clreol con:clreol cls con:cls -Builtin cyan con:cyan down con:down free con:free getxy con:getxy gotoxy con:gotoxy green con:green -Builtin key con:key key? con:key? left con:left load-history con:load-history magenta con:magenta onBlack con:onBlack -Builtin onBlue con:onBlue onCyan con:onCyan onGreen con:onGreen onMagenta con:onMagenta onRed con:onRed -Builtin onWhite con:onWhite onYellow con:onYellow print con:print red con:red redir> con:redir> redir? con:redir? -Builtin right con:right save-history con:save-history size? con:size? up con:up white con:white yellow con:yellow -Builtin >aes128gcm cr:>aes128gcm >aes256gcm cr:>aes256gcm >cp cr:>cp >cpe cr:>cpe >decrypt cr:>decrypt -Builtin >edbox cr:>edbox >encrypt cr:>encrypt >nbuf cr:>nbuf >rsabox cr:>rsabox >uuid cr:>uuid CBC cr:CBC -Builtin CFB cr:CFB CTR cr:CTR ECB cr:ECB GCM cr:GCM OFB cr:OFB aad? cr:aad? aes128box-sig cr:aes128box-sig -Builtin aes128gcm> cr:aes128gcm> aes256box-sig cr:aes256box-sig aes256gcm> cr:aes256gcm> aesgcm cr:aesgcm -Builtin blakehash cr:blakehash chacha20box-sig cr:chacha20box-sig chachapoly cr:chachapoly cipher! cr:cipher! -Builtin cipher@ cr:cipher@ cp> cr:cp> cpe> cr:cpe> decrypt cr:decrypt decrypt+ cr:decrypt+ decrypt> cr:decrypt> -Builtin dh-genkey cr:dh-genkey dh-secret cr:dh-secret dh-sign cr:dh-sign dh-verify cr:dh-verify ebox-sig cr:ebox-sig -Builtin ecc-genkey cr:ecc-genkey ecc-secret cr:ecc-secret ecc-sign cr:ecc-sign ecc-verify cr:ecc-verify -Builtin edbox-sig cr:edbox-sig edbox> cr:edbox> encrypt cr:encrypt encrypt+ cr:encrypt+ encrypt> cr:encrypt> -Builtin ensurekey cr:ensurekey gcm-tag-size cr:gcm-tag-size genkey cr:genkey hash cr:hash hash! cr:hash! -Builtin hash+ cr:hash+ hash>b cr:hash>b hash>s cr:hash>s hash@ cr:hash@ hmac cr:hmac hotp cr:hotp iv? cr:iv? -Builtin mode cr:mode mode@ cr:mode@ rand cr:rand randbuf cr:randbuf randkey cr:randkey restore cr:restore +Builtin suspended app:suspended sysquit app:sysquit terminated app:terminated timeout app:timeout trap app:trap +Builtin dawn astro:dawn do-dawn astro:do-dawn do-dusk astro:do-dusk do-rise astro:do-rise dusk astro:dusk +Builtin latitude astro:latitude location! astro:location! longitude astro:longitude sunrise astro:sunrise +Builtin genkeys auth:genkeys secret auth:secret session-id auth:session-id session-key auth:session-key +Builtin validate auth:validate ! b:! + b:+ / b:/ 1+ b:1+ 1- b:1- <> b:<> = b:= >base16 b:>base16 >base32 b:>base32 +Builtin >base64 b:>base64 >base85 b:>base85 >hex b:>hex >mpack b:>mpack @ b:@ append b:append base16> b:base16> +Builtin base32> b:base32> base64> b:base64> base85> b:base85> bit! b:bit! bit@ b:bit@ clear b:clear +Builtin compress b:compress conv b:conv each b:each each! b:each! each-slice b:each-slice expand b:expand +Builtin fill b:fill getb b:getb hex> b:hex> len b:len mem> b:mem> move b:move mpack-compat b:mpack-compat +Builtin mpack-date b:mpack-date mpack-ignore b:mpack-ignore mpack> b:mpack> n! b:n! n+ b:n+ n@ b:n@ +Builtin new b:new op b:op op! b:op! pad b:pad rev b:rev search b:search shmem b:shmem slice b:slice +Builtin splice b:splice ungetb b:ungetb unpad b:unpad writable b:writable xor b:xor +block bc:+block +Builtin .blocks bc:.blocks add-block bc:add-block block-hash bc:block-hash block@ bc:block@ first-block bc:first-block +Builtin hash bc:hash last-block bc:last-block load bc:load new bc:new save bc:save set-sql bc:set-sql +Builtin validate bc:validate validate-block bc:validate-block add bloom:add filter bloom:filter in? bloom:in? +Builtin parse bson:parse accept bt:accept ch! bt:ch! ch@ bt:ch@ connect bt:connect disconnect bt:disconnect +Builtin init bt:init leconnect bt:leconnect lescan bt:lescan listen bt:listen on? bt:on? read bt:read +Builtin scan bt:scan service? bt:service? services? bt:services? write bt:write * c:* * c:* + c:+ + c:+ +Builtin = c:= = c:= >ri c:>ri >ri c:>ri abs c:abs abs c:abs arg c:arg arg c:arg conj c:conj conj c:conj +Builtin im c:im n> c:n> new c:new new c:new re c:re (.hebrew) cal:(.hebrew) (.islamic) cal:(.islamic) +Builtin .hebrew cal:.hebrew .islamic cal:.islamic >hebepoch cal:>hebepoch >jdn cal:>jdn Adar cal:Adar +Builtin Adar2 cal:Adar2 Adar2 cal:Adar2 Av cal:Av Elul cal:Elul Heshvan cal:Heshvan Iyar cal:Iyar Kislev cal:Kislev +Builtin Nissan cal:Nissan Shevat cal:Shevat Sivan cal:Sivan Tammuz cal:Tammuz Tevet cal:Tevet Tishrei cal:Tishrei +Builtin days-in-hebrew-year cal:days-in-hebrew-year displaying-hebrew cal:displaying-hebrew fixed>hebrew cal:fixed>hebrew +Builtin fixed>islamic cal:fixed>islamic gershayim cal:gershayim hanukkah cal:hanukkah hebrew-epoch cal:hebrew-epoch +Builtin hebrew>fixed cal:hebrew>fixed hebrewtoday cal:hebrewtoday hmonth-name cal:hmonth-name islamic.epoch cal:islamic.epoch +Builtin islamic>fixed cal:islamic>fixed islamictoday cal:islamictoday jdn> cal:jdn> last-day-of-hebrew-month cal:last-day-of-hebrew-month +Builtin number>hebrew cal:number>hebrew omer cal:omer pesach cal:pesach purim cal:purim rosh-chodesh? cal:rosh-chodesh? +Builtin rosh-hashanah cal:rosh-hashanah shavuot cal:shavuot taanit-esther cal:taanit-esther tisha-beav cal:tisha-beav +Builtin yom-haatsmaut cal:yom-haatsmaut yom-kippur cal:yom-kippur >redir con:>redir accept con:accept +Builtin accept-nl con:accept-nl accept-pwd con:accept-pwd alert con:alert ansi? con:ansi? black con:black +Builtin blue con:blue clreol con:clreol cls con:cls ctrld-empty con:ctrld-empty cyan con:cyan down con:down +Builtin file>history con:file>history free con:free getxy con:getxy gotoxy con:gotoxy green con:green +Builtin history-handler con:history-handler history>file con:history>file key con:key key? con:key? +Builtin left con:left load-history con:load-history magenta con:magenta max-history con:max-history +Builtin onBlack con:onBlack onBlue con:onBlue onCyan con:onCyan onGreen con:onGreen onMagenta con:onMagenta +Builtin onRed con:onRed onWhite con:onWhite onYellow con:onYellow print con:print red con:red redir> con:redir> +Builtin redir? con:redir? right con:right save-history con:save-history size? con:size? up con:up white con:white +Builtin yellow con:yellow >aes128gcm cr:>aes128gcm >aes256gcm cr:>aes256gcm >cp cr:>cp >cpe cr:>cpe +Builtin >decrypt cr:>decrypt >edbox cr:>edbox >encrypt cr:>encrypt >nbuf cr:>nbuf >rsabox cr:>rsabox +Builtin >uuid cr:>uuid aad? cr:aad? aes128box-sig cr:aes128box-sig aes128gcm> cr:aes128gcm> aes256box-sig cr:aes256box-sig +Builtin aes256gcm> cr:aes256gcm> aesgcm cr:aesgcm blakehash cr:blakehash chacha20box-sig cr:chacha20box-sig +Builtin chachapoly cr:chachapoly cipher! cr:cipher! cipher@ cr:cipher@ ciphers cr:ciphers cp> cr:cp> +Builtin cpe> cr:cpe> decrypt cr:decrypt decrypt+ cr:decrypt+ decrypt> cr:decrypt> ebox-sig cr:ebox-sig +Builtin ecc-curves cr:ecc-curves ecc-genkey cr:ecc-genkey ecc-secret cr:ecc-secret ecc-sign cr:ecc-sign +Builtin ecc-verify cr:ecc-verify ed25519 cr:ed25519 ed25519-secret cr:ed25519-secret ed25519-sign cr:ed25519-sign +Builtin ed25519-verify cr:ed25519-verify edbox-sig cr:edbox-sig edbox> cr:edbox> encrypt cr:encrypt +Builtin encrypt+ cr:encrypt+ encrypt> cr:encrypt> ensurekey cr:ensurekey genkey cr:genkey hash cr:hash +Builtin hash! cr:hash! hash+ cr:hash+ hash>b cr:hash>b hash>s cr:hash>s hash@ cr:hash@ hashes cr:hashes +Builtin hmac cr:hmac hotp cr:hotp iv? cr:iv? pem-read cr:pem-read pem-write cr:pem-write pwd-valid? cr:pwd-valid? +Builtin pwd/ cr:pwd/ pwd>hash cr:pwd>hash rand cr:rand randbuf cr:randbuf randkey cr:randkey restore cr:restore Builtin root-certs cr:root-certs rsa_decrypt cr:rsa_decrypt rsa_encrypt cr:rsa_encrypt rsa_sign cr:rsa_sign Builtin rsa_verify cr:rsa_verify rsabox-sig cr:rsabox-sig rsabox> cr:rsabox> rsagenkey cr:rsagenkey Builtin save cr:save sbox-sig cr:sbox-sig sha1-hmac cr:sha1-hmac shard cr:shard tag? cr:tag? totp cr:totp Builtin totp-epoch cr:totp-epoch totp-time-step cr:totp-time-step unshard cr:unshard uuid cr:uuid uuid> cr:uuid> -Builtin validate-pgp-sig cr:validate-pgp-sig (.hebrew) d:(.hebrew) (.islamic) d:(.islamic) + d:+ +day d:+day -Builtin +hour d:+hour +min d:+min +msec d:+msec - d:- .hebrew d:.hebrew .islamic d:.islamic .time d:.time -Builtin / d:/ = d:= >fixed d:>fixed >hebepoch d:>hebepoch >jdn d:>jdn >msec d:>msec >unix d:>unix >ymd d:>ymd -Builtin ?= d:?= Adar d:Adar Adar2 d:Adar2 Adar2 d:Adar2 Av d:Av Elul d:Elul Fri d:Fri Heshvan d:Heshvan -Builtin Iyar d:Iyar Kislev d:Kislev Mon d:Mon Nissan d:Nissan Sat d:Sat Shevat d:Shevat Sivan d:Sivan -Builtin Sun d:Sun Tammuz d:Tammuz Tevet d:Tevet Thu d:Thu Tishrei d:Tishrei Tue d:Tue Wed d:Wed adjust-dst d:adjust-dst -Builtin approx! d:approx! approx? d:approx? approximates! d:approximates! between d:between d. d:d. -Builtin dawn d:dawn days-in-hebrew-year d:days-in-hebrew-year displaying-hebrew d:displaying-hebrew -Builtin do-dawn d:do-dawn do-dusk d:do-dusk do-rise d:do-rise doy d:doy dst? d:dst? dstquery d:dstquery -Builtin dstzones? d:dstzones? dusk d:dusk elapsed-timer d:elapsed-timer elapsed-timer-seconds d:elapsed-timer-seconds -Builtin first-dow d:first-dow fixed> d:fixed> fixed>dow d:fixed>dow fixed>hebrew d:fixed>hebrew fixed>islamic d:fixed>islamic -Builtin format d:format hanukkah d:hanukkah hebrew-epoch d:hebrew-epoch hebrew>fixed d:hebrew>fixed -Builtin hebrewtoday d:hebrewtoday hmonth-name d:hmonth-name islamic.epoch d:islamic.epoch islamic>fixed d:islamic>fixed -Builtin islamictoday d:islamictoday jdn> d:jdn> join d:join last-day-of-hebrew-month d:last-day-of-hebrew-month -Builtin last-dow d:last-dow last-month d:last-month last-week d:last-week last-year d:last-year latitude d:latitude -Builtin longitude d:longitude longitude d:longitude msec d:msec msec> d:msec> new d:new next-dow d:next-dow -Builtin next-month d:next-month next-week d:next-week next-year d:next-year number>hebrew d:number>hebrew -Builtin omer d:omer parse d:parse parse-approx d:parse-approx parse-range d:parse-range pesach d:pesach -Builtin prev-dow d:prev-dow purim d:purim rosh-chodesh? d:rosh-chodesh? rosh-hashanah d:rosh-hashanah -Builtin shavuot d:shavuot start-timer d:start-timer sunrise d:sunrise taanit-esther d:taanit-esther -Builtin ticks d:ticks ticks/sec d:ticks/sec timer d:timer timer-ctrl d:timer-ctrl tisha-beav d:tisha-beav -Builtin tzadjust d:tzadjust unix> d:unix> unknown d:unknown unknown? d:unknown? updatetz d:updatetz -Builtin year@ d:year@ ymd d:ymd ymd> d:ymd> yom-haatsmaut d:yom-haatsmaut yom-kippur d:yom-kippur add-func db:add-func -Builtin aes! db:aes! begin db:begin bind db:bind bind-exec db:bind-exec bind-exec[] db:bind-exec[] -Builtin close db:close col db:col col[] db:col[] col{} db:col{} commit db:commit each db:each exec db:exec -Builtin exec-cb db:exec-cb exec-name db:exec-name get db:get get-sub db:get-sub key db:key kind? db:kind? -Builtin last-rowid db:last-rowid mysql? db:mysql? odbc? db:odbc? open db:open open? db:open? prep-name db:prep-name -Builtin prepare db:prepare query db:query query-all db:query-all rekey db:rekey rollback db:rollback -Builtin set db:set set-sub db:set-sub sql@ db:sql@ bp dbg:bp except-task@ dbg:except-task@ go dbg:go -Builtin line-info dbg:line-info prompt dbg:prompt stop dbg:stop trace dbg:trace trace-enter dbg:trace-enter -Builtin trace-leave dbg:trace-leave / f:/ abspath f:abspath absrel f:absrel append f:append associate f:associate -Builtin atime f:atime canwrite? f:canwrite? chmod f:chmod close f:close copy f:copy copydir f:copydir +Builtin validate-pgp-sig cr:validate-pgp-sig validate-pwd cr:validate-pwd + d:+ +day d:+day +hour d:+hour +Builtin +min d:+min +msec d:+msec - d:- .time d:.time / d:/ = d:= >fixed d:>fixed >hmds d:>hmds >hmds: d:>hmds: +Builtin >msec d:>msec >unix d:>unix >ymd d:>ymd ?= d:?= Fri d:Fri Mon d:Mon Sat d:Sat Sun d:Sun Thu d:Thu +Builtin Tue d:Tue Wed d:Wed adjust-dst d:adjust-dst alarm d:alarm approx! d:approx! approx? d:approx? +Builtin approximates! d:approximates! between d:between cmp d:cmp d. d:d. default-now d:default-now +Builtin doy d:doy dst-ofs d:dst-ofs dst? d:dst? dstinfo d:dstinfo dstquery d:dstquery dstzones? d:dstzones? +Builtin elapsed-timer d:elapsed-timer elapsed-timer-hmds d:elapsed-timer-hmds elapsed-timer-msec d:elapsed-timer-msec +Builtin elapsed-timer-seconds d:elapsed-timer-seconds first-dow d:first-dow fixed> d:fixed> fixed>dow d:fixed>dow +Builtin format d:format join d:join last-dow d:last-dow last-month d:last-month last-week d:last-week +Builtin last-year d:last-year msec d:msec msec> d:msec> new d:new next-dow d:next-dow next-month d:next-month +Builtin next-week d:next-week next-year d:next-year parse d:parse parse-approx d:parse-approx parse-range d:parse-range +Builtin prev-dow d:prev-dow rfc5322 d:rfc5322 start-timer d:start-timer ticks d:ticks ticks/sec d:ticks/sec +Builtin timer d:timer timer-ctrl d:timer-ctrl tzadjust d:tzadjust unix> d:unix> unknown d:unknown unknown? d:unknown? +Builtin updatetz d:updatetz year@ d:year@ ymd d:ymd ymd> d:ymd> add-func db:add-func aes! db:aes! again? db:again? +Builtin begin db:begin bind db:bind bind-exec db:bind-exec bind-exec{} db:bind-exec{} close db:close +Builtin col db:col col{} db:col{} commit db:commit db db:db dbpush db:dbpush disuse db:disuse each db:each +Builtin err-handler db:err-handler exec db:exec exec-cb db:exec-cb exec-name db:exec-name exec{} db:exec{} +Builtin get db:get get-sub db:get-sub key db:key kind? db:kind? last-rowid db:last-rowid mysql? db:mysql? +Builtin odbc? db:odbc? open db:open open? db:open? prep-name db:prep-name prepare db:prepare query db:query +Builtin query-all db:query-all rekey db:rekey rollback db:rollback set db:set set-sub db:set-sub sql@ db:sql@ +Builtin sql[] db:sql[] sql[np] db:sql[np] sql{np} db:sql{np} sql{} db:sql{} use db:use zip db:zip bp dbg:bp +Builtin bt dbg:bt except-task@ dbg:except-task@ go dbg:go line-info dbg:line-info prompt dbg:prompt +Builtin stop dbg:stop trace dbg:trace trace-enter dbg:trace-enter trace-leave dbg:trace-leave / f:/ +Builtin >posix f:>posix abspath f:abspath absrel f:absrel append f:append associate f:associate atime f:atime +Builtin autodel f:autodel canwrite? f:canwrite? chmod f:chmod close f:close copy f:copy copydir f:copydir Builtin create f:create ctime f:ctime dir? f:dir? dname f:dname eachbuf f:eachbuf eachline f:eachline -Builtin enssep f:enssep eof? f:eof? exists? f:exists? flush f:flush fname f:fname getb f:getb getc f:getc -Builtin getline f:getline getmod f:getmod glob f:glob glob-nocase f:glob-nocase homedir f:homedir homedir! f:homedir! -Builtin include f:include ioctl f:ioctl join f:join launch f:launch link f:link link> f:link> link? f:link? -Builtin mkdir f:mkdir mmap f:mmap mmap-range f:mmap-range mmap-range? f:mmap-range? mtime f:mtime mv f:mv -Builtin name@ f:name@ open f:open open-ro f:open-ro popen f:popen print f:print read f:read read? f:read? -Builtin relpath f:relpath rglob f:rglob rm f:rm rmdir f:rmdir seek f:seek sep f:sep size f:size slurp f:slurp -Builtin sparse? f:sparse? spit f:spit stderr f:stderr stdin f:stdin stdout f:stdout tell f:tell times f:times -Builtin tmpspit f:tmpspit trash f:trash truncate f:truncate ungetb f:ungetb ungetc f:ungetc unzip f:unzip -Builtin unzip-entry f:unzip-entry watch f:watch write f:write writen f:writen zip+ f:zip+ zip@ f:zip@ -Builtin zipentry f:zipentry zipnew f:zipnew zipopen f:zipopen zipsave f:zipsave atlas! font:atlas! -Builtin atlas@ font:atlas@ default-size font:default-size info font:info ls font:ls measure font:measure -Builtin new font:new oversample font:oversample pixels font:pixels pixels? font:pixels? +edge gr:+edge -Builtin +edge+w gr:+edge+w +node gr:+node connect gr:connect edges gr:edges edges! gr:edges! m! gr:m! -Builtin m@ gr:m@ neighbors gr:neighbors new gr:new node-edges gr:node-edges nodes gr:nodes traverse gr:traverse -Builtin weight! gr:weight! + h:+ clear h:clear cmp! h:cmp! len h:len max! h:max! new h:new peek h:peek -Builtin pop h:pop push h:push unique h:unique arm? hw:arm? camera hw:camera camera-img hw:camera-img -Builtin camera-limits hw:camera-limits camera? hw:camera? cpu? hw:cpu? device? hw:device? displays? hw:displays? -Builtin displaysize? hw:displaysize? finger-match hw:finger-match finger-support hw:finger-support -Builtin gpio hw:gpio gpio! hw:gpio! gpio-mmap hw:gpio-mmap gpio@ hw:gpio@ i2c hw:i2c i2c! hw:i2c! i2c!reg hw:i2c!reg -Builtin i2c@ hw:i2c@ i2c@reg hw:i2c@reg isround? hw:isround? iswatch? hw:iswatch? mac? hw:mac? mem? hw:mem? -Builtin model? hw:model? poll hw:poll sensor hw:sensor start hw:start stop hw:stop uid? hw:uid? fetch-full imap:fetch-full -Builtin fetch-uid-mail imap:fetch-uid-mail login imap:login logout imap:logout new imap:new search imap:search -Builtin select-inbox imap:select-inbox >file img:>file >fmt img:>fmt copy img:copy crop img:crop data img:data -Builtin desat img:desat fill img:fill fillrect img:fillrect filter img:filter flip img:flip from-svg img:from-svg -Builtin new img:new pix! img:pix! pix@ img:pix@ qr-gen img:qr-gen qr-parse img:qr-parse rotate img:rotate -Builtin scale img:scale scroll img:scroll size img:size countries iso:countries find loc:find sort loc:sort -Builtin ! m:! !? m:!? + m:+ +? m:+? - m:- >arr m:>arr @ m:@ @? m:@? _! m:_! _@ m:_@ arr> m:arr> bitmap m:bitmap -Builtin clear m:clear data m:data each m:each exists? m:exists? filter m:filter iter m:iter iter-all m:iter-all -Builtin keys m:keys len m:len map m:map merge m:merge new m:new op! m:op! open m:open slice m:slice -Builtin vals m:vals xchg m:xchg zip m:zip ! mat:! * mat:* + mat:+ = mat:= @ mat:@ affine mat:affine -Builtin col mat:col data mat:data det mat:det dim? mat:dim? get-n mat:get-n ident mat:ident inv mat:inv -Builtin m. mat:m. minor mat:minor n* mat:n* new mat:new new-minor mat:new-minor rotate mat:rotate row mat:row -Builtin same-size? mat:same-size? scale mat:scale shear mat:shear trans mat:trans translate mat:translate -Builtin xform mat:xform 2console md:2console 2html md:2html 2nk md:2nk bounds meta:bounds color meta:color -Builtin console meta:console end meta:end ffi meta:ffi ! n:! * n:* */ n:*/ + n:+ +! n:+! - n:- / n:/ -Builtin /mod n:/mod 1+ n:1+ 1- n:1- < n:< = n:= > n:> BIGE n:BIGE BIGPI n:BIGPI E n:E PI n:PI ^ n:^ -Builtin _mod n:_mod abs n:abs acos n:acos acos n:acos asin n:asin asin n:asin atan n:atan atan n:atan -Builtin atan2 n:atan2 band n:band between n:between bfloat n:bfloat bic n:bic bint n:bint binv n:binv -Builtin bnot n:bnot bor n:bor bxor n:bxor cast n:cast ceil n:ceil clamp n:clamp cmp n:cmp comb n:comb -Builtin cos n:cos cosd n:cosd emod n:emod exp n:exp expm1 n:expm1 expmod n:expmod float n:float floor n:floor -Builtin fmod n:fmod frac n:frac gcd n:gcd int n:int invmod n:invmod kind? n:kind? lcm n:lcm ln n:ln -Builtin ln1p n:ln1p max n:max median n:median min n:min mod n:mod neg n:neg odd? n:odd? perm n:perm -Builtin prime? n:prime? quantize n:quantize quantize! n:quantize! r+ n:r+ range n:range rot32l n:rot32l -Builtin rot32r n:rot32r round n:round round2 n:round2 rounding n:rounding running-variance n:running-variance -Builtin running-variance-finalize n:running-variance-finalize sgn n:sgn shl n:shl shr n:shr sin n:sin -Builtin sind n:sind sqr n:sqr sqrt n:sqrt tan n:tan tand n:tand trunc n:trunc ~= n:~= ! net:! !? net:!? -Builtin - net:- >url net:>url @ net:@ @? net:@? DGRAM net:DGRAM INET4 net:INET4 INET6 net:INET6 PROTO_TCP net:PROTO_TCP -Builtin PROTO_UDP net:PROTO_UDP STREAM net:STREAM accept net:accept addrinfo>o net:addrinfo>o again? net:again? -Builtin alloc-and-read net:alloc-and-read alloc-buf net:alloc-buf bind net:bind close net:close closed? net:closed? -Builtin connect net:connect debug? net:debug? delete net:delete get net:get getaddrinfo net:getaddrinfo -Builtin getpeername net:getpeername head net:head ifaces? net:ifaces? listen net:listen map>url net:map>url -Builtin net-socket net:net-socket opts net:opts port-is-ssl? net:port-is-ssl? post net:post proxy! net:proxy! -Builtin put net:put read net:read read-all net:read-all recvfrom net:recvfrom s>url net:s>url sendto net:sendto -Builtin server net:server setsockopt net:setsockopt socket net:socket tlshello net:tlshello url> net:url> -Builtin user-agent net:user-agent wait net:wait write net:write (begin) nk:(begin) (chart-begin) nk:(chart-begin) -Builtin (chart-begin-colored) nk:(chart-begin-colored) (chart-end) nk:(chart-end) (end) nk:(end) (group-begin) nk:(group-begin) -Builtin (group-end) nk:(group-end) (property) nk:(property) >img nk:>img addfont nk:addfont anti-alias nk:anti-alias -Builtin any-clicked? nk:any-clicked? bounds nk:bounds bounds! nk:bounds! button nk:button button-color nk:button-color -Builtin button-label nk:button-label button-set-behavior nk:button-set-behavior button-symbol nk:button-symbol -Builtin button-symbol-label nk:button-symbol-label chart-add-slot nk:chart-add-slot chart-add-slot-colored nk:chart-add-slot-colored -Builtin chart-push nk:chart-push chart-push-slot nk:chart-push-slot checkbox nk:checkbox clicked? nk:clicked? -Builtin close-this! nk:close-this! close-this? nk:close-this? close? nk:close? color-picker nk:color-picker -Builtin combo nk:combo combo-begin-color nk:combo-begin-color combo-begin-label nk:combo-begin-label +Builtin enssep f:enssep eof? f:eof? exec f:exec exists? f:exists? flush f:flush fname f:fname getb f:getb +Builtin getc f:getc getline f:getline getmod f:getmod glob f:glob glob-links f:glob-links glob-nocase f:glob-nocase +Builtin gunz f:gunz homedir f:homedir homedir! f:homedir! include f:include ioctl f:ioctl join f:join +Builtin launch f:launch link f:link link> f:link> link? f:link? lock f:lock mkdir f:mkdir mmap f:mmap +Builtin mmap-range f:mmap-range mmap-range? f:mmap-range? mtime f:mtime mv f:mv name@ f:name@ open f:open +Builtin open! f:open! open-ro f:open-ro popen f:popen popen3 f:popen3 print f:print read f:read read-buf f:read-buf +Builtin read? f:read? relpath f:relpath rglob f:rglob rm f:rm rmdir f:rmdir seek f:seek sep f:sep size f:size +Builtin slurp f:slurp sparse? f:sparse? spit f:spit stderr f:stderr stdin f:stdin stdout f:stdout tell f:tell +Builtin tempfile f:tempfile times f:times tmpspit f:tmpspit trash f:trash truncate f:truncate ungetb f:ungetb +Builtin ungetc f:ungetc unzip f:unzip unzip-entry f:unzip-entry watch f:watch write f:write writen f:writen +Builtin zip+ f:zip+ zip@ f:zip@ zipentry f:zipentry zipnew f:zipnew zipopen f:zipopen zipsave f:zipsave +Builtin atlas! font:atlas! atlas@ font:atlas@ default-size font:default-size default-size@ font:default-size@ +Builtin info font:info ls font:ls measure font:measure new font:new oversample font:oversample pixels font:pixels +Builtin pixels? font:pixels? system font:system system font:system distance geo:distance km/deg-lat geo:km/deg-lat +Builtin km/deg-lon geo:km/deg-lon nearest geo:nearest +edge gr:+edge +edge+w gr:+edge+w +node gr:+node +Builtin connect gr:connect edges gr:edges edges! gr:edges! m! gr:m! m@ gr:m@ neighbors gr:neighbors +Builtin new gr:new node-edges gr:node-edges nodes gr:nodes traverse gr:traverse weight! gr:weight! +Builtin + h:+ clear h:clear cmp! h:cmp! len h:len max! h:max! new h:new peek h:peek pop h:pop push h:push +Builtin unique h:unique parse html:parse arm? hw:arm? camera hw:camera camera-img hw:camera-img camera-limits hw:camera-limits +Builtin camera? hw:camera? cpu? hw:cpu? device? hw:device? displays? hw:displays? displaysize? hw:displaysize? +Builtin finger-match hw:finger-match finger-support hw:finger-support gpio hw:gpio gpio! hw:gpio! gpio-mmap hw:gpio-mmap +Builtin gpio@ hw:gpio@ i2c hw:i2c i2c! hw:i2c! i2c!reg hw:i2c!reg i2c@ hw:i2c@ i2c@reg hw:i2c@reg isround? hw:isround? +Builtin iswatch? hw:iswatch? mac? hw:mac? mem? hw:mem? model? hw:model? poll hw:poll sensor hw:sensor +Builtin start hw:start stop hw:stop uid? hw:uid? fetch-full imap:fetch-full fetch-uid-mail imap:fetch-uid-mail +Builtin login imap:login logout imap:logout new imap:new search imap:search select-inbox imap:select-inbox +Builtin >file img:>file >fmt img:>fmt copy img:copy crop img:crop data img:data desat img:desat draw img:draw +Builtin draw-sub img:draw-sub fill img:fill fillrect img:fillrect filter img:filter flip img:flip from-svg img:from-svg +Builtin line img:line new img:new pikchr img:pikchr pix! img:pix! pix@ img:pix@ qr-gen img:qr-gen qr-parse img:qr-parse +Builtin rect img:rect rotate img:rotate scale img:scale scroll img:scroll size img:size countries iso:countries +Builtin languages iso:languages utils/help library:utils/help find loc:find sort loc:sort ! m:! !? m:!? +Builtin + m:+ +? m:+? - m:- <> m:<> = m:= >arr m:>arr @ m:@ @? m:@? _! m:_! _@ m:_@ alias m:alias arr> m:arr> +Builtin bitmap m:bitmap clear m:clear data m:data each m:each exists? m:exists? filter m:filter ic m:ic +Builtin iter m:iter iter-all m:iter-all keys m:keys len m:len map m:map merge m:merge new m:new op! m:op! +Builtin open m:open slice m:slice vals m:vals xchg m:xchg zip m:zip ! mat:! * mat:* + mat:+ = mat:= +Builtin @ mat:@ affine mat:affine col mat:col data mat:data det mat:det dim? mat:dim? get-n mat:get-n +Builtin ident mat:ident inv mat:inv m. mat:m. minor mat:minor n* mat:n* new mat:new new-minor mat:new-minor +Builtin rotate mat:rotate row mat:row same-size? mat:same-size? scale mat:scale shear mat:shear trans mat:trans +Builtin translate mat:translate xform mat:xform 2console md:2console 2html md:2html 2nk md:2nk color meta:color +Builtin console meta:console gui meta:gui meta meta:meta ! n:! * n:* */ n:*/ + n:+ +! n:+! - n:- / n:/ +Builtin /mod n:/mod 1+ n:1+ 1- n:1- < n:< = n:= > n:> >bool n:>bool BIGE n:BIGE BIGPI n:BIGPI E n:E +Builtin PI n:PI ^ n:^ _mod n:_mod abs n:abs acos n:acos acos n:acos andor n:andor asin n:asin asin n:asin +Builtin atan n:atan atan n:atan atan2 n:atan2 band n:band between n:between bfloat n:bfloat bic n:bic +Builtin bint n:bint binv n:binv bnot n:bnot bor n:bor bxor n:bxor cast n:cast ceil n:ceil clamp n:clamp +Builtin cmp n:cmp comb n:comb cos n:cos cosd n:cosd emod n:emod exp n:exp expm1 n:expm1 expmod n:expmod +Builtin float n:float floor n:floor fmod n:fmod frac n:frac gcd n:gcd int n:int invmod n:invmod kind? n:kind? +Builtin lcm n:lcm lerp n:lerp ln n:ln ln1p n:ln1p lnerp n:lnerp max n:max median n:median min n:min +Builtin mod n:mod neg n:neg odd? n:odd? perm n:perm prime? n:prime? quantize n:quantize quantize! n:quantize! +Builtin r+ n:r+ range n:range rot32l n:rot32l rot32r n:rot32r round n:round round2 n:round2 rounding n:rounding +Builtin running-variance n:running-variance running-variance-finalize n:running-variance-finalize sgn n:sgn +Builtin shl n:shl shr n:shr sin n:sin sind n:sind sqr n:sqr sqrt n:sqrt tan n:tan tand n:tand trunc n:trunc +Builtin ~= n:~= ! net:! !? net:!? - net:- >base64url net:>base64url >url net:>url @ net:@ @? net:@? +Builtin CGI net:CGI DGRAM net:DGRAM INET4 net:INET4 INET6 net:INET6 PROTO_TCP net:PROTO_TCP PROTO_UDP net:PROTO_UDP +Builtin REMOTE_IP net:REMOTE_IP STREAM net:STREAM accept net:accept active? net:active? addrinfo>o net:addrinfo>o +Builtin again? net:again? alloc-and-read net:alloc-and-read alloc-buf net:alloc-buf base64url> net:base64url> +Builtin bind net:bind cgi-get net:cgi-get cgi-http-header net:cgi-http-header cgi-init net:cgi-init +Builtin cgi-init-stunnel net:cgi-init-stunnel cgi-out net:cgi-out close net:close closed? net:closed? +Builtin connect net:connect curnet net:curnet debug? net:debug? delete net:delete get net:get getaddrinfo net:getaddrinfo +Builtin getpeername net:getpeername head net:head ifaces? net:ifaces? ipv6? net:ipv6? listen net:listen +Builtin map>url net:map>url mime-type net:mime-type net-socket net:net-socket opts net:opts port-is-ssl? net:port-is-ssl? +Builtin post net:post proxy! net:proxy! put net:put read net:read read-all net:read-all read-buf net:read-buf +Builtin recvfrom net:recvfrom s>url net:s>url sendto net:sendto server net:server setsockopt net:setsockopt +Builtin socket net:socket tcp-connect net:tcp-connect tlserr net:tlserr tlshello net:tlshello udp-connect net:udp-connect +Builtin url> net:url> user-agent net:user-agent vpncheck net:vpncheck wait net:wait webserver net:webserver +Builtin write net:write (begin) nk:(begin) (chart-begin) nk:(chart-begin) (chart-begin-colored) nk:(chart-begin-colored) +Builtin (chart-end) nk:(chart-end) (end) nk:(end) (group-begin) nk:(group-begin) (group-end) nk:(group-end) +Builtin (property) nk:(property) >img nk:>img addfont nk:addfont anti-alias nk:anti-alias any-clicked? nk:any-clicked? +Builtin bounds nk:bounds bounds! nk:bounds! button nk:button button-color nk:button-color button-label nk:button-label +Builtin button-set-behavior nk:button-set-behavior button-symbol nk:button-symbol button-symbol-label nk:button-symbol-label +Builtin center-rect nk:center-rect chart-add-slot nk:chart-add-slot chart-add-slot-colored nk:chart-add-slot-colored +Builtin chart-push nk:chart-push chart-push-slot nk:chart-push-slot checkbox nk:checkbox circle nk:circle +Builtin clicked? nk:clicked? close-this! nk:close-this! close-this? nk:close-this? close? nk:close? +Builtin color-picker nk:color-picker combo nk:combo combo-begin-color nk:combo-begin-color combo-begin-label nk:combo-begin-label Builtin combo-cb nk:combo-cb combo-end nk:combo-end contextual-begin nk:contextual-begin contextual-close nk:contextual-close Builtin contextual-end nk:contextual-end contextual-item-image-text nk:contextual-item-image-text contextual-item-symbol-text nk:contextual-item-symbol-text -Builtin contextual-item-text nk:contextual-item-text cp! nk:cp! cp@ nk:cp@ display-info nk:display-info -Builtin display@ nk:display@ do nk:do down? nk:down? draw-image nk:draw-image draw-image-at nk:draw-image-at -Builtin draw-image-centered nk:draw-image-centered draw-sub-image nk:draw-sub-image draw-text nk:draw-text -Builtin draw-text-high nk:draw-text-high draw-text-wrap nk:draw-text-wrap edit-focus nk:edit-focus +Builtin contextual-item-text nk:contextual-item-text cp! nk:cp! cp@ nk:cp@ curpos nk:curpos cursor-load nk:cursor-load +Builtin cursor-set nk:cursor-set cursor-show nk:cursor-show display-info nk:display-info display@ nk:display@ +Builtin do nk:do down? nk:down? draw-image nk:draw-image draw-image-at nk:draw-image-at draw-image-centered nk:draw-image-centered +Builtin draw-sub-image nk:draw-sub-image draw-text nk:draw-text draw-text-centered nk:draw-text-centered +Builtin draw-text-high nk:draw-text-high draw-text-wrap nk:draw-text-wrap drivers nk:drivers edit-focus nk:edit-focus Builtin edit-string nk:edit-string event nk:event event-boost nk:event-boost event-msec nk:event-msec -Builtin event-wait nk:event-wait fill-arc nk:fill-arc fill-circle nk:fill-circle fill-poly nk:fill-poly -Builtin fill-rect nk:fill-rect fill-rect-color nk:fill-rect-color fill-triangle nk:fill-triangle flags! nk:flags! -Builtin flags@ nk:flags@ fullscreen nk:fullscreen get nk:get get-row-height nk:get-row-height getfont nk:getfont -Builtin getmap nk:getmap gl? nk:gl? grid nk:grid grid-push nk:grid-push group-scroll-ofs nk:group-scroll-ofs -Builtin group-scroll-ofs! nk:group-scroll-ofs! hovered? nk:hovered? image nk:image init nk:init input-button nk:input-button -Builtin input-key nk:input-key input-motion nk:input-motion input-scroll nk:input-scroll input-string nk:input-string -Builtin key-down? nk:key-down? key-pressed? nk:key-pressed? key-released? nk:key-released? label nk:label -Builtin label-colored nk:label-colored label-wrap nk:label-wrap label-wrap-colored nk:label-wrap-colored +Builtin event-wait nk:event-wait event? nk:event? fill-arc nk:fill-arc fill-circle nk:fill-circle fill-color nk:fill-color +Builtin fill-poly nk:fill-poly fill-rect nk:fill-rect fill-rect-color nk:fill-rect-color fill-triangle nk:fill-triangle +Builtin finger nk:finger flags! nk:flags! flags@ nk:flags@ flash nk:flash fullscreen nk:fullscreen +Builtin gesture nk:gesture get nk:get get-row-height nk:get-row-height getfont nk:getfont getmap nk:getmap +Builtin getmap! nk:getmap! gl? nk:gl? grid nk:grid grid-push nk:grid-push group-scroll-ofs nk:group-scroll-ofs +Builtin group-scroll-ofs! nk:group-scroll-ofs! hovered? nk:hovered? hrule nk:hrule image nk:image init nk:init +Builtin input-button nk:input-button input-key nk:input-key input-motion nk:input-motion input-scroll nk:input-scroll +Builtin input-string nk:input-string key-down? nk:key-down? key-pressed? nk:key-pressed? key-released? nk:key-released? +Builtin label nk:label label-colored nk:label-colored label-wrap nk:label-wrap label-wrap-colored nk:label-wrap-colored Builtin layout-bounds nk:layout-bounds layout-grid-begin nk:layout-grid-begin layout-grid-end nk:layout-grid-end Builtin layout-push-dynamic nk:layout-push-dynamic layout-push-static nk:layout-push-static layout-push-variable nk:layout-push-variable Builtin layout-ratio-from-pixel nk:layout-ratio-from-pixel layout-reset-row-height nk:layout-reset-row-height @@ -266,79 +293,94 @@ Builtin layout-row-end nk:layout-row-end layout-row-height nk:layout-row-height Builtin layout-row-static nk:layout-row-static layout-row-template-begin nk:layout-row-template-begin Builtin layout-row-template-end nk:layout-row-template-end layout-space-begin nk:layout-space-begin Builtin layout-space-end nk:layout-space-end layout-space-push nk:layout-space-push layout-widget-bounds nk:layout-widget-bounds -Builtin list-begin nk:list-begin list-end nk:list-end list-new nk:list-new list-range nk:list-range -Builtin m! nk:m! m@ nk:m@ make-style nk:make-style max-vertex-element nk:max-vertex-element measure nk:measure -Builtin measure-font nk:measure-font menu-begin nk:menu-begin menu-close nk:menu-close menu-end nk:menu-end -Builtin menu-item-image nk:menu-item-image menu-item-label nk:menu-item-label menu-item-symbol nk:menu-item-symbol -Builtin menubar-begin nk:menubar-begin menubar-end nk:menubar-end mouse-pos nk:mouse-pos msgdlg nk:msgdlg -Builtin option nk:option plot nk:plot plot-fn nk:plot-fn pop-font nk:pop-font popup-begin nk:popup-begin -Builtin popup-close nk:popup-close popup-end nk:popup-end popup-scroll-ofs nk:popup-scroll-ofs popup-scroll-ofs! nk:popup-scroll-ofs! -Builtin progress nk:progress prop-int nk:prop-int pt>local nk:pt>local pt>screen nk:pt>screen pts>rect nk:pts>rect -Builtin push-font nk:push-font rect-center nk:rect-center rect-intersect nk:rect-intersect rect-ofs nk:rect-ofs -Builtin rect-pad nk:rect-pad rect-shrink nk:rect-shrink rect-union nk:rect-union rect/high nk:rect/high -Builtin rect/wide nk:rect/wide rect>center nk:rect>center rect>local nk:rect>local rect>pos nk:rect>pos -Builtin rect>pts nk:rect>pts rect>screen nk:rect>screen rect>size nk:rect>size released? nk:released? -Builtin render nk:render restore nk:restore rotate nk:rotate save nk:save scale nk:scale scancode? nk:scancode? -Builtin screen-saver nk:screen-saver screen-size nk:screen-size screen-win-close nk:screen-win-close -Builtin selectable nk:selectable set nk:set set-font nk:set-font set-num-vertices nk:set-num-vertices -Builtin setpos nk:setpos setwin nk:setwin slider nk:slider slider-int nk:slider-int space nk:space -Builtin spacing nk:spacing stroke-arc nk:stroke-arc stroke-circle nk:stroke-circle stroke-curve nk:stroke-curve -Builtin stroke-line nk:stroke-line stroke-polygon nk:stroke-polygon stroke-polyline nk:stroke-polyline -Builtin stroke-rect nk:stroke-rect stroke-tri nk:stroke-tri style-from-table nk:style-from-table sw-gl nk:sw-gl -Builtin text? nk:text? tooltip nk:tooltip translate nk:translate tree-pop nk:tree-pop tree-state-push nk:tree-state-push -Builtin use-style nk:use-style vsync nk:vsync widget nk:widget widget-bounds nk:widget-bounds widget-fitting nk:widget-fitting -Builtin widget-high nk:widget-high widget-hovered? nk:widget-hovered? widget-mouse-click-down? nk:widget-mouse-click-down? -Builtin widget-mouse-clicked? nk:widget-mouse-clicked? widget-pos nk:widget-pos widget-size nk:widget-size -Builtin widget-wide nk:widget-wide win nk:win win-bounds nk:win-bounds win-bounds! nk:win-bounds! win-close nk:win-close -Builtin win-closed? nk:win-closed? win-collapse nk:win-collapse win-collapsed? nk:win-collapsed? win-content-bounds nk:win-content-bounds +Builtin line-rel nk:line-rel line-to nk:line-to list-begin nk:list-begin list-end nk:list-end list-new nk:list-new +Builtin list-range nk:list-range m! nk:m! m@ nk:m@ make-style nk:make-style max-vertex-element nk:max-vertex-element +Builtin maximize nk:maximize measure nk:measure measure-font nk:measure-font menu-begin nk:menu-begin +Builtin menu-close nk:menu-close menu-end nk:menu-end menu-item-image nk:menu-item-image menu-item-label nk:menu-item-label +Builtin menu-item-symbol nk:menu-item-symbol menubar-begin nk:menubar-begin menubar-end nk:menubar-end +Builtin minimize nk:minimize mouse-pos nk:mouse-pos move-back nk:move-back move-rel nk:move-rel move-to nk:move-to +Builtin msg nk:msg msgdlg nk:msgdlg ontop nk:ontop option nk:option pen-color nk:pen-color pen-width nk:pen-width +Builtin plot nk:plot plot-fn nk:plot-fn pop-font nk:pop-font popup-begin nk:popup-begin popup-close nk:popup-close +Builtin popup-end nk:popup-end popup-scroll-ofs nk:popup-scroll-ofs popup-scroll-ofs! nk:popup-scroll-ofs! +Builtin progress nk:progress prop-int nk:prop-int pt-in? nk:pt-in? pt-open nk:pt-open pt>local nk:pt>local +Builtin pt>rect nk:pt>rect pt>screen nk:pt>screen pt>x nk:pt>x pts>rect nk:pts>rect push-font nk:push-font +Builtin raise nk:raise rect! nk:rect! rect-center nk:rect-center rect-intersect nk:rect-intersect rect-ofs nk:rect-ofs +Builtin rect-open nk:rect-open rect-pad nk:rect-pad rect-rel nk:rect-rel rect-shrink nk:rect-shrink +Builtin rect-to nk:rect-to rect-union nk:rect-union rect/high nk:rect/high rect/wide nk:rect/wide rect= nk:rect= +Builtin rect>local nk:rect>local rect>pos nk:rect>pos rect>pts nk:rect>pts rect>pts4 nk:rect>pts4 rect>screen nk:rect>screen +Builtin rect>size nk:rect>size rect>x nk:rect>x rect@ nk:rect@ released? nk:released? render nk:render +Builtin render-timed nk:render-timed restore nk:restore rotate nk:rotate rotate-rel nk:rotate-rel save nk:save +Builtin scale nk:scale scancode? nk:scancode? screen-saver nk:screen-saver screen-size nk:screen-size +Builtin screen-win-close nk:screen-win-close selectable nk:selectable set nk:set set-font nk:set-font +Builtin set-num-vertices nk:set-num-vertices set-radius nk:set-radius setpos nk:setpos setwin nk:setwin +Builtin show nk:show slider nk:slider slider-int nk:slider-int space nk:space spacing nk:spacing stroke-arc nk:stroke-arc +Builtin stroke-circle nk:stroke-circle stroke-curve nk:stroke-curve stroke-line nk:stroke-line stroke-polygon nk:stroke-polygon +Builtin stroke-polyline nk:stroke-polyline stroke-rect nk:stroke-rect stroke-tri nk:stroke-tri style-from-table nk:style-from-table +Builtin swipe nk:swipe swipe-dir-threshold nk:swipe-dir-threshold swipe-threshold nk:swipe-threshold +Builtin text nk:text text-align nk:text-align text-font nk:text-font text-pad nk:text-pad text? nk:text? +Builtin timer-delay nk:timer-delay timer? nk:timer? tooltip nk:tooltip translate nk:translate tree-pop nk:tree-pop +Builtin tree-state-push nk:tree-state-push use-style nk:use-style vsync nk:vsync widget nk:widget widget-bounds nk:widget-bounds +Builtin widget-disable nk:widget-disable widget-fitting nk:widget-fitting widget-high nk:widget-high +Builtin widget-hovered? nk:widget-hovered? widget-mouse-click-down? nk:widget-mouse-click-down? widget-mouse-clicked? nk:widget-mouse-clicked? +Builtin widget-pos nk:widget-pos widget-size nk:widget-size widget-size nk:widget-size widget-wide nk:widget-wide +Builtin win nk:win win-bounds nk:win-bounds win-bounds! nk:win-bounds! win-close nk:win-close win-closed? nk:win-closed? +Builtin win-collapse nk:win-collapse win-collapsed? nk:win-collapsed? win-content-bounds nk:win-content-bounds Builtin win-focus nk:win-focus win-focused? nk:win-focused? win-hidden? nk:win-hidden? win-high nk:win-high Builtin win-hovered? nk:win-hovered? win-pos nk:win-pos win-scroll-ofs nk:win-scroll-ofs win-scroll-ofs! nk:win-scroll-ofs! -Builtin win-show nk:win-show win-size nk:win-size win-wide nk:win-wide win? nk:win? MAX ns:MAX ! o:! -Builtin + o:+ +? o:+? ??? o:??? @ o:@ class o:class exec o:exec isa o:isa method o:method mutate o:mutate -Builtin new o:new super o:super devname os:devname env os:env lang os:lang mem-arenas os:mem-arenas -Builtin notify os:notify region os:region cast ptr:cast len ptr:len null? ptr:null? pack ptr:pack unpack ptr:unpack -Builtin unpack_orig ptr:unpack_orig publish pubsub:publish qsize pubsub:qsize subscribe pubsub:subscribe -Builtin + q:+ clear q:clear len q:len new q:new notify q:notify overwrite q:overwrite peek q:peek pick q:pick -Builtin pop q:pop push q:push remove q:remove shift q:shift size q:size slide q:slide throwing q:throwing -Builtin wait q:wait ++match r:++match +/ r:+/ +match r:+match / r:/ @ r:@ len r:len match r:match new r:new -Builtin rx r:rx str r:str * rat:* + rat:+ - rat:- / rat:/ >n rat:>n >s rat:>s new rat:new proper rat:proper -Builtin ! s:! * s:* + s:+ - s:- / s:/ /scripts s:/scripts <+ s:<+ = s:= =ic s:=ic >base64 s:>base64 -Builtin >ucs2 s:>ucs2 @ s:@ append s:append base64> s:base64> clear s:clear cmp s:cmp cmpi s:cmpi compress s:compress -Builtin days! s:days! dist s:dist each s:each each! s:each! eachline s:eachline escape s:escape expand s:expand -Builtin fill s:fill fmt s:fmt fold s:fold gershayim s:gershayim globmatch s:globmatch hexupr s:hexupr -Builtin insert s:insert intl s:intl intl! s:intl! lang s:lang lc s:lc lc? s:lc? len s:len lsub s:lsub -Builtin ltrim s:ltrim map s:map months! s:months! new s:new norm s:norm reduce s:reduce repinsert s:repinsert -Builtin replace s:replace replace! s:replace! rev s:rev rsearch s:rsearch rsub s:rsub rtrim s:rtrim -Builtin script? s:script? search s:search size s:size slice s:slice soundex s:soundex strfmap s:strfmap -Builtin strfmt s:strfmt text-wrap s:text-wrap trim s:trim tsub s:tsub uc s:uc uc? s:uc? ucs2> s:ucs2> -Builtin utf8? s:utf8? zt s:zt close sio:close enum sio:enum open sio:open opts! sio:opts! opts@ sio:opts@ -Builtin read sio:read write sio:write @ slv:@ auto slv:auto build slv:build constraint slv:constraint +Builtin win-show nk:win-show win-size nk:win-size win-wide nk:win-wide win? nk:win? x>pt nk:x>pt x>rect nk:x>rect +Builtin MAX ns:MAX ! o:! + o:+ +? o:+? ??? o:??? @ o:@ class o:class exec o:exec isa o:isa method o:method +Builtin mutate o:mutate new o:new super o:super chroot os:chroot devname os:devname docker? os:docker? +Builtin env os:env lang os:lang locales os:locales notify os:notify power-state os:power-state region os:region +Builtin waitpid os:waitpid bezier pdf:bezier bezierq pdf:bezierq circle pdf:circle color pdf:color +Builtin ellipse pdf:ellipse font pdf:font img pdf:img line pdf:line new pdf:new page pdf:page page-size pdf:page-size +Builtin rect pdf:rect save pdf:save size pdf:size text pdf:text text-rotate pdf:text-rotate text-size pdf:text-size +Builtin text-width pdf:text-width text-wrap pdf:text-wrap text-wrap-rotate pdf:text-wrap-rotate cast ptr:cast +Builtin len ptr:len null? ptr:null? pack ptr:pack unpack ptr:unpack unpack_orig ptr:unpack_orig publish pubsub:publish +Builtin qsize pubsub:qsize subscribe pubsub:subscribe + q:+ clear q:clear len q:len new q:new notify q:notify +Builtin overwrite q:overwrite peek q:peek pick q:pick pop q:pop push q:push remove q:remove shift q:shift +Builtin size q:size slide q:slide throwing q:throwing wait q:wait ++match r:++match +/ r:+/ +match r:+match +Builtin / r:/ @ r:@ len r:len match r:match new r:new rx r:rx str r:str * rat:* + rat:+ - rat:- / rat:/ +Builtin >n rat:>n >s rat:>s new rat:new proper rat:proper ! s:! * s:* + s:+ - s:- / s:/ /scripts s:/scripts +Builtin <+ s:<+ <> s:<> = s:= =ic s:=ic >base64 s:>base64 >ucs2 s:>ucs2 @ s:@ append s:append base64> s:base64> +Builtin clear s:clear cmp s:cmp cmpi s:cmpi compress s:compress count-match s:count-match days! s:days! +Builtin dist s:dist each s:each each! s:each! eachline s:eachline escape s:escape expand s:expand fill s:fill +Builtin fold s:fold globmatch s:globmatch hexupr s:hexupr insert s:insert intl s:intl intl! s:intl! +Builtin lang s:lang lc s:lc lc? s:lc? len s:len lsub s:lsub ltrim s:ltrim map s:map months! s:months! +Builtin n> s:n> new s:new norm s:norm reduce s:reduce repinsert s:repinsert replace s:replace replace! s:replace! +Builtin rev s:rev rsearch s:rsearch rsub s:rsub rtrim s:rtrim scan-match s:scan-match script? s:script? +Builtin search s:search size s:size slice s:slice soundex s:soundex strfmap s:strfmap strfmt s:strfmt +Builtin term s:term text-wrap s:text-wrap tr s:tr translate s:translate trim s:trim tsub s:tsub uc s:uc +Builtin uc? s:uc? ucs2> s:ucs2> utf8? s:utf8? zt s:zt close sio:close enum sio:enum open sio:open opts! sio:opts! +Builtin opts@ sio:opts@ read sio:read write sio:write @ slv:@ auto slv:auto build slv:build constraint slv:constraint Builtin dump slv:dump edit slv:edit named-variable slv:named-variable new slv:new relation slv:relation Builtin reset slv:reset suggest slv:suggest term slv:term update slv:update v[] slv:v[] variable slv:variable Builtin v{} slv:v{} new smtp:new send smtp:send apply-filter snd:apply-filter devices? snd:devices? -Builtin end-record snd:end-record filter snd:filter formats? snd:formats? freq snd:freq gain snd:gain -Builtin gain? snd:gain? init snd:init len snd:len loop snd:loop loop? snd:loop? mix snd:mix new snd:new -Builtin pause snd:pause play snd:play played snd:played rate snd:rate ready? snd:ready? record snd:record -Builtin resume snd:resume seek snd:seek stop snd:stop stopall snd:stopall volume snd:volume volume? snd:volume? -Builtin + st:+ . st:. clear st:clear len st:len ndrop st:ndrop new st:new op! st:op! peek st:peek pick st:pick -Builtin pop st:pop push st:push roll st:roll shift st:shift size st:size slide st:slide swap st:swap -Builtin throwing st:throwing >buf struct:>buf arr> struct:arr> buf struct:buf buf> struct:buf> byte struct:byte -Builtin double struct:double field! struct:field! field@ struct:field@ float struct:float ignore struct:ignore -Builtin int struct:int long struct:long struct; struct:struct; word struct:word ! t:! @ t:@ by-name t:by-name -Builtin cor t:cor cor-drop t:cor-drop curtask t:curtask def-queue t:def-queue def-stack t:def-stack -Builtin done? t:done? err! t:err! err? t:err? errno? t:errno? getq t:getq handler t:handler handler@ t:handler@ +Builtin end-record snd:end-record filter snd:filter freq snd:freq gain snd:gain gain? snd:gain? init snd:init +Builtin len snd:len loop snd:loop loop? snd:loop? mix snd:mix new snd:new pause snd:pause play snd:play +Builtin played snd:played rate snd:rate ready? snd:ready? record snd:record resume snd:resume seek snd:seek +Builtin stop snd:stop stopall snd:stopall volume snd:volume volume? snd:volume? + st:+ . st:. clear st:clear +Builtin len st:len ndrop st:ndrop new st:new op! st:op! peek st:peek pick st:pick pop st:pop push st:push +Builtin roll st:roll shift st:shift size st:size slide st:slide swap st:swap throwing st:throwing >buf struct:>buf +Builtin arr> struct:arr> buf struct:buf buf> struct:buf> byte struct:byte double struct:double field! struct:field! +Builtin field@ struct:field@ float struct:float ignore struct:ignore int struct:int long struct:long +Builtin struct; struct:struct; word struct:word ! t:! @ t:@ by-name t:by-name cor t:cor cor-drop t:cor-drop +Builtin curtask t:curtask def-queue t:def-queue def-stack t:def-stack done? t:done? dtor t:dtor err! t:err! +Builtin err? t:err? errno? t:errno? extra t:extra getq t:getq handler t:handler handler@ t:handler@ Builtin kill t:kill list t:list main t:main max-exceptions t:max-exceptions name! t:name! name@ t:name@ -Builtin notify t:notify parent t:parent pop t:pop priority t:priority push t:push q-notify t:q-notify +Builtin notify t:notify parent t:parent pop t:pop priority t:priority push t:push push! t:push! q-notify t:q-notify Builtin q-wait t:q-wait qlen t:qlen result t:result set-affinity t:set-affinity setq t:setq start t:start -Builtin task t:task task-n t:task-n task-stop t:task-stop wait t:wait yield t:yield yield! t:yield! +Builtin task t:task task-n t:task-n task-stop t:task-stop ticks t:ticks wait t:wait yield t:yield yield! t:yield! Builtin add tree:add binary tree:binary bk tree:bk btree tree:btree cmp! tree:cmp! data tree:data del tree:del Builtin find tree:find iter tree:iter next tree:next nodes tree:nodes parent tree:parent parse tree:parse Builtin prev tree:prev root tree:root search tree:search trie tree:trie ! w:! (is) w:(is) @ w:@ alias: w:alias: Builtin cb w:cb deprecate w:deprecate dlcall w:dlcall dlopen w:dlopen dlsym w:dlsym exec w:exec exec? w:exec? -Builtin ffifail w:ffifail find w:find forget w:forget is w:is name w:name undo w:undo >s xml:>s >txt xml:>txt -Builtin md-init xml:md-init md-parse xml:md-parse parse xml:parse parse-html xml:parse-html parse-stream xml:parse-stream +Builtin ffifail w:ffifail find w:find forget w:forget is w:is name w:name undo w:undo close ws:close +Builtin decode ws:decode encode ws:encode encode-nomask ws:encode-nomask gen-accept-header ws:gen-accept-header +Builtin gen-accept-key ws:gen-accept-key opcodes ws:opcodes open ws:open >s xml:>s >txt xml:>txt md-init xml:md-init +Builtin md-parse xml:md-parse parse xml:parse parse-html xml:parse-html parse-stream xml:parse-stream Builtin getmsg[] zmq:getmsg[] sendmsg[] zmq:sendmsg[] + " numbers syn keyword eighthMath decimal hex base@ base! syn match eighthInteger '\<-\=[0-9.]*[0-9.]\+\>' @@ -349,6 +391,11 @@ syn match eighthInteger '\<\x*\d\x*\>' " *2* --- this order! syn match eighthInteger '\<%[0-1]*[0-1]\+\>' syn match eighthInteger "\<'.\>" +syn include @SQL syntax/sql.vim +syn region eightSQL matchgroup=Define start=/\/ contains=@SQL keepend +syn region eightSQL matchgroup=Define start=/\/ contains=@SQL keepend +syn region eightSQL matchgroup=Define start=/\/ contains=@SQL keepend + " Strings syn region eighthString start=+\.\?\"+ skip=+"+ end=+$+ syn keyword jsonNull null @@ -356,49 +403,57 @@ syn keyword jsonBool /\(true\|false\)/ syn region eighthString start=/\<"/ end=/"\>/ syn match jsonObjEntry /"\"[^"]\+\"\ze\s*:/ -" Include files +syn region eighthNeeds start=+needs\[+ end=+]+ matchgroup=eighthNeeds2 transparent +syn match eighthNeeds2 /\/ + +syn match eighthBuiltin /m:\[]!/ +syn match eighthBuiltin /v:\[]/ +syn match eighthBuiltin /db:bind-exec\[]/ +syn match eighthBuiltin /db:exec\[]/ +syn match eighthBuiltin /db:col\[]/ + +" TODO syn region eighthComment start="\zs\\" end="$" contains=eighthTodo -" Define the default highlighting. -if !exists("did_eighth_syntax_inits") - let did_eighth_syntax_inits=1 - - " The default methods for highlighting. Can be overridden later. - hi def link eighthTodo Todo - hi def link eighthOperators Operator - hi def link eighthMath Number - hi def link eighthInteger Number - hi def link eighthStack Special - hi def link eighthFStack Special - hi def link eighthSP Special - hi def link eighthColonDef Define - hi def link eighthColonName Operator - hi def link eighthEndOfColonDef Define - hi def link eighthDefine Define - hi def link eighthDebug Debug - hi def link eighthCharOps Character - hi def link eighthConversion String - hi def link eighthForth Statement - hi def link eighthVocs Statement - hi def link eighthString String - hi def link eighthComment Comment - hi def link eighthClassDef Define - hi def link eighthEndOfClassDef Define - hi def link eighthObjectDef Define - hi def link eighthEndOfObjectDef Define - hi def link eighthInclude Include - hi def link eighthBuiltin Define - hi def link eighthClasses Define - hi def link eighthClassWord Keyword - hi def link jsonObject Delimiter - hi def link jsonObjEntry Label - hi def link jsonArray Special - hi def link jsonNull Function - hi def link jsonBool Boolean -endif +" The default methods for highlighting. Can be overriden later. +hi def link eighthTodo Todo +hi def link eighthNeeds2 Include +hi def link eighthNeeds Error +hi def link eighthOperators Operator +hi def link eighthMath Number +hi def link eighthInteger Number +hi def link eighthStack Special +hi def link eighthFStack Special +hi def link eighthFname Operator +hi def link eighthSP Special +hi def link eighthColonDef Define +hi def link eighthColonName Operator +hi def link eighthEndOfColonDef Define +hi def link eighthDefine Define +hi def link eighthDebug Debug +hi def link eighthCharOps Character +hi def link eighthConversion String +hi def link eighthForth Statement +hi def link eighthVocs Statement +hi def link eighthString String +hi def link eighthComment Comment +hi def link eighthClassDef Define +hi def link eighthEndOfClassDef Define +hi def link eighthObjectDef Define +hi def link eighthEndOfObjectDef Define +hi def link eighthInclude Include +hi def link eighthBuiltin Define +hi def link eighthClasses Define +hi def link eighthClassWord Keyword +hi def link jsonObject Delimiter +hi def link jsonObjEntry Label +hi def link jsonArray Special +hi def link jsonNull Function +hi def link jsonBool Boolean let b:current_syntax = "8th" let &cpo = s:cpo_save unlet s:cpo_save -" vim: ft=vim:ts=8:sw=4:nocindent:smartindent: +" vim: ft=vim ts=4 sw=4 nocin:si From ef07a7651e324b8540f5e2bd7fa35fe059ea0434 Mon Sep 17 00:00:00 2001 From: "K.Takata" Date: Wed, 20 Dec 2023 04:21:40 +0900 Subject: [PATCH 059/120] translation(ja): Update Japanese translation (#13723) ref: https://github.com/vim-jp/lang-ja/releases/tag/20231219 Signed-off-by: Ken Takata Signed-off-by: Christian Brabandt --- runtime/doc/vimtutor-ja.UTF-8.1 | 2 +- runtime/doc/xxd-ja.UTF-8.1 | 34 +- runtime/lang/menu_ja_jp.euc-jp.vim | 6 +- runtime/lang/menu_ja_jp.utf-8.vim | 6 +- runtime/lang/menu_japanese_japan.932.vim | 6 +- src/po/ja.euc-jp.po | 1337 ++++++++++++++------- src/po/ja.po | 1335 ++++++++++++++------- src/po/ja.sjis.po | 1339 +++++++++++++++------- 8 files changed, 2784 insertions(+), 1281 deletions(-) diff --git a/runtime/doc/vimtutor-ja.UTF-8.1 b/runtime/doc/vimtutor-ja.UTF-8.1 index 2ba8f43a48..2e4f69dcec 100644 --- a/runtime/doc/vimtutor-ja.UTF-8.1 +++ b/runtime/doc/vimtutor-ja.UTF-8.1 @@ -35,7 +35,7 @@ vimtutor \- Vim ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ« ã¯ã€Colorado State University ã® Charles Smith ã®ã‚¢ã‚¤ãƒ‡ã‚¢ã‚’基ã«ã€ Colorado School of Mines ã® Michael C. Pierce 㨠Robert K. Ware ã®ä¸¡åã«ã‚ˆã£ã¦ Vi å‘ã‘ã«ä½œæˆã•れãŸã‚‚ã®ã‚’基ã«ã—ã¦ã„ã¾ã™ã€‚ -E-mail: bware@mines.colorado.edu. +E-mail: bware@mines.colorado.edu (ç¾åœ¨ã¯ç„¡åй). .br .B Vim ã«åˆã‚ã›ã¦ Bram Moolenaar ãŒå¤‰æ›´ã‚’加ãˆã¾ã—ãŸã€‚ diff --git a/runtime/doc/xxd-ja.UTF-8.1 b/runtime/doc/xxd-ja.UTF-8.1 index 1e06bde814..dabc4771dc 100644 --- a/runtime/doc/xxd-ja.UTF-8.1 +++ b/runtime/doc/xxd-ja.UTF-8.1 @@ -57,7 +57,7 @@ ビット (2進数) ダンプ。 1 オクテット㌠"1" 㨠"0" ã® 8 文字ã§å‡ºåŠ›ã•れã¾ã™ã€‚ å„行ã®è¡Œé ­ã«ã¯ 16 進数ã®è¡Œç•ªå·ãŒè¡¨ç¤ºã•れã¾ã™ã€‚ -行末ã«ã¯ ascii (ã¾ãŸã¯ ebcdic) ã§è¡¨ã—ãŸå ´åˆã®æ–‡å­—ãŒè¡¨ç¤ºã•れã¾ã™ã€‚ +行末ã«ã¯ ASCII (ã¾ãŸã¯ EBCDIC) ã§è¡¨ã—ãŸå ´åˆã®æ–‡å­—ãŒè¡¨ç¤ºã•れã¾ã™ã€‚ ã“ã®ãƒ¢ãƒ¼ãƒ‰ã§ã¯ \-pã€\-i ã¯æ©Ÿèƒ½ã—ã¾ã›ã‚“。 .TP .IR \-e @@ -100,7 +100,7 @@ コマンドã®èª¬æ˜Žã‚’出力ã—ã¦çµ‚了ã™ã‚‹ã€‚変æ›ã¯å®Ÿè¡Œã•れã¾ã›ã‚“。 .TP .IR \-i " | " \-include -C インクルードファイル形å¼ã§å‡ºåŠ›ã—ã¾ã™ã€‚ +C インクルードファイル形å¼ã§å‡ºåŠ›ã™ã‚‹ã€‚ 入力ファイルã®åå‰ãŒä»˜ã‘られãŸé™çš„é…列ã®å®šç¾©ãŒå‡ºåŠ›ã•れã¾ã™ã€‚ 標準入力ã®å ´åˆã¯å®šç¾©ã®ä¸­èº«ã ã‘出力ã•れã¾ã™ã€‚ .TP @@ -108,6 +108,10 @@ C インクルードファイル形å¼ã§å‡ºåŠ›ã—ã¾ã™ã€‚ .RI < len > オクテットã ã‘出力ã™ã‚‹ã€‚ .TP +.I "\-n name " | " \-name name" +\-i ãŒä½¿ã‚れãŸã¨ãã«å¤‰æ•°åã®å‡ºåŠ›ã‚’ä¸Šæ›¸ãã™ã‚‹ã€‚ +é…列㯠\fIname\fP ã¨å付ã‘られã€é•·ã•㯠\fIname\fP_len ã¨å付ã‘られã¾ã™ã€‚ +.TP .I \-o offset 表示ã•れるファイルä½ç½®ã« .RI < offset > @@ -121,7 +125,20 @@ C インクルードファイル形å¼ã§å‡ºåŠ›ã—ã¾ã™ã€‚ ファイルã¸å‡ºåŠ›ã™ã‚‹å ´åˆã€å‡ºåŠ›å…ˆã®ãƒ•ァイルã¯åˆ‡ã‚Šè©°ã‚ã•れã¾ã›ã‚“。 行番å·ã‚„ç‰¹å®šã®æ›¸å¼ãŒãªã„プレーン 16 進ダンプを読ã¿è¾¼ã‚€å ´åˆã¯ã€ .I \-r \-p -を指定ã—ã¦ãã ã•ã„ã€‚ç©ºç™½ã¨æ”¹è¡Œã¯ç„¡è¦–ã•れã¾ã™ã€‚ +ã®çµ„ã¿åˆã‚ã›ã‚’使ã£ã¦ãã ã•ã„ã€‚ç©ºç™½ã¨æ”¹è¡Œã¯ç„¡è¦–ã•れã¾ã™ã€‚ +16 進ダンプã®ä»£ã‚りã«ãƒ“ットダンプを読ã¿è¾¼ã‚€ã«ã¯ã€ +.I \-r \-b +ã®çµ„ã¿åˆã‚ã›ã‚’使ã£ã¦ãã ã•ã„。 +.TP +.IR \-R " " when +16 進ã®å€¤ã«åŸºã¥ã„ã¦ã€16 進ã®å€¤ã¨ãã®å€¤ã®ä¸¡æ–¹ãŒåŒã˜è‰²ã§ã‚«ãƒ©ãƒ¼è¡¨ç¤ºã•れる。 +ãŸã„ã¦ã„ã¯ã€è¡¨ç¤ºå¯èƒ½æ–‡å­—ã¨éžè¡¨ç¤ºå¯èƒ½æ–‡å­—を区別ã™ã‚‹ã®ã«æœ‰ç”¨ã§ã™ã€‚ +.I \fIwhen\fP +㯠+.BR never ", " always ", ã‚ã‚‹ã„㯠" auto +ã®ã„ãšã‚Œã‹ã§ã™ã€‚ +.BR $NO_COLOR +環境変数ãŒè¨­å®šã•れã¦ã„ã‚‹ã¨ãã¯ã€ã‚«ãƒ©ãƒ¼è¡¨ç¤ºã¯ç„¡åŠ¹åŒ–ã•れã¾ã™ã€‚ .TP .I \-seek offset .IR \-r @@ -160,7 +177,7 @@ infile ã® 16 進ダンプを編集ã™ã‚‹ã¨ãã¯æ³¨æ„ãŒå¿…è¦ã§ã™ã€‚ .I xxd \-r ã¯å¿…è¦ãªæ¡ (\-c 引数å‚ç…§) ã ã‘ 16 進データを読ã¿è¾¼ã‚“ã§ã€è¡Œã®æ®‹ã‚Šã‚’無視ã—ã¾ã™ã€‚ -ã¤ã¾ã‚Šã€ascii (ã¾ãŸã¯ ebcdic) を示ã—ã¦ã„る列ã¸ã®å¤‰æ›´ã¯ç„¡è¦–ã•れã¾ã™ã€‚ +ã¤ã¾ã‚Šã€ASCII (ã¾ãŸã¯ EBCDIC) を示ã—ã¦ã„る列ã¸ã®å¤‰æ›´ã¯ç„¡è¦–ã•れã¾ã™ã€‚ xxd \-r \-p ã§ãƒ—ãƒ¬ãƒ¼ãƒ³å½¢å¼ (ãƒã‚¹ãƒˆã‚¹ã‚¯ãƒªãƒ—ト形å¼) ã® 16 é€²ãƒ€ãƒ³ãƒ—ã‚’å…ƒã«æˆ»ã™å ´åˆã¯ã€åˆ—ã®æ•°ã¯å½±éŸ¿ã—ã¾ã›ã‚“。 2 æ¡ã® 16 進数ã¨èªè­˜ã§ãã‚‹ã‚‚ã®ã¯ã™ã¹ã¦å¤‰æ›ã•れã¾ã™ã€‚ .PP @@ -177,7 +194,7 @@ xxd \-r \-p ã§ãƒ—ãƒ¬ãƒ¼ãƒ³å½¢å¼ (ãƒã‚¹ãƒˆã‚¹ã‚¯ãƒªãƒ—ト形å¼) ã® 16 進ダ .IR "xxd \-s seek" , ã®é•ã„ã¯ã€lseek(2) を使ã£ã¦å…¥åŠ›ã‚’ "å·»ãæˆ»ã™" ã‹ã©ã†ã‹ã§ã™ã€‚'+' ãŒæ„味をæŒã¤ã®ã¯ã€å…¥åŠ›ãŒæ¨™æº–入力ã§ã€xxd ãŒèµ·å‹•ã•れãŸã¨ãã«æ¨™æº–入力ã®ãƒ•ァイルä½ç½®ãŒãƒ•ァイルã®å…ˆé ­ã§ã¯ãªã‹ã£ãŸå ´åˆã§ã™ã€‚ -以下ã®ä¾‹ãŒåˆ†ã‹ã‚Šã‚„ã™ã„ã‹ã‚‚ã—れã¾ã›ã‚“ (ã‚‚ã£ã¨æ··ä¹±ã™ã‚‹ã‹ã‚‚!)... +以下ã®ä¾‹ãŒåˆ†ã‹ã‚Šã‚„ã™ã„ã‹ã‚‚ã—れã¾ã›ã‚“ (ã‚‚ã£ã¨æ··ä¹±ã™ã‚‹ã‹ã‚‚!): .PP `cat' ãŒæ—¢ã«æ¨™æº–入力を終ã‚りã¾ã§èª­ã‚“ã§ã„ã‚‹ã®ã§ã€èª­ã‚€å‰ã«æ¨™æº–å…¥åŠ›ã‚’å·»ãæˆ»ã™å¿…è¦ãŒã‚る。 .br @@ -188,7 +205,7 @@ xxd \-r \-p ã§ãƒ—ãƒ¬ãƒ¼ãƒ³å½¢å¼ (ãƒã‚¹ãƒˆã‚¹ã‚¯ãƒªãƒ—ト形å¼) ã® 16 進ダ .br \fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet" < file\fR .PP -ファイルä½ç½® 0x100 ( = 1024\-768) ã‹ã‚‰ 16 進ダンプã™ã‚‹ã€‚ +ファイルä½ç½® 0x100 (=1024\-768) ã‹ã‚‰ 16 進ダンプã™ã‚‹ã€‚ .br \fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +\-768 > hex_snippet" < file\fR .PP @@ -331,8 +348,9 @@ xxd.1 ã®æ—¥ä»˜ã‚’修正ã™ã‚‹ã€‚ エラーãªã—。 .TP \-1 -æ“作ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ãªã„ ( -.I xxd \-r \-i +æ“作ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ãªã„ +\%(\c +.I \%xxd \-r \-i ã¯ã¾ã ä¸å¯ã§ã™)。 .TP 1 diff --git a/runtime/lang/menu_ja_jp.euc-jp.vim b/runtime/lang/menu_ja_jp.euc-jp.vim index daa404bf7c..809ef5acf5 100644 --- a/runtime/lang/menu_ja_jp.euc-jp.vim +++ b/runtime/lang/menu_ja_jp.euc-jp.vim @@ -1,10 +1,10 @@ " vi:set ts=8 sts=8 sw=8 tw=0: " " Menu Translations: Japanese (EUC-JP) -" Last Translator: MURAOKA Taro -" Last Change: 20-Feb-2022. +" Last Translator: MURAOKA Taro +" Last Change: 18-Dec-2023. " -" Copyright (C) 2001-2022 MURAOKA Taro , +" Copyright (C) 2001-2023 MURAOKA Taro , " vim-jp " " THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE. diff --git a/runtime/lang/menu_ja_jp.utf-8.vim b/runtime/lang/menu_ja_jp.utf-8.vim index f84164762d..f376da76d9 100644 --- a/runtime/lang/menu_ja_jp.utf-8.vim +++ b/runtime/lang/menu_ja_jp.utf-8.vim @@ -1,10 +1,10 @@ " vi:set ts=8 sts=8 sw=8 tw=0: " " Menu Translations: Japanese (UTF-8) -" Last Translator: MURAOKA Taro -" Last Change: 20-Feb-2022. +" Last Translator: MURAOKA Taro +" Last Change: 18-Dec-2023. " -" Copyright (C) 2001-2022 MURAOKA Taro , +" Copyright (C) 2001-2023 MURAOKA Taro , " vim-jp " " THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE. diff --git a/runtime/lang/menu_japanese_japan.932.vim b/runtime/lang/menu_japanese_japan.932.vim index fe58d568d9..2cb1f6780a 100644 --- a/runtime/lang/menu_japanese_japan.932.vim +++ b/runtime/lang/menu_japanese_japan.932.vim @@ -1,10 +1,10 @@ " vi:set ts=8 sts=8 sw=8 tw=0: " " Menu Translations: Japanese (CP932) -" Last Translator: MURAOKA Taro -" Last Change: 20-Feb-2022. +" Last Translator: MURAOKA Taro +" Last Change: 18-Dec-2023. " -" Copyright (C) 2001-2022 MURAOKA Taro , +" Copyright (C) 2001-2023 MURAOKA Taro , " vim-jp " " THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE. diff --git a/src/po/ja.euc-jp.po b/src/po/ja.euc-jp.po index 5b2f0138df..362be9ebcb 100644 --- a/src/po/ja.euc-jp.po +++ b/src/po/ja.euc-jp.po @@ -3,7 +3,7 @@ # Do ":help uganda" in Vim to read copying and usage conditions. # Do ":help credits" in Vim to see a list of people who contributed. # -# Copyright (C) 2001-2022 MURAOKA Taro , +# Copyright (C) 2001-2023 MURAOKA Taro , # vim-jp # # THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE. @@ -12,15 +12,15 @@ # msgid "" msgstr "" -"Project-Id-Version: Vim 8.2\n" +"Project-Id-Version: Vim 9.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-18 13:52+0900\n" -"PO-Revision-Date: 2022-02-20 01:53+0900\n" +"POT-Creation-Date: 2023-12-18 16:41+0900\n" +"PO-Revision-Date: 2023-12-19 12:45+0900\n" "Last-Translator: MURAOKA Taro \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=euc-jp\n" +"Content-Type: text/plain; charset=EUC-JP\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" @@ -155,6 +155,26 @@ msgstr " msgid "Top" msgstr "ÀèÆ¬" +#, c-format +msgid "%d%%" +msgstr "%d%%" + +#, c-format +msgid " (%d of %d)" +msgstr " (%d of %d)" + +#, c-format +msgid " ((%d) of %d)" +msgstr " ((%d) of %d)" + +#, c-format +msgid " (file %d of %d)" +msgstr " (file %d of %d)" + +#, c-format +msgid " (file (%d) of %d)" +msgstr " (file (%d) of %d)" + msgid "[Prompt]" msgstr "[¥×¥í¥ó¥×¥È]" @@ -268,6 +288,31 @@ msgstr " msgid "[crypted]" msgstr "[°Å¹æ²½]" +#, c-format +msgid "xchacha20v2: using custom opslimit \"%llu\" for Key derivation." +msgstr "xchacha20v2: ¥­¡¼¤ÎƳ½Ð¤Ë¥«¥¹¥¿¥àopslimit \"%llu\"¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£" + +#, c-format +msgid "xchacha20v2: using default opslimit \"%llu\" for Key derivation." +msgstr "xchacha20v2: ¥­¡¼¤ÎƳ½Ð¤Ë¥Ç¥Õ¥©¥ë¥Èopslimit \"%llu\"¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£" + +#, c-format +msgid "xchacha20v2: using custom memlimit \"%lu\" for Key derivation." +msgstr "xchacha20v2: ¥­¡¼¤ÎƳ½Ð¤Ë¥«¥¹¥¿¥àmemlimit \"%lu\"¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£" + +#, c-format +msgid "xchacha20v2: using default memlimit \"%lu\" for Key derivation." +msgstr "xchacha20v2: ¥­¡¼¤ÎƳ½Ð¤Ë¥Ç¥Õ¥©¥ë¥Èmemlimit \"%lu\"¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£" + +#, c-format +msgid "xchacha20v2: using custom algorithm \"%d\" for Key derivation." +msgstr "xchacha20v2: ¥­¡¼¤ÎƳ½Ð¤Ë¥«¥¹¥¿¥à¥¢¥ë¥´¥ê¥º¥à \"%d\"¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£" + +#, c-format +msgid "xchacha20v2: using default algorithm \"%d\" for Key derivation." +msgstr "" +"xchacha20v2: ¥­¡¼¤ÎƳ½Ð¤Ë¥Ç¥Õ¥©¥ë¥È¥¢¥ë¥´¥ê¥º¥à \"%d\"¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£" + msgid "Entering Debug mode. Type \"cont\" to continue." msgstr "¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤ËÆþ¤ê¤Þ¤¹¡£Â³¤±¤ë¤Ë¤Ï \"cont\" ¤ÈÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£" @@ -544,7 +589,7 @@ msgstr "W21: msgid "Entering Ex mode. Type \"visual\" to go to Normal mode." msgstr "" -"Ex¥â¡¼¥É¤ËÆþ¤ê¤Þ¤¹¡£¥Î¡¼¥Þ¥ë¥â¡¼¥É¤ËÌá¤ë¤Ë¤Ï\"visual\"¤ÈÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£" +"Ex¥â¡¼¥É¤ËÆþ¤ê¤Þ¤¹¡£¥Î¡¼¥Þ¥ë¥â¡¼¥É¤ËÌá¤ë¤Ë¤Ï \"visual\" ¤ÈÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£" #, c-format msgid "Executing: %s" @@ -559,12 +604,6 @@ msgstr " msgid "Backwards range given, OK to swap" msgstr "µÕ¤µ¤Þ¤ÎÈϰϤ¬»ØÄꤵ¤ì¤Þ¤·¤¿¡¢ÆþÂØ¤¨¤Þ¤¹¤«?" -msgid "" -"INTERNAL: Cannot use EX_DFLALL with ADDR_NONE, ADDR_UNSIGNED or ADDR_QUICKFIX" -msgstr "" -"ÆâÉô¥¨¥é¡¼: EX_DFLALL ¤ò ADDR_NONE, ADDR_UNSIGNED ¤ä ADDR_QUICKFIX ¤È¤È¤â¤Ë»È" -"¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" - #, c-format msgid "%d more file to edit. Quit anyway?" msgid_plural "%d more files to edit. Quit anyway?" @@ -818,24 +857,6 @@ msgstr[0] "+-%s%3ld msgid "No match at cursor, finding next" msgstr "¥«¡¼¥½¥ë¤Î°ÌÃ֤˥ޥåÁ¤Ï¤¢¤ê¤Þ¤»¤ó¡¢¼¡¤ò¸¡º÷¤·¤Æ¤¤¤Þ¤¹" -msgid " " -msgstr "<³«¤±¤Þ¤»¤ó> " - -msgid "Pathname:" -msgstr "¥Ñ¥¹Ì¾:" - -msgid "OK" -msgstr "OK" - -msgid "Cancel" -msgstr "¥­¥ã¥ó¥»¥ë" - -msgid "Scrollbar Widget: Could not get geometry of thumb pixmap." -msgstr "¥¹¥¯¥í¡¼¥ë¥Ð¡¼: ²èÁü¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£" - -msgid "Vim dialog" -msgstr "Vim ¥À¥¤¥¢¥í¥°" - msgid "_Save" msgstr "Êݸ(_S)" @@ -857,12 +878,18 @@ msgstr "" "¤¤¤¤¤¨(&N)\n" "¥­¥ã¥ó¥»¥ë(&C)" +msgid "OK" +msgstr "OK" + msgid "Yes" msgstr "¤Ï¤¤" msgid "No" msgstr "¤¤¤¤¤¨" +msgid "Cancel" +msgstr "¥­¥ã¥ó¥»¥ë" + msgid "Input _Methods" msgstr "¥¤¥ó¥×¥Ã¥È¥á¥½¥Ã¥É" @@ -944,6 +971,9 @@ msgstr "&OK" msgid "Selection" msgstr "ÁªÂò" +msgid "Vim dialog" +msgstr "Vim ¥À¥¤¥¢¥í¥°" + msgid "Find &Next" msgstr "¼¡¤ò¸¡º÷(&N)" @@ -1313,9 +1343,6 @@ msgstr " msgid " Keyword Local completion (^N^P)" msgstr " ¶É½ê¥­¡¼¥ï¡¼¥ÉÊä´° (^N^P)" -msgid "Hit end of paragraph" -msgstr "ÃÊÍî¤ÎºÇ¸å¤Ë¥Ò¥Ã¥È" - msgid "'dictionary' option is empty" msgstr "'dictionary' ¥ª¥×¥·¥ç¥ó¤¬¶õ¤Ç¤¹" @@ -1348,6 +1375,12 @@ msgstr " msgid "-- Searching..." msgstr "-- ¸¡º÷Ãæ..." +msgid "Hit end of paragraph" +msgstr "ÃÊÍî¤ÎºÇ¸å¤Ë¥Ò¥Ã¥È" + +msgid "Pattern not found" +msgstr "¥Ñ¥¿¡¼¥ó¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿" + msgid "Back at original" msgstr "»Ï¤á¤ËÌá¤ë" @@ -1564,7 +1597,7 @@ msgid "-C\t\t\tCompatible with Vi: 'compatible'" msgstr "-C\t\t\tVi¸ß´¹¥â¡¼¥É: 'compatible'" msgid "-N\t\t\tNot fully Vi compatible: 'nocompatible'" -msgstr "-N\t\t\tViÈó¸ß´¹¥â¡¼¥É: 'nocompatible" +msgstr "-N\t\t\tViÈó¸ß´¹¥â¡¼¥É: 'nocompatible'" msgid "-V[N][fname]\t\tBe verbose [level N] [log messages to fname]" msgstr "-V[N][fname]\t\t¥í¥°½ÐÎÏÀßÄê [¥ì¥Ù¥ë N] [¥í¥°¥Õ¥¡¥¤¥ë̾ fname]" @@ -1602,6 +1635,9 @@ msgstr "-T \tü msgid "--not-a-term\t\tSkip warning for input/output not being a terminal" msgstr "--not-a-term\t\tÆþ½ÐÎϤ¬Ã¼Ëö¤Ç¤Ê¤¤¤È¤Î·Ù¹ð¤ò¥¹¥­¥Ã¥×¤¹¤ë" +msgid "--gui-dialog-file {fname} For testing: write dialog text" +msgstr "--gui-dialog-file {fname} ¥Æ¥¹¥ÈÍÑ: ¥À¥¤¥¢¥í¥°¥Æ¥­¥¹¥È¤ò½ñ¤¯" + msgid "--ttyfail\t\tExit if input or output is not a terminal" msgstr "--ttyfail\t\tÆþ½ÐÎϤ¬Ã¼Ëö¤Ç¤Ê¤±¤ì¤Ð½ªÎ»¤¹¤ë" @@ -1692,6 +1728,9 @@ msgstr "--servername \tVim msgid "--startuptime \tWrite startup timing messages to " msgstr "--startuptime \tµ¯Æ°¤Ë¤«¤«¤Ã¤¿»þ´Ö¤Î¾ÜºÙ¤ò ¤Ø½ÐÎϤ¹¤ë" +msgid "--log \t\tStart logging to early" +msgstr "--log \t\tÁá´ü¤Ë ¤Ø¤Î¥í¥®¥ó¥°¤ò³«»Ï¤¹¤ë" + msgid "-i \t\tUse instead of .viminfo" msgstr "-i \t\t.viminfo¤ÎÂå¤ï¤ê¤Ë ¤ò»È¤¦" @@ -1711,20 +1750,6 @@ msgstr "" "\n" "gvim¤Ë¤è¤Ã¤Æ²ò¼á¤µ¤ì¤ë°ú¿ô(Motif¥Ð¡¼¥¸¥ç¥ó):\n" -msgid "" -"\n" -"Arguments recognised by gvim (neXtaw version):\n" -msgstr "" -"\n" -"gvim¤Ë¤è¤Ã¤Æ²ò¼á¤µ¤ì¤ë°ú¿ô(neXtaw¥Ð¡¼¥¸¥ç¥ó):\n" - -msgid "" -"\n" -"Arguments recognised by gvim (Athena version):\n" -msgstr "" -"\n" -"gvim¤Ë¤è¤Ã¤Æ²ò¼á¤µ¤ì¤ë°ú¿ô(Athena¥Ð¡¼¥¸¥ç¥ó):\n" - msgid "-display \tRun Vim on " msgstr "-display \t ¤ÇVim¤ò¼Â¹Ô¤¹¤ë" @@ -1756,9 +1781,6 @@ msgid "-scrollbarwidth Use a scrollbar width of (also: -sw)" msgstr "" "-scrollbarwidth ¥¹¥¯¥í¡¼¥ë¥Ð¡¼¤ÎÉý¤ò ¤Ë¤¹¤ë(ƱµÁ: -sw)" -msgid "-menuheight \tUse a menu bar height of (also: -mh)" -msgstr "-menuheight \t¥á¥Ë¥å¡¼¥Ð¡¼¤Î¹â¤µ¤ò ¤Ë¤¹¤ë(ƱµÁ: -mh)" - msgid "-reverse\t\tUse reverse video (also: -rv)" msgstr "-reverse\t\tȿž±ÇÁü¤ò»ÈÍѤ¹¤ë(ƱµÁ: -rv)" @@ -1793,6 +1815,32 @@ msgstr "-P < msgid "--windowid \tOpen Vim inside another win32 widget" msgstr "--windowid \t°Û¤Ê¤ëWin32 widget¤ÎÆâÉô¤ËVim¤ò³«¤¯" +msgid "Seen modifyOtherKeys: true\n" +msgstr "modifyOtherKeys ¤¬¸¡½Ð¤µ¤ì¤Þ¤·¤¿: true\n" + +msgid "Unknown" +msgstr "ÉÔÌÀ" + +msgid "Off" +msgstr "¥ª¥Õ" + +msgid "On" +msgstr "¥ª¥ó" + +msgid "Disabled" +msgstr "̵¸ú²½" + +msgid "Cleared" +msgstr "¥¯¥ê¥¢" + +#, c-format +msgid "modifyOtherKeys detected: %s\n" +msgstr "modifyOtherKeys ¤¬¸¡½Ð¤µ¤ì¤Þ¤·¤¿: %s\n" + +#, c-format +msgid "Kitty keyboard protocol: %s\n" +msgstr "Kitty ¥­¡¼¥Ü¡¼¥É¥×¥í¥È¥³¥ë: %s\n" + msgid "No abbreviation found" msgstr "û½ÌÆþÎϤϸ«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿" @@ -1919,6 +1967,9 @@ msgstr "??? msgid "??? from here until ???END lines may have been inserted/deleted" msgstr "??? ¤³¤³¤«¤é ???END ¤Þ¤Ç¤Î¹Ô¤¬ÁÞÆþ¤«ºï½ü¤µ¤ì¤¿¤è¤¦¤Ç¤¹" +msgid "??? lines may be missing" +msgstr "???¹Ô¤¬¤Ê¤¤¤è¤¦¤Ç¤¹" + msgid "???END" msgstr "???END" @@ -2191,9 +2242,6 @@ msgstr " msgid "Press ENTER or type command to continue" msgstr "³¤±¤ë¤Ë¤ÏENTER¤ò²¡¤¹¤«¥³¥Þ¥ó¥É¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤" -msgid "Unknown" -msgstr "ÉÔÌÀ" - #, c-format msgid "%s line %ld" msgstr "%s ¹Ô %ld" @@ -2351,10 +2399,6 @@ msgstr "" "\n" "--- ¥ª¥×¥·¥ç¥ó ---" -#, c-format -msgid "For option %s" -msgstr "¥ª¥×¥·¥ç¥ó: %s" - msgid "cannot open " msgstr "³«¤±¤Þ¤»¤ó " @@ -2498,6 +2542,10 @@ msgstr "" msgid "XSMP lost ICE connection" msgstr "XSMP ¤¬ICEÀܳ¤ò¼º¤¤¤Þ¤·¤¿" +#, c-format +msgid "Could not load gpm library: %s" +msgstr "gpm ¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿: %s" + #, c-format msgid "dlerror = \"%s\"" msgstr "dlerror = \"%s\"" @@ -2657,6 +2705,10 @@ msgstr " msgid "recording" msgstr "µ­Ï¿Ãæ" +#, c-format +msgid "Searching for \"%s\" under \"%s\" in \"%s\"" +msgstr "\"%s\" ¤ò \"%s\" °Ê²¼¤Î \"%s\" ¤«¤é¸¡º÷Ãæ" + #, c-format msgid "Searching for \"%s\" in \"%s\"" msgstr "\"%s\" ¤ò \"%s\" ¤«¤é¸¡º÷Ãæ" @@ -3170,16 +3222,16 @@ msgstr "" "\n" " # TO ¥¿¥° FROM ¹Ô in file/text" -#, c-format -msgid "Searching tags file %s" -msgstr "¥¿¥°¥Õ¥¡¥¤¥ë %s ¤ò¸¡º÷Ãæ" +msgid "Ignoring long line in tags file" +msgstr "¥¿¥°¥Õ¥¡¥¤¥ëÆâ¤ÎŤ¤¹Ô¤ò̵»ë¤·¤Þ¤¹" #, c-format msgid "Before byte %ld" msgstr "ľÁ°¤Î %ld ¥Ð¥¤¥È" -msgid "Ignoring long line in tags file" -msgstr "¥¿¥°¥Õ¥¡¥¤¥ëÆâ¤ÎŤ¤¹Ô¤ò̵»ë¤·¤Þ¤¹" +#, c-format +msgid "Searching tags file %s" +msgstr "¥¿¥°¥Õ¥¡¥¤¥ë %s ¤ò¸¡º÷Ãæ" #, c-format msgid "Duplicate field name: %s" @@ -3341,6 +3393,10 @@ msgstr "%s msgid "%s returning %s" msgstr "%s ¤¬ %s ¤òÊÖ¤·¤Þ¤·¤¿" +#, c-format +msgid "Function %s does not need compiling" +msgstr "´Ø¿ô %s ¤Ï¥³¥ó¥Ñ¥¤¥ë¤ÎɬÍפ¬¤¢¤ê¤Þ¤»¤ó" + #, c-format msgid "%s (%s, compiled %s)" msgstr "%s (%s, compiled %s)" @@ -3445,13 +3501,6 @@ msgstr "" "\n" "Huge ÈÇ " -msgid "" -"\n" -"Big version " -msgstr "" -"\n" -"Big ÈÇ " - msgid "" "\n" "Normal version " @@ -3459,13 +3508,6 @@ msgstr "" "\n" "Ä̾ï ÈÇ " -msgid "" -"\n" -"Small version " -msgstr "" -"\n" -"Small ÈÇ " - msgid "" "\n" "Tiny version " @@ -3488,12 +3530,6 @@ msgstr "with GTK2 GUI." msgid "with X11-Motif GUI." msgstr "with X11-Motif GUI." -msgid "with X11-neXtaw GUI." -msgstr "with X11-neXtaw GUI." - -msgid "with X11-Athena GUI." -msgstr "with X11-Athena GUI." - msgid "with Haiku GUI." msgstr "with Haiku GUI." @@ -3821,8 +3857,8 @@ msgstr " msgid "E10: \\ should be followed by /, ? or &" msgstr "E10: \\ ¤Î¸å¤Ï / ¤« ? ¤« & ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" -msgid "E11: Invalid in command-line window; executes, CTRL-C quits" -msgstr "E11: ¥³¥Þ¥ó¥É¥é¥¤¥ó¥¦¥£¥ó¥É¥¦¤Ç¤Ï̵¸ú¤Ç¤¹; ¤Ç¼Â¹Ô, CTRL-C¤Ç¤ä¤á¤ë" +msgid "E11: Invalid in command-line window; :q closes the window" +msgstr "E11: ¥³¥Þ¥ó¥É¥é¥¤¥ó¥¦¥£¥ó¥É¥¦¤Ç¤Ï̵¸ú¤Ç¤¹; :q ¤Ç¥¦¥£¥ó¥É¥¦¤òÊĤ¸¤ë" msgid "E12: Command not allowed from exrc/vimrc in current dir or tag search" msgstr "" @@ -3909,9 +3945,6 @@ msgstr "E37: msgid "E37: No write since last change (add ! to override)" msgstr "E37: ºÇ¸å¤ÎÊѹ¹¤¬Êݸ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (! ¤òÄɲäÇÊѹ¹¤òÇË´þ)" -msgid "E38: Null argument" -msgstr "E38: °ú¿ô¤¬¶õ¤Ç¤¹" - msgid "E39: Number expected" msgstr "E39: ¿ôÃͤ¬Í׵ᤵ¤ì¤Æ¤¤¤Þ¤¹" @@ -3925,12 +3958,6 @@ msgstr "E41: msgid "E42: No Errors" msgstr "E42: ¥¨¥é¡¼¤Ï¤¢¤ê¤Þ¤»¤ó" -msgid "E43: Damaged match string" -msgstr "E43: ³ºÅöʸ»úÎó¤¬ÇË»¤·¤Æ¤¤¤Þ¤¹" - -msgid "E44: Corrupted regexp program" -msgstr "E44: ÉÔÀµ¤ÊÀµµ¬É½¸½¥×¥í¥°¥é¥à¤Ç¤¹" - msgid "E45: 'readonly' option is set (add ! to override)" msgstr "E45: 'readonly' ¥ª¥×¥·¥ç¥ó¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹ (! ¤òÄɲäǾå½ñ¤­)" @@ -3973,7 +4000,6 @@ msgid "E55: Unmatched %s)" msgstr "E55: %s) ¤¬Äà¤ê¹ç¤Ã¤Æ¤¤¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E59: Invalid character after %s@" msgstr "E59: %s@ ¤Î¸å¤ËÉÔÀµ¤Êʸ»ú¤¬¤¢¤ê¤Þ¤·¤¿" @@ -3989,7 +4015,6 @@ msgstr "E61:%s* msgid "E62: Nested %s%c" msgstr "E62:%s%c ¤¬Æþ¤ì»Ò¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹" -# TODO: Capitalise first word of message? msgid "E63: Invalid use of \\_" msgstr "E63: \\_ ¤Î̵¸ú¤Ê»ÈÍÑÊýË¡¤Ç¤¹" @@ -4024,7 +4049,6 @@ msgstr "E71: %s%% msgid "E72: Close error on swap file" msgstr "E72: ¥¹¥ï¥Ã¥×¥Õ¥¡¥¤¥ë¤Î¥¯¥í¡¼¥º»þ¥¨¥é¡¼¤Ç¤¹" -# TODO: Capitalise first word of message? msgid "E73: Tag stack empty" msgstr "E73: ¥¿¥°¥¹¥¿¥Ã¥¯¤¬¶õ¤Ç¤¹" @@ -4268,7 +4292,6 @@ msgstr "E142: msgid "E143: Autocommands unexpectedly deleted new buffer %s" msgstr "E143: ¼«Æ°¥³¥Þ¥ó¥É¤¬Í½´ü¤»¤º¿·¤·¤¤¥Ð¥Ã¥Õ¥¡ %s ¤òºï½ü¤·¤Þ¤·¤¿" -# TODO: Capitalise first word of message? msgid "E144: Non-numeric argument to :z" msgstr "E144: ¿ô¤Ç¤Ï¤Ê¤¤°ú¿ô¤¬ :z ¤ËÅϤµ¤ì¤Þ¤·¤¿" @@ -4373,11 +4396,8 @@ msgstr "E172: #, c-format msgid "E173: %d more file to edit" -msgstr "E173: ÊÔ½¸¤¹¤Ù¤­¥Õ¥¡¥¤¥ë¤¬¤¢¤È %d ¸Ä¤¢¤ê¤Þ¤¹" - -#, c-format -msgid "E173: %d more files to edit" -msgstr "E173: ÊÔ½¸¤¹¤Ù¤­¥Õ¥¡¥¤¥ë¤¬¤¢¤È %d ¸Ä¤¢¤ê¤Þ¤¹" +msgid_plural "E173: %d more files to edit" +msgstr[0] "E173: ÊÔ½¸¤¹¤Ù¤­¥Õ¥¡¥¤¥ë¤¬¤¢¤È %d ¸Ä¤¢¤ê¤Þ¤¹" #, c-format msgid "E174: Command already exists: add ! to replace it: %s" @@ -4396,7 +4416,6 @@ msgid "E178: Invalid default value for count" msgstr "E178: ¥«¥¦¥ó¥È¤Î¾ÊάÃͤ¬Ìµ¸ú¤Ç¤¹" #, c-format -# TODO: Capitalise first word of message? msgid "E179: Argument required for %s" msgstr "E179: %s ¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹" @@ -4488,9 +4507,8 @@ msgstr "E204: msgid "E205: Patchmode: can't save original file" msgstr "E205: patchmode: ¸¶ËÜ¥Õ¥¡¥¤¥ë¤òÊݸ¤Ç¤­¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E206: Patchmode: can't touch empty original file" -msgstr "E206: patchmode: ¶õ¤Î¸¶ËÜ¥Õ¥¡¥¤¥ë¤òtouch¤Ç¤­¤Þ¤»¤ó" +msgstr "E206: Patchmode: ¶õ¤Î¸¶ËÜ¥Õ¥¡¥¤¥ë¤òtouch¤Ç¤­¤Þ¤»¤ó" msgid "E207: Can't delete backup file" msgstr "E207: ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤ò¾Ã¤»¤Þ¤»¤ó" @@ -4535,7 +4553,6 @@ msgstr "E216: msgid "E217: Can't execute autocommands for ALL events" msgstr "E217: Á´¤Æ¤Î¥¤¥Ù¥ó¥È¤ËÂФ·¤Æ¤Î¼«Æ°¥³¥Þ¥ó¥É¤Ï¼Â¹Ô¤Ç¤­¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E218: Autocommand nesting too deep" msgstr "E218: ¼«Æ°¥³¥Þ¥ó¥É¤ÎÆþ¤ì»Ò¤¬¿¼²á¤®¤Þ¤¹" @@ -4548,36 +4565,25 @@ msgstr "E220: } msgid "E221: Marker cannot start with lower case letter" msgstr "E221: ¥Þ¡¼¥«¡¼¤Ï±Ñ¾®Ê¸»ú¤Ç»Ï¤Þ¤Ã¤Æ¤Ï¤¤¤±¤Þ¤»¤ó" -msgid "E222: Add to internal buffer that was already read from" -msgstr "E222: ´û¤ËÆÉ¤ó¤ÀÆâÉô¥Ð¥Ã¥Õ¥¡¤ËÄɲ䷤Ƥ¤¤Þ¤¹" - -# TODO: Capitalise first word of message? msgid "E223: Recursive mapping" msgstr "E223: ºÆµ¢Åª¥Þ¥Ã¥Ô¥ó¥°" #, c-format -# TODO: Capitalise first word of message? msgid "E224: Global abbreviation already exists for %s" msgstr "E224: %s ¤È¤¤¤¦¥°¥í¡¼¥Ð¥ëû½ÌÆþÎϤϴû¤Ë¸ºß¤·¤Þ¤¹" #, c-format -# TODO: Capitalise first word of message? msgid "E225: Global mapping already exists for %s" msgstr "E225: %s ¤È¤¤¤¦¥°¥í¡¼¥Ð¥ë¥Þ¥Ã¥Ô¥ó¥°¤Ï´û¤Ë¸ºß¤·¤Þ¤¹" #, c-format -# TODO: Capitalise first word of message? msgid "E226: Abbreviation already exists for %s" msgstr "E226: %s ¤È¤¤¤¦Ã»½ÌÆþÎϤϴû¤Ë¸ºß¤·¤Þ¤¹" #, c-format -# TODO: Capitalise first word of message? msgid "E227: Mapping already exists for %s" msgstr "E227: %s ¤È¤¤¤¦¥Þ¥Ã¥Ô¥ó¥°¤Ï´û¤Ë¸ºß¤·¤Þ¤¹" -msgid "E228: makemap: Illegal mode" -msgstr "E228: makemap: ÉÔÀµ¤Ê¥â¡¼¥É" - msgid "E229: Cannot start the GUI" msgstr "E229: GUI¤ò³«»Ï¤Ç¤­¤Þ¤»¤ó" @@ -4588,10 +4594,6 @@ msgstr "E230: \"%s\" msgid "E231: 'guifontwide' invalid" msgstr "E231: 'guifontwide' ¤¬Ìµ¸ú¤Ç¤¹" -msgid "E232: Cannot create BalloonEval with both message and callback" -msgstr "E232: ¥á¥Ã¥»¡¼¥¸¤È¥³¡¼¥ë¥Ð¥Ã¥¯¤Î¤¢¤ë BalloonEval ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" - -# TODO: Capitalise first word of message? msgid "E233: Cannot open display" msgstr "E233: ¥Ç¥£¥¹¥×¥ì¥¤¤ò³«¤±¤Þ¤»¤ó" @@ -4644,14 +4646,12 @@ msgid "E246: FileChangedShell autocommand deleted buffer" msgstr "E246: FileChangedShell ¼«Æ°¥³¥Þ¥ó¥É¤¬¥Ð¥Ã¥Õ¥¡¤òºï½ü¤·¤Þ¤·¤¿" #, c-format -# TODO: Capitalise first word of message? msgid "E247: No registered server named \"%s\"" msgstr "E247: \"%s\" ¤È¤¤¤¦Ì¾Á°¤ÎÅÐÏ¿¤µ¤ì¤¿¥µ¡¼¥Ð¡¼¤Ï¤¢¤ê¤Þ¤»¤ó" msgid "E248: Failed to send command to the destination program" msgstr "E248: ÌÜŪ¤Î¥×¥í¥°¥é¥à¤Ø¤Î¥³¥Þ¥ó¥ÉÁ÷¿®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿" -# TODO: Capitalise first word of message? msgid "E249: Window layout changed unexpectedly" msgstr "E249: ͽ´ü¤»¤º¥¦¥£¥ó¥É¥¦¤ÎÇÛÃÖ¤¬ÊѤï¤ê¤Þ¤·¤¿" @@ -4677,7 +4677,6 @@ msgstr "E254: %s msgid "E255: Couldn't read in sign data" msgstr "E255: sign ¤Î¥Ç¡¼¥¿¤òÆÉ¹þ¤á¤Þ¤»¤ó¤Ç¤·¤¿" -# TODO: Capitalise first word of message? msgid "E257: cstag: Tag not found" msgstr "E257: cstag: ¥¿¥°¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" @@ -4685,7 +4684,6 @@ msgid "E258: Unable to send to client" msgstr "E258: ¥¯¥é¥¤¥¢¥ó¥È¤ØÁ÷¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E259: No matches found for cscope query %s of %s" msgstr "E259: cscope¥¯¥¨¥ê¡¼ %s of %s ¤Ë³ºÅö¤¬¤¢¤ê¤Þ¤»¤ó¤Ç¤·¤¿" @@ -4693,12 +4691,10 @@ msgid "E260: Missing name after ->" msgstr "E260: -> ¤Î¸å¤Ë̾Á°¤¬¤¢¤ê¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E261: Cscope connection %s not found" msgstr "E261: cscopeÀܳ %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¤Ç¤·¤¿" #, c-format -# TODO: Capitalise first word of message? msgid "E262: Error reading cscope connection %d" msgstr "E262: cscope¤ÎÀܳ %d ¤òÆÉ¹þ¤ßÃæ¤Î¥¨¥é¡¼¤Ç¤¹" @@ -4721,32 +4717,25 @@ msgstr "" "E266: ¤³¤Î¥³¥Þ¥ó¥É¤Ï̵¸ú¤Ç¤¹¡¢¤´¤á¤ó¤Ê¤µ¤¤: Ruby¥é¥¤¥Ö¥é¥ê¤ò¥í¡¼¥É¤Ç¤­¤Þ¤»¤ó" "¤Ç¤·¤¿¡£" -# TODO: Capitalise first word of message? msgid "E267: Unexpected return" msgstr "E267: ͽ´ü¤»¤Ì return ¤Ç¤¹" -# TODO: Capitalise first word of message? msgid "E268: Unexpected next" msgstr "E268: ͽ´ü¤»¤Ì next ¤Ç¤¹" -# TODO: Capitalise first word of message? msgid "E269: Unexpected break" msgstr "E269: ͽ´ü¤»¤Ì break ¤Ç¤¹" -# TODO: Capitalise first word of message? msgid "E270: Unexpected redo" msgstr "E270: ͽ´ü¤»¤Ì redo ¤Ç¤¹" -# TODO: Capitalise first word of message? msgid "E271: Retry outside of rescue clause" msgstr "E271: rescue ¤Î³°¤Î retry ¤Ç¤¹" -# TODO: Capitalise first word of message? msgid "E272: Unhandled exception" msgstr "E272: ¼è¤ê°·¤ï¤ì¤Ê¤«¤Ã¤¿Îã³°¤¬¤¢¤ê¤Þ¤¹" #, c-format -# TODO: Capitalise first word of message? msgid "E273: Unknown longjmp status %d" msgstr "E273: ̤ÃΤÎlongjmp¾õÂÖ: %d" @@ -4766,15 +4755,9 @@ msgstr "E277: msgid "E279: Sorry, ++shell is not supported on this system" msgstr "E279: ¤´¤á¤ó¤Ê¤µ¤¤¡¢++shell ¤Ï¤³¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" -msgid "" -"E280: TCL FATAL ERROR: reflist corrupt!? Please report this to vim-dev@vim." -"org" -msgstr "" -"E280: TCL Ã×̿Ū¥¨¥é¡¼: reflist ±øÀ÷!? vim-dev@vim.org ¤ËÊó¹ð¤·¤Æ¤¯¤À¤µ¤¤" - #, c-format msgid "E282: Cannot read from \"%s\"" -msgstr "E282: \"%s\"¤«¤éÆÉ¹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó" +msgstr "E282: \"%s\" ¤«¤éÆÉ¹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó" #, c-format msgid "E283: No marks matching \"%s\"" @@ -4792,25 +4775,15 @@ msgstr "E286: msgid "E287: Warning: Could not set destroy callback to IM" msgstr "E287: ·Ù¹ð: IM¤ÎÇ˲õ¥³¡¼¥ë¥Ð¥Ã¥¯¤òÀßÄê¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿" -# TODO: Capitalise first word of message? msgid "E288: Input method doesn't support any style" msgstr "E288: ¥¤¥ó¥×¥Ã¥È¥á¥½¥Ã¥É¤Ï¤É¤ó¤Ê¥¹¥¿¥¤¥ë¤â¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E289: Input method doesn't support my preedit type" msgstr "E289: ¥¤¥ó¥×¥Ã¥È¥á¥½¥Ã¥É¤Ï my preedit type ¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó" msgid "E290: List or number required" msgstr "E290: ¥ê¥¹¥È¤«¿ôÃͤ¬É¬ÍפǤ¹" -#, c-format -msgid "E292: Invalid count for del_bytes(): %ld" -msgstr "E292: del_bytes() ¤È¤·¤ÆÌµ¸ú¤Ê¿ôÃͤǤ¹: %ld" - -# TODO: Capitalise first word of message? -msgid "E293: Block was not locked" -msgstr "E293: ¥Ö¥í¥Ã¥¯¤¬¥í¥Ã¥¯¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" - msgid "E294: Seek error in swap file read" msgstr "E294: ¥¹¥ï¥Ã¥×¥Õ¥¡¥¤¥ëÆÉ¹þ¤ß»þ¤Ë¥·¡¼¥¯¥¨¥é¡¼¤Ç¤¹" @@ -4823,15 +4796,6 @@ msgstr "E296: msgid "E297: Write error in swap file" msgstr "E297: ¥¹¥ï¥Ã¥×¥Õ¥¡¥¤¥ë¤Î½ñ¹þ¤ß¥¨¥é¡¼¤Ç¤¹" -msgid "E298: Didn't get block nr 0?" -msgstr "E298: ¥Ö¥í¥Ã¥¯ 0 ¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó?" - -msgid "E298: Didn't get block nr 1?" -msgstr "E298: ¥Ö¥í¥Ã¥¯ 1 ¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó?" - -msgid "E298: Didn't get block nr 2?" -msgstr "E298: ¥Ö¥í¥Ã¥¯ 2 ¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó?" - msgid "E299: Perl evaluation forbidden in sandbox without the Safe module" msgstr "" "E299: ¥µ¥ó¥É¥Ü¥Ã¥¯¥¹¤Ç¤Ï Safe ¥â¥¸¥å¡¼¥ë¤ò»ÈÍѤ·¤Ê¤¤Perl¥¹¥¯¥ê¥×¥È¤Ï¶Ø¤¸¤é¤ì" @@ -4850,9 +4814,6 @@ msgstr "E302: msgid "E303: Unable to open swap file for \"%s\", recovery impossible" msgstr "E303: \"%s\" ¤Î¥¹¥ï¥Ã¥×¥Õ¥¡¥¤¥ë¤ò³«¤±¤Ê¤¤¤Î¤Ç¥ê¥«¥Ð¥ê¤ÏÉÔ²Äǽ¤Ç¤¹" -msgid "E304: ml_upd_block0(): Didn't get block 0??" -msgstr "E304: ml_upd_block0(): ¥Ö¥í¥Ã¥¯ 0 ¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿??" - #, c-format msgid "E305: No swap file found for %s" msgstr "E305: %s ¤Ë¤Ï¥¹¥ï¥Ã¥×¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" @@ -4890,56 +4851,13 @@ msgstr "E313: msgid "E314: Preserve failed" msgstr "E314: °Ý»ý¤Ë¼ºÇÔ¤·¤Þ¤·¤¿" -#, c-format -# TODO: Capitalise first word of message? -msgid "E315: ml_get: Invalid lnum: %ld" -msgstr "E315: ml_get: ̵¸ú¤Êlnum¤Ç¤¹: %ld" - -#, c-format -# TODO: Capitalise first word of message? -msgid "E316: ml_get: Cannot find line %ld in buffer %d %s" -msgstr "E316: ml_get: ¹Ô %ld ¤ò¥Ð¥Ã¥Õ¥¡ %d %s Æâ¤Ë¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó" - -# TODO: Capitalise first word of message? -msgid "E317: Pointer block id wrong" -msgstr "E317: ¥Ý¥¤¥ó¥¿¥Ö¥í¥Ã¥¯¤ÎID¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹" - -# TODO: Capitalise first word of message? -msgid "E317: Pointer block id wrong 2" -msgstr "E317: ¥Ý¥¤¥ó¥¿¥Ö¥í¥Ã¥¯¤ÎID¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹ 2" - -# TODO: Capitalise first word of message? -msgid "E317: Pointer block id wrong 3" -msgstr "E317: ¥Ý¥¤¥ó¥¿¥Ö¥í¥Ã¥¯¤ÎID¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹ 3" - -# TODO: Capitalise first word of message? -msgid "E317: Pointer block id wrong 4" -msgstr "E317: ¥Ý¥¤¥ó¥¿¥Ö¥í¥Ã¥¯¤ÎID¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹ 4" - -msgid "E318: Updated too many blocks?" -msgstr "E318: ¹¹¿·¤µ¤ì¤¿¥Ö¥í¥Ã¥¯¤¬Â¿²á¤®¤ë¤«¤â?" - msgid "E319: Sorry, the command is not available in this version" msgstr "E319: ¤³¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¤³¤Î¥³¥Þ¥ó¥É¤ÏÍøÍѤǤ­¤Þ¤»¤ó¡¢¤´¤á¤ó¤Ê¤µ¤¤" -#, c-format -msgid "E320: Cannot find line %ld" -msgstr "E320: ¹Ô %ld ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" - #, c-format msgid "E321: Could not reload \"%s\"" msgstr "E321: \"%s\" ¤Ï¥ê¥í¡¼¥É¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿" -#, c-format -# TODO: Capitalise first word of message? -msgid "E322: Line number out of range: %ld past the end" -msgstr "E322: ¹ÔÈֹ椬Èϰϳ°¤Ç¤¹: %ld ͤ¨¤Æ¤¤¤Þ¤¹" - -#, c-format -# TODO: Capitalise first word of message? -msgid "E323: Line count wrong in block %ld" -msgstr "E323: ¥Ö¥í¥Ã¥¯ %ld ¤Î¹Ô¥«¥¦¥ó¥È¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹" - msgid "E324: Can't open PostScript output file" msgstr "E324: PostScript½ÐÎÏÍѤΥե¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó" @@ -4991,8 +4909,8 @@ msgstr "E338: msgid "E339: Pattern too long" msgstr "E339: ¥Ñ¥¿¡¼¥ó¤¬Ä¹²á¤®¤Þ¤¹" -msgid "E341: Internal error: lalloc(0, )" -msgstr "E341: ÆâÉô¥¨¥é¡¼: lalloc(0, )" +msgid "E340: Internal error; if you can reproduce please report a bug" +msgstr "E340: ÆâÉô¥¨¥é¡¼; ºÆ¸½¤Ç¤­¤ë¾ì¹ç¤Ï¥Ð¥°Êó¹ð¤ò¤ª´ê¤¤¤·¤Þ¤¹" #, c-format msgid "E342: Out of memory! (allocating %lu bytes)" @@ -5049,9 +4967,6 @@ msgstr "E354: ̵ msgid "E355: Unknown option: %s" msgstr "E355: ̤ÃΤΥª¥×¥·¥ç¥ó¤Ç¤¹: %s" -msgid "E356: get_varp ERROR" -msgstr "E356: get_varp ¥¨¥é¡¼" - #, c-format msgid "E357: 'langmap': Matching character missing for %s" msgstr "E357: 'langmap': %s ¤ËÂбþ¤¹¤ëʸ»ú¤¬¤¢¤ê¤Þ¤»¤ó" @@ -5069,7 +4984,6 @@ msgstr "E360: -f msgid "E362: Using a boolean value as a Float" msgstr "E362: ¥Ö¡¼¥ëÃͤòÉâÆ°¾®¿ôÅÀ¿ô¤È¤·¤Æ°·¤Ã¤Æ¤¤¤Þ¤¹" -# TODO: Capitalise first word of message? msgid "E363: Pattern uses more memory than 'maxmempattern'" msgstr "E363: ¥Ñ¥¿¡¼¥ó¤¬ 'maxmempattern' °Ê¾å¤Î¥á¥â¥ê¤ò»ÈÍѤ·¤Þ¤¹" @@ -5088,12 +5002,10 @@ msgid "E367: No such group: \"%s\"" msgstr "E367: ¤½¤Î¥°¥ë¡¼¥×¤Ï¤¢¤ê¤Þ¤»¤ó: \"%s\"" #, c-format -# TODO: Capitalise first word of message? msgid "E368: Got SIG%s in libcall()" msgstr "E368: libcall() ¤Ç¡¡SIG%s ¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿" #, c-format -# TODO: Capitalise first word of message? msgid "E369: Invalid item in %s%%[]" msgstr "E369: ̵¸ú¤Ê¹àÌܤǤ¹: %s%%[]" @@ -5147,12 +5059,10 @@ msgid "E383: Invalid search string: %s" msgstr "E383: ̵¸ú¤Ê¸¡º÷ʸ»úÎó¤Ç¤¹: %s" #, c-format -# TODO: Capitalise first word of message? msgid "E384: Search hit TOP without match for: %s" msgstr "E384: ¾å¤Þ¤Ç¸¡º÷¤·¤Þ¤·¤¿¤¬³ºÅö²Õ½ê¤Ï¤¢¤ê¤Þ¤»¤ó: %s" #, c-format -# TODO: Capitalise first word of message? msgid "E385: Search hit BOTTOM without match for: %s" msgstr "E385: ²¼¤Þ¤Ç¸¡º÷¤·¤Þ¤·¤¿¤¬³ºÅö²Õ½ê¤Ï¤¢¤ê¤Þ¤»¤ó: %s" @@ -5187,7 +5097,6 @@ msgstr "E393: msgid "E394: Didn't find region item for %s" msgstr "E394: %s ¤ÎÈϰÏÍ×ÁǤ¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E395: Contains argument not accepted here" msgstr "E395: ¤³¤Î¾ì½ê¤Ç¤Ï°ú¿ôcontains¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" @@ -5213,7 +5122,6 @@ msgstr "E401: msgid "E402: Garbage after pattern: %s" msgstr "E402: ¥Ñ¥¿¡¼¥ó¤Î¤¢¤È¤Ë¥´¥ß¤¬¤¢¤ê¤Þ¤¹: %s" -# TODO: Capitalise first word of message? msgid "E403: syntax sync: Line continuations pattern specified twice" msgstr "E403: ¹½Ê¸Æ±´ü: Ϣ³¹Ô¥Ñ¥¿¡¼¥ó¤¬2ÅÙ»ØÄꤵ¤ì¤Þ¤·¤¿" @@ -5246,7 +5154,6 @@ msgid "E410: Invalid :syntax subcommand: %s" msgstr "E410: ̵¸ú¤Ê :syntax ¤Î¥µ¥Ö¥³¥Þ¥ó¥É¤Ç¤¹: %s" #, c-format -# TODO: Capitalise first word of message? msgid "E411: Highlight group not found: %s" msgstr "E411: ¥Ï¥¤¥é¥¤¥È¥°¥ë¡¼¥×¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: %s" @@ -5258,22 +5165,18 @@ msgstr "E412: msgid "E413: Too many arguments: \":highlight link %s\"" msgstr "E413: °ú¿ô¤¬Â¿²á¤®¤Þ¤¹: \":highlight link %s\"" -# TODO: Capitalise first word of message? msgid "E414: Group has settings, highlight link ignored" msgstr "E414: ¥°¥ë¡¼¥×¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤Î¤Ç¥Ï¥¤¥é¥¤¥È¥ê¥ó¥¯¤Ï̵»ë¤µ¤ì¤Þ¤¹" #, c-format -# TODO: Capitalise first word of message? msgid "E415: Unexpected equal sign: %s" msgstr "E415: ͽ´ü¤»¤ÌÅù¹æ¤Ç¤¹: %s" #, c-format -# TODO: Capitalise first word of message? msgid "E416: Missing equal sign: %s" msgstr "E416: Åù¹æ¤¬¤¢¤ê¤Þ¤»¤ó: %s" #, c-format -# TODO: Capitalise first word of message? msgid "E417: Missing argument: %s" msgstr "E417: °ú¿ô¤¬¤¢¤ê¤Þ¤»¤ó: %s" @@ -5281,6 +5184,9 @@ msgstr "E417: msgid "E418: Illegal value: %s" msgstr "E418: ÉÔÀµ¤ÊÃͤǤ¹: %s" +#~ msgid "E418: I'm a teapot" +#~ msgstr "" + msgid "E419: FG color unknown" msgstr "E419: ̤ÃΤÎÁ°·Ê¿§¤Ç¤¹" @@ -5292,7 +5198,6 @@ msgid "E421: Color name or number not recognized: %s" msgstr "E421: ¥«¥é¡¼Ì¾¤äÈÖ¹æ¤òǧ¼±¤Ç¤­¤Þ¤»¤ó: %s" #, c-format -# TODO: Capitalise first word of message? msgid "E422: Terminal code too long: %s" msgstr "E422: ½ªÃ¼¥³¡¼¥É¤¬Ä¹²á¤®¤Þ¤¹: %s" @@ -5307,7 +5212,6 @@ msgid "E425: Cannot go before first matching tag" msgstr "E425: ºÇ½é¤Î³ºÅö¥¿¥°¤ò±Û¤¨¤ÆÌá¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E426: Tag not found: %s" msgstr "E426: ¥¿¥°¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: %s" @@ -5346,22 +5250,9 @@ msgstr "E435: msgid "E436: No \"%s\" entry in termcap" msgstr "E436: termcap¤Ë \"%s\" ¤Î¥¨¥ó¥È¥ê¤¬¤¢¤ê¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E437: Terminal capability \"cm\" required" msgstr "E437: üËö¤Ë \"cm\" µ¡Ç½¤¬É¬ÍפǤ¹" -# TODO: Capitalise first word of message? -msgid "E438: u_undo: Line numbers wrong" -msgstr "E438: u_undo: ¹ÔÈֹ椬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹" - -# TODO: Capitalise first word of message? -msgid "E439: Undo list corrupt" -msgstr "E439: ¥¢¥ó¥É¥¥¥ê¥¹¥È¤¬²õ¤ì¤Æ¤¤¤Þ¤¹" - -# TODO: Capitalise first word of message? -msgid "E440: Undo line missing" -msgstr "E440: ¥¢¥ó¥É¥¥¹Ô¤¬¤¢¤ê¤Þ¤»¤ó" - msgid "E441: There is no preview window" msgstr "E441: ¥×¥ì¥Ó¥å¡¼¥¦¥£¥ó¥É¥¦¤¬¤¢¤ê¤Þ¤»¤ó" @@ -5391,7 +5282,6 @@ msgstr "E448: msgid "E449: Invalid expression received" msgstr "E449: ̵¸ú¤Ê¼°¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿" -# TODO: Capitalise first word of message? msgid "E450: Buffer number, text or a list required" msgstr "E450: ¥Ð¥Ã¥Õ¥¡Èֹ桢¥Æ¥­¥¹¥È¤Þ¤¿¤Ï¥ê¥¹¥È¤¬É¬ÍפǤ¹" @@ -5405,7 +5295,6 @@ msgstr "E452: msgid "E453: UL color unknown" msgstr "E453: ̤ÃΤβ¼Àþ¿§¤Ç¤¹" -# TODO: Capitalise first word of message? msgid "E454: Function list was modified" msgstr "E454: ´Ø¿ô¥ê¥¹¥È¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿" @@ -5430,7 +5319,6 @@ msgstr "E458: msgid "E459: Cannot go back to previous directory" msgstr "E459: Á°¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÌá¤ì¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E460: Entries missing in mapset() dict argument" msgstr "E460: mapset() ¤Î¼­½ñ°ú¿ô¤ÎÍ×ÁǤ¬Â­¤ê¤Þ¤»¤ó" @@ -5465,7 +5353,6 @@ msgid "E468: Completion argument only allowed for custom completion" msgstr "E468: Êä´°°ú¿ô¤Ï¥«¥¹¥¿¥àÊä´°¤Ç¤·¤«»ÈÍѤǤ­¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E469: Invalid cscopequickfix flag %c for %c" msgstr "E469: ̵¸ú¤Ê cscopequickfix ¥Õ¥é¥° %c ¤Î %c ¤Ç¤¹" @@ -5478,9 +5365,6 @@ msgstr "E471: msgid "E472: Command failed" msgstr "E472: ¥³¥Þ¥ó¥É¤¬¼ºÇÔ¤·¤Þ¤·¤¿" -msgid "E473: Internal error in regexp" -msgstr "E473: Àµµ¬É½¸½¤ÎÆâÉô¥¨¥é¡¼¤Ç¤¹" - msgid "E474: Invalid argument" msgstr "E474: ̵¸ú¤Ê°ú¿ô¤Ç¤¹" @@ -5503,6 +5387,10 @@ msgstr "E476: ̵ msgid "E476: Invalid command: %s" msgstr "E476: ̵¸ú¤Ê¥³¥Þ¥ó¥É¤Ç¤¹: %s" +#, c-format +msgid "E476: Invalid command: %s, expected %s" +msgstr "E476: ̵¸ú¤Ê¥³¥Þ¥ó¥É¤Ç¤¹: %s, %s ¤ò´üÂÔ¤·¤Æ¤¤¤Þ¤·¤¿" + msgid "E477: No ! allowed" msgstr "E477: ! ¤Ïµö²Ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" @@ -5544,6 +5432,10 @@ msgstr "E486: msgid "E487: Argument must be positive" msgstr "E487: °ú¿ô¤ÏÀµ¤ÎÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" +#, c-format +msgid "E487: Argument must be positive: %s" +msgstr "E487: °ú¿ô¤ÏÀµ¤ÎÃͤǤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó: %s" + msgid "E488: Trailing characters" msgstr "E488: ;ʬ¤Êʸ»ú¤¬¸å¤í¤Ë¤¢¤ê¤Þ¤¹" @@ -5551,17 +5443,15 @@ msgstr "E488: ;ʬ msgid "E488: Trailing characters: %s" msgstr "E488: ;ʬ¤Êʸ»ú¤¬¸å¤í¤Ë¤¢¤ê¤Þ¤¹: %s" -# TODO: Capitalise first word of message? msgid "E489: No call stack to substitute for \"\"" -msgstr "E489: \"\"¤òÃÖ¤­´¹¤¨¤ë¥³¡¼¥ë¥¹¥¿¥Ã¥¯¤¬¤¢¤ê¤Þ¤»¤ó" +msgstr "E489: \"\" ¤òÃÖ¤­´¹¤¨¤ë¥³¡¼¥ë¥¹¥¿¥Ã¥¯¤¬¤¢¤ê¤Þ¤»¤ó" msgid "E490: No fold found" msgstr "E490: ÀÞ¾ö¤ß¤¬¤¢¤ê¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E491: JSON decode error at '%s'" -msgstr "E491: '%s' ¤Çjson¥Ç¥³¡¼¥É¥¨¥é¡¼" +msgstr "E491: '%s' ¤ÇJSON¥Ç¥³¡¼¥É¥¨¥é¡¼" msgid "E492: Not an editor command" msgstr "E492: ¥¨¥Ç¥£¥¿¤Î¥³¥Þ¥ó¥É¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" @@ -5572,21 +5462,17 @@ msgstr "E493: msgid "E494: Use w or w>>" msgstr "E494: w ¤â¤·¤¯¤Ï w>> ¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤" -# TODO: Capitalise first word of message? msgid "E495: No autocommand file name to substitute for \"\"" -msgstr "E495: \"\"¤òÃÖ¤­´¹¤¨¤ë¼«Æ°¥³¥Þ¥ó¥É¤Î¥Õ¥¡¥¤¥ë̾¤¬¤¢¤ê¤Þ¤»¤ó" +msgstr "E495: \"\" ¤òÃÖ¤­´¹¤¨¤ë¼«Æ°¥³¥Þ¥ó¥É¤Î¥Õ¥¡¥¤¥ë̾¤¬¤¢¤ê¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E496: No autocommand buffer number to substitute for \"\"" -msgstr "E496: \"\"¤òÃÖ¤­´¹¤¨¤ë¼«Æ°¥³¥Þ¥ó¥É¥Ð¥Ã¥Õ¥¡Èֹ椬¤¢¤ê¤Þ¤»¤ó" +msgstr "E496: \"\" ¤òÃÖ¤­´¹¤¨¤ë¼«Æ°¥³¥Þ¥ó¥É¥Ð¥Ã¥Õ¥¡Èֹ椬¤¢¤ê¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E497: No autocommand match name to substitute for \"\"" -msgstr "E497: \"\"¤òÃÖ¤­´¹¤¨¤ë¼«Æ°¥³¥Þ¥ó¥É¤Î³ºÅö̾¤¬¤¢¤ê¤Þ¤»¤ó" +msgstr "E497: \"\" ¤òÃÖ¤­´¹¤¨¤ë¼«Æ°¥³¥Þ¥ó¥É¤Î³ºÅö̾¤¬¤¢¤ê¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E498: No :source file name to substitute for \"\"" -msgstr "E498: \"\"¤òÃÖ¤­´¹¤¨¤ë :source Âоݥե¡¥¤¥ë̾¤¬¤¢¤ê¤Þ¤»¤ó" +msgstr "E498: \"\" ¤òÃÖ¤­´¹¤¨¤ë :source Âоݥե¡¥¤¥ë̾¤¬¤¢¤ê¤Þ¤»¤ó" #, no-c-format msgid "E499: Empty file name for '%' or '#', only works with \":p:h\"" @@ -5606,6 +5492,9 @@ msgstr " msgid "E503: \"%s\" is not a file or writable device" msgstr "E503: \"%s\" ¤Ï¥Õ¥¡¥¤¥ë¤Ç¤â½ñ¹þ¤ß²Äǽ¥Ç¥Ð¥¤¥¹¤Ç¤â¤¢¤ê¤Þ¤»¤ó" +#~ msgid "E503: Coffee is currently not available" +#~ msgstr "" + msgid "is read-only (cannot override: \"W\" in 'cpoptions')" msgstr "¤ÏÆÉ¹þÀìÍѤǤ¹ (\"W\" ¤¬ 'cpoptions' ¤Ë¤¢¤ë¤¿¤á¡¢¶¯À©½ñ¹þ¤Ç¤­¤Þ¤»¤ó)" @@ -5633,26 +5522,23 @@ msgstr "E509: msgid "E510: Can't make backup file (add ! to write anyway)" msgstr "E510: ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤òºî¤ì¤Þ¤»¤ó (! ¤òÄɲäǹ½¤ï¤º½ñ¹þ)" -# TODO: Capitalise first word of message? msgid "E511: NetBeans already connected" msgstr "E511: NetBeans¤Ï´û¤ËÀܳ¤·¤Æ¤¤¤Þ¤¹" msgid "E512: Close failed" msgstr "E512: ÊĤ¸¤ë¤³¤È¤Ë¼ºÇÔ" -# TODO: Capitalise first word of message? msgid "E513: Write error, conversion failed (make 'fenc' empty to override)" msgstr "E513: ½ñ¹þ¤ß¥¨¥é¡¼¡¢ÊÑ´¹¼ºÇÔ (¾å½ñ¤¹¤ë¤Ë¤Ï 'fenc' ¤ò¶õ¤Ë¤·¤Æ¤¯¤À¤µ¤¤)" #, c-format msgid "" -"E513: write error, conversion failed in line %ld (make 'fenc' empty to " +"E513: Write error, conversion failed in line %ld (make 'fenc' empty to " "override)" msgstr "" "E513: ½ñ¹þ¤ß¥¨¥é¡¼¡¢ÊÑ´¹¼ºÇÔ¡¢¹Ô¿ô %ld (¾å½ñ¤¹¤ë¤Ë¤Ï 'fenc' ¤ò¶õ¤Ë¤·¤Æ¤¯¤À¤µ" "¤¤)" -# TODO: Capitalise first word of message? msgid "E514: Write error (file system full?)" msgstr "E514: ½ñ¹þ¤ß¥¨¥é¡¼ (¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ËþÇÕ?)" @@ -5712,11 +5598,9 @@ msgstr "E530: GUI msgid "E531: Use \":gui\" to start the GUI" msgstr "E531: GUI¤ò¥¹¥¿¡¼¥È¤¹¤ë¤Ë¤Ï \":gui\" ¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤" -# TODO: Capitalise first word of message? msgid "E532: Highlighting color name too long in defineAnnoType" msgstr "E532: defineAnnoTypeÆâ¤Î¥Ï¥¤¥é¥¤¥È¿§Ì¾¤¬Ä¹¤¹¤®¤Þ¤¹" -# TODO: Capitalise first word of message? msgid "E533: Can't select wide font" msgstr "E533: ¥ï¥¤¥É¥Õ¥©¥ó¥È¤òÁªÂò¤Ç¤­¤Þ¤»¤ó" @@ -5727,7 +5611,6 @@ msgstr "E534: ̵ msgid "E535: Illegal character after <%c>" msgstr "E535: <%c> ¤Î¸å¤ËÉÔÀµ¤Êʸ»ú¤¬¤¢¤ê¤Þ¤¹" -# TODO: Capitalise first word of message? msgid "E536: Comma required" msgstr "E536: ¥³¥ó¥Þ¤¬É¬ÍפǤ¹" @@ -5735,6 +5618,10 @@ msgstr "E536: msgid "E537: 'commentstring' must be empty or contain %s" msgstr "E537: 'commentstring' ¤Ï¶õ¤Ç¤¢¤ë¤« %s ¤ò´Þ¤àɬÍפ¬¤¢¤ê¤Þ¤¹" +#, c-format +msgid "E538: Pattern found in every line: %s" +msgstr "E538: ¥Ñ¥¿¡¼¥ó¤¬Á´¤Æ¤Î¹Ô¤Ç¸«¤Ä¤«¤ê¤Þ¤·¤¿: %s" + #, c-format msgid "E539: Illegal character <%s>" msgstr "E539: ÉÔÀµ¤Êʸ»ú¤Ç¤¹ <%s>" @@ -5742,7 +5629,6 @@ msgstr "E539: msgid "E540: Unclosed expression sequence" msgstr "E540: ¼°¤¬½ªÎ»¤·¤Æ¤¤¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E542: Unbalanced groups" msgstr "E542: ¥°¥ë¡¼¥×¤¬Äà¹ç¤¤¤Þ¤»¤ó" @@ -5761,7 +5647,6 @@ msgstr "E546: msgid "E547: Illegal mouseshape" msgstr "E547: ÉÔÀµ¤Ê 'mouseshape' ¤Ç¤¹" -# TODO: Capitalise first word of message? msgid "E548: Digit expected" msgstr "E548: ¿ôÃͤ¬É¬ÍפǤ¹" @@ -5774,7 +5659,6 @@ msgstr "E550: msgid "E551: Illegal component" msgstr "E551: ÉÔÀµ¤Ê¹½Ê¸Í×ÁǤǤ¹" -# TODO: Capitalise first word of message? msgid "E552: Digit expected" msgstr "E552: ¿ôÃͤ¬É¬ÍפǤ¹" @@ -5785,11 +5669,9 @@ msgstr "E553: msgid "E554: Syntax error in %s{...}" msgstr "E554: %s{...} Æâ¤Ëʸˡ¥¨¥é¡¼¤¬¤¢¤ê¤Þ¤¹" -# TODO: Capitalise first word of message? msgid "E555: At bottom of tag stack" msgstr "E555: ¥¿¥°¥¹¥¿¥Ã¥¯¤ÎËöÈø¤Ç¤¹" -# TODO: Capitalise first word of message? msgid "E556: At top of tag stack" msgstr "E556: ¥¿¥°¥¹¥¿¥Ã¥¯¤ÎÀèÆ¬¤Ç¤¹" @@ -5806,7 +5688,6 @@ msgstr "E559: termcap msgid "E560: Usage: cs[cope] %s" msgstr "E560: »ÈÍÑÊýË¡: cs[cope] %s" -# TODO: Capitalise first word of message? msgid "E561: Unknown cscope search type" msgstr "E561: ̤ÃΤÎcscope¸¡º÷·¿¤Ç¤¹" @@ -5827,18 +5708,12 @@ msgstr "E565: msgid "E566: Could not create cscope pipes" msgstr "E566: cscope¥Ñ¥¤¥×¤òºîÀ®¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿" -# TODO: Capitalise first word of message? msgid "E567: No cscope connections" msgstr "E567: cscopeÀܳ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿" -# TODO: Capitalise first word of message? msgid "E568: Duplicate cscope database not added" msgstr "E568: ½ÅÊ£¤¹¤ëcscope¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÏÄɲ䵤ì¤Þ¤»¤ó¤Ç¤·¤¿" -# TODO: Capitalise first word of message? -msgid "E570: Fatal error in cs_manage_matches" -msgstr "E570: cs_manage_matches ¤ÇÃ×̿Ū¤Ê¥¨¥é¡¼¤Ç¤¹" - msgid "" "E571: Sorry, this command is disabled: the Tcl library could not be loaded." msgstr "" @@ -5846,7 +5721,6 @@ msgstr "" "¤·¤¿¡£" #, c-format -# TODO: Capitalise first word of message? msgid "E572: Exit code %d" msgstr "E572: ½ªÎ»¥³¡¼¥É %d" @@ -5867,14 +5741,9 @@ msgstr "'>' msgid "Illegal register name" msgstr "ÉÔÀµ¤Ê¥ì¥¸¥¹¥¿Ì¾" -msgid "E578: Not allowed to change text here" -msgstr "E578: ¤³¤³¤Ç¥Æ¥­¥¹¥È¤òÊѹ¹¤¹¤ë¤³¤È¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó" - -# TODO: Capitalise first word of message? msgid "E579: :if nesting too deep" msgstr "E579: :if ¤ÎÆþ¤ì»Ò¤¬¿¼²á¤®¤Þ¤¹" -# TODO: Capitalise first word of message? msgid "E579: Block nesting too deep" msgstr "E579: ¥Ö¥í¥Ã¥¯¤ÎÆþ¤ì»Ò¤¬¿¼²á¤®¤Þ¤¹" @@ -5887,7 +5756,6 @@ msgstr "E581: :if msgid "E582: :elseif without :if" msgstr "E582: :if ¤Î¤Ê¤¤ :elseif ¤¬¤¢¤ê¤Þ¤¹" -# TODO: Capitalise first word of message? msgid "E583: Multiple :else" msgstr "E583: Ê£¿ô¤Î :else ¤¬¤¢¤ê¤Þ¤¹" @@ -5935,7 +5803,6 @@ msgstr "E595: 'showbreak' msgid "E596: Invalid font(s)" msgstr "E596: ̵¸ú¤Ê¥Õ¥©¥ó¥È¤Ç¤¹" -# TODO: Capitalise first word of message? msgid "E597: Can't select fontset" msgstr "E597: ¥Õ¥©¥ó¥È¥»¥Ã¥È¤òÁªÂò¤Ç¤­¤Þ¤»¤ó" @@ -5967,7 +5834,6 @@ msgstr "E605: msgid "E606: :finally without :try" msgstr "E606: :try ¤Î¤Ê¤¤ :finally ¤¬¤¢¤ê¤Þ¤¹" -# TODO: Capitalise first word of message? msgid "E607: Multiple :finally" msgstr "E607: Ê£¿ô¤Î :finally ¤¬¤¢¤ê¤Þ¤¹" @@ -5991,26 +5857,21 @@ msgstr "E612: sign msgid "E613: Unknown printer font: %s" msgstr "E613: ̤ÃΤΥץê¥ó¥¿¥ª¥×¥·¥ç¥ó¤Ç¤¹: %s" -msgid "E614: vim_SelFile: can't return to current directory" -msgstr "E614: vim_SelFile: ¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ËÌá¤ì¤Þ¤»¤ó" - -msgid "E615: vim_SelFile: can't get current directory" -msgstr "E615: vim_SelFile: ¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó" +msgid "E614: Class required" +msgstr "E614: ¥¯¥é¥¹¤¬É¬ÍפǤ¹" #, c-format -msgid "E616: vim_SelFile: can't get font %s" -msgstr "E616: vim_SelFile: ¥Õ¥©¥ó¥È %s ¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó" +msgid "E616: Object required for argument %d" +msgstr "E616: °ú¿ô %d ¤Ë¤Ï¥ª¥Ö¥¸¥§¥¯¥È¤¬É¬ÍפǤ¹" msgid "E617: Cannot be changed in the GTK GUI" msgstr "E617: GTK GUI¤Ç¤ÏÊѹ¹¤Ç¤­¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E618: File \"%s\" is not a PostScript resource file" msgstr "E618: ¥Õ¥¡¥¤¥ë \"%s\" ¤Ï PostScript ¥ê¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E619: File \"%s\" is not a supported PostScript resource file" msgstr "E619: ¥Õ¥¡¥¤¥ë \"%s\" ¤ÏÂбþ¤·¤Æ¤¤¤Ê¤¤ PostScript ¥ê¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¤¹" @@ -6033,26 +5894,90 @@ msgid "E624: Can't open file \"%s\"" msgstr "E624: ¥Õ¥¡¥¤¥ë \"%s\" ¤ò³«¤±¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E625: Cannot open cscope database: %s" msgstr "E625: cscope¥Ç¡¼¥¿¥Ù¡¼¥¹: %s ¤ò³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E626: Cannot get cscope database information" msgstr "E626: cscope¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? +msgid "E627: Missing colon: %s" +msgstr "E627: ¥³¥í¥ó¤¬¤¢¤ê¤Þ¤»¤ó: %s" + +#, c-format +msgid "E628: Missing ! or / in: %s" +msgstr "E628: ! ¤Þ¤¿¤Ï / ¤¬¤¢¤ê¤Þ¤»¤ó: %s" + +#, c-format msgid "E630: %s(): Write while not connected" msgstr "E630: %s(): ÈóÀܳ¾õÂ֤ǽñ¹þ¤ß¤Þ¤·¤¿" #, c-format -# TODO: Capitalise first word of message? msgid "E631: %s(): Write failed" msgstr "E631: %s(): ½ñ¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿" +msgid "E632: Invalid buffer identifier in getLength" +msgstr "E632: getLength ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E633: Invalid buffer identifier in getText" +msgstr "E633: getText ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E634: Invalid buffer identifier in remove" +msgstr "E634: remove ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E635: Invalid buffer identifier in insert" +msgstr "E635: insert ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E636: Invalid buffer identifier in create" +msgstr "E636: create ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E637: Invalid buffer identifier in startDocumentListen" +msgstr "E637: startDocumentListen ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E638: Invalid buffer identifier in stopDocumentListen" +msgstr "E638: stopDocumentListen ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E639: Invalid buffer identifier in setTitle" +msgstr "E639: setTitle ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E640: Invalid buffer identifier in initDone" +msgstr "E640: initDone ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E641: Invalid buffer identifier in setBufferNumber" +msgstr "E641: setBufferNumber ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +#, c-format +msgid "E642: File %s not found in setBufferNumber" +msgstr "E642: setBufferNumber ¤Î¥Õ¥¡¥¤¥ë %s ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" + +msgid "E643: Invalid buffer identifier in setFullName" +msgstr "E643: setFullName ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E644: Invalid buffer identifier in editFile" +msgstr "E644: editFile ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E645: Invalid buffer identifier in setVisible" +msgstr "E645: setVisible ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E646: Invalid buffer identifier in setModified" +msgstr "E646: setModified ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E647: Invalid buffer identifier in setDot" +msgstr "E647: setDot ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E648: Invalid buffer identifier in close" +msgstr "E648: close ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E650: Invalid buffer identifier in defineAnnoType" +msgstr "E650: defineAnnoType ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E651: Invalid buffer identifier in addAnno" +msgstr "E651: addAnno ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + +msgid "E652: Invalid buffer identifier in getAnno" +msgstr "E652: getAnno ¤Ë̵¸ú¤Ê¥Ð¥Ã¥Õ¥¡¼±Ê̻Ҥ¬¤¢¤ê¤Þ¤¹" + #, c-format -# TODO: Capitalise first word of message? msgid "E654: Missing delimiter after search pattern: %s" msgstr "E654: ¸¡º÷¥Ñ¥¿¡¼¥ó¤Î¤¢¤È¤Ë¶èÀڤ꤬¤¢¤ê¤Þ¤»¤ó: %s" @@ -6082,7 +6007,6 @@ msgstr "E662: msgid "E663: At end of changelist" msgstr "E663: Êѹ¹¥ê¥¹¥È¤ÎËöÈø" -# TODO: Capitalise first word of message? msgid "E664: Changelist is empty" msgstr "E664: Êѹ¹¥ê¥¹¥È¤¬¶õ¤Ç¤¹" @@ -6090,7 +6014,6 @@ msgid "E665: Cannot start GUI, no valid font found" msgstr "E665: Í­¸ú¤Ê¥Õ¥©¥ó¥È¤¬¸«¤Ä¤«¤é¤Ê¤¤¤Î¤Ç¡¢GUI¤ò³«»Ï¤Ç¤­¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E666: Compiler not supported: %s" msgstr "E666: ¤½¤Î¥³¥ó¥Ñ¥¤¥é¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó: %s" @@ -6128,8 +6051,9 @@ msgstr "" "E675: ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤ò°õºþ¤¹¤ë¤¿¤á¤Î¥Ç¥Õ¥©¥ë¥È¥Õ¥©¥ó¥È¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»" "¤ó¡£" -msgid "E676: No matching autocommands for acwrite buffer" -msgstr "E676: acwrite¥Ð¥Ã¥Õ¥¡¤Î³ºÅö¤¹¤ë¼«Æ°¥³¥Þ¥ó¥É¤Ï¸ºß¤·¤Þ¤»¤ó" +#, c-format +msgid "E676: No matching autocommands for buftype=%s buffer" +msgstr "E676: buftype=%s ¥Ð¥Ã¥Õ¥¡¤Î³ºÅö¤¹¤ë¼«Æ°¥³¥Þ¥ó¥É¤Ï¸ºß¤·¤Þ¤»¤ó" msgid "E677: Error writing temp file" msgstr "E677: °ì»þ¥Õ¥¡¥¤¥ë½ñ¹þ¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿" @@ -6138,7 +6062,6 @@ msgstr "E677: msgid "E678: Invalid character after %s%%[dxouU]" msgstr "E678: %s%%[dxouU] ¤Î¸å¤ËÉÔÀµ¤Êʸ»ú¤¬¤¢¤ê¤Þ¤·¤¿" -# TODO: Capitalise first word of message? msgid "E679: Recursive loop loading syncolor.vim" msgstr "E679: syncolor.vim ¤ÎºÆµ¢¸Æ½Ð¤·¤ò¸¡½Ð¤·¤Þ¤·¤¿" @@ -6156,7 +6079,6 @@ msgid "E683: File name missing or invalid pattern" msgstr "E683: ¥Õ¥¡¥¤¥ë̾¤¬Ìµ¤¤¤«Ìµ¸ú¤Ê¥Ñ¥¿¡¼¥ó¤Ç¤¹" #, c-format -# TODO: Capitalise first word of message? msgid "E684: List index out of range: %ld" msgstr "E684: ¥ê¥¹¥È¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬Èϰϳ°¤Ç¤¹: %ld" @@ -6174,8 +6096,9 @@ msgstr "E687: msgid "E688: More targets than List items" msgstr "E688: ¥¿¡¼¥²¥Ã¥È¤¬¥ê¥¹¥È·¿Æâ¤ÎÍ×ÁǤè¤ê¤â¿¤¤¤Ç¤¹" -msgid "E689: Can only index a List, Dictionary or Blob" -msgstr "E689: ¥ê¥¹¥È·¿¡¢¼­½ñ·¿¡¢Blob·¿°Ê³°¤Ï¥¤¥ó¥Ç¥Ã¥¯¥¹»ØÄê¤Ç¤­¤Þ¤»¤ó" +#, c-format +msgid "E689: Index not allowed after a %s: %s" +msgstr "E689: %s ¤Î¸å¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ïµö¤µ¤ì¤Þ¤»¤ó: %s" msgid "E690: Missing \"in\" after :for" msgstr "E690: :for ¤Î¸å¤Ë \"in\" ¤¬¤¢¤ê¤Þ¤»¤ó" @@ -6186,6 +6109,10 @@ msgstr "E691: msgid "E692: Invalid operation for List" msgstr "E692: ¥ê¥¹¥È·¿¤Ë¤Ï̵¸ú¤ÊÁàºî¤Ç¤¹" +#, c-format +msgid "E693: Class or class typealias required for argument %d" +msgstr "E693: °ú¿ô %d ¤Ë¤Ï¥¯¥é¥¹¤Þ¤¿¤Ï¥¯¥é¥¹¤Î·¿¥¨¥¤¥ê¥¢¥¹¤¬É¬ÍפǤ¹" + msgid "E694: Invalid operation for Funcrefs" msgstr "E694: ´Ø¿ô»²¾È·¿¤Ë¤Ï̵¸ú¤ÊÁàºî¤Ç¤¹" @@ -6200,7 +6127,6 @@ msgstr "E696: msgid "E697: Missing end of List ']': %s" msgstr "E697: ¥ê¥¹¥È·¿¤ÎºÇ¸å¤Ë ']' ¤¬¤¢¤ê¤Þ¤»¤ó: %s" -# TODO: Capitalise first word of message? msgid "E698: Variable nested too deep for making a copy" msgstr "E698: ¥³¥Ô¡¼¤ò¼è¤ë¤Ë¤ÏÊÑ¿ô¤ÎÆþ¤ì»Ò¤¬¿¼²á¤®¤Þ¤¹" @@ -6228,6 +6154,10 @@ msgstr "E704: msgid "E705: Variable name conflicts with existing function: %s" msgstr "E705: ÊÑ¿ô̾¤¬´û¸¤Î´Ø¿ô̾¤È¾×ÆÍ¤·¤Þ¤¹: %s" +#, c-format +msgid "E706: Argument of %s must be a List, String or Dictionary" +msgstr "E706: %s ¤Î°ú¿ô¤Ï¥ê¥¹¥È·¿¡¢Ê¸»úÎó¤Þ¤¿¤Ï¼­½ñ·¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" + #, c-format msgid "E707: Function name conflicts with variable: %s" msgstr "E707: ´Ø¿ô̾¤¬ÊÑ¿ô̾¤È¾×ÆÍ¤·¤Þ¤¹: %s" @@ -6286,7 +6216,6 @@ msgstr "E722: msgid "E723: Missing end of Dictionary '}': %s" msgstr "E723: ¼­½ñ·¿¤ÎºÇ¸å¤Ë '}' ¤¬¤¢¤ê¤Þ¤»¤ó: %s" -# TODO: Capitalise first word of message? msgid "E724: Variable nested too deep for displaying" msgstr "E724: ɽ¼¨¤¹¤ë¤Ë¤ÏÊÑ¿ô¤ÎÆþ¤ì»Ò¤¬¿¼²á¤®¤Þ¤¹" @@ -6358,7 +6287,6 @@ msgstr "E742: msgid "E742: Cannot change value of %s" msgstr "E742: %s ¤ÎÃͤòÊѹ¹¤Ç¤­¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E743: Variable nested too deep for (un)lock" msgstr "E743: (¥¢¥ó)¥í¥Ã¥¯¤¹¤ë¤Ë¤ÏÊÑ¿ô¤ÎÆþ¤ì»Ò¤¬¿¼²á¤®¤Þ¤¹" @@ -6380,7 +6308,6 @@ msgstr "" msgid "E748: No previously used register" msgstr "E748: ¤Þ¤À¥ì¥¸¥¹¥¿¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E749: Empty buffer" msgstr "E749: ¥Ð¥Ã¥Õ¥¡¤¬¶õ¤Ç¤¹" @@ -6495,11 +6422,9 @@ msgid "E781: .sug file doesn't match .spl file: %s" msgstr "E781: .sug ¥Õ¥¡¥¤¥ë¤¬ .spl ¥Õ¥¡¥¤¥ë¤È°ìÃפ·¤Þ¤»¤ó: %s" #, c-format -# TODO: Capitalise first word of message? msgid "E782: Error while reading .sug file: %s" msgstr "E782: .sug ¥Õ¥¡¥¤¥ë¤ÎÆÉ¹þ¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿: %s" -# TODO: Capitalise first word of message? msgid "E783: Duplicate char in MAP entry" msgstr "E783: MAP ¥¨¥ó¥È¥ê¤Ë½Åʣʸ»ú¤¬Â¸ºß¤·¤Þ¤¹" @@ -6584,7 +6509,6 @@ msgstr "E804: '%' msgid "E805: Using a Float as a Number" msgstr "E805: ÉâÆ°¾®¿ôÅÀ¿ô¤ò¿ôÃͤȤ·¤Æ°·¤Ã¤Æ¤¤¤Þ¤¹" -# TODO: Capitalise first word of message? msgid "E806: Using a Float as a String" msgstr "E806: ÉâÆ°¾®¿ôÅÀ¿ô¤òʸ»úÎó¤È¤·¤Æ°·¤Ã¤Æ¤¤¤Þ¤¹" @@ -6664,7 +6588,6 @@ msgid "E828: Cannot open undo file for writing: %s" msgstr "E828: ½ñ¹þ¤ßÍѤ˥¢¥ó¥É¥¥¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: %s" #, c-format -# TODO: Capitalise first word of message? msgid "E829: Write error in undo file: %s" msgstr "E829: ¥¢¥ó¥É¥¥¥Õ¥¡¥¤¥ë¤Î½ñ¹þ¤ß¥¨¥é¡¼¤Ç¤¹: %s" @@ -6672,9 +6595,6 @@ msgstr "E829: msgid "E830: Undo number %ld not found" msgstr "E830: ¥¢¥ó¥É¥¥ÈÖ¹æ %ld ¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó" -msgid "E831: bf_key_init() called with empty password" -msgstr "E831: bf_key_init() ¤¬¶õ¥Ñ¥¹¥ï¡¼¥É¤Ç¸Æ½Ð¤µ¤ì¤Þ¤·¤¿" - #, c-format msgid "E832: Non-encrypted file has encrypted undo file: %s" msgstr "E832: Èó°Å¹æ²½¥Õ¥¡¥¤¥ë¤¬°Å¹æ²½¤µ¤ì¤¿¥¢¥ó¥É¥¥¥Õ¥¡¥¤¥ë¤ò»È¤Ã¤Æ¤Þ¤¹: %s" @@ -6697,7 +6617,6 @@ msgstr "E836: msgid "E837: This Vim cannot execute :py3 after using :python" msgstr "E837: ¤³¤ÎVim¤Ç¤Ï :python ¤ò»È¤Ã¤¿¸å¤Ë :py3 ¤ò»È¤¨¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E838: NetBeans is not supported with this GUI" msgstr "E838: NetBeans¤Ï¤³¤ÎGUI¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó" @@ -6707,14 +6626,12 @@ msgstr "E840: msgid "E841: Reserved name, cannot be used for user defined command" msgstr "E841: ͽÌó̾¤Ê¤Î¤Ç¡¢¥æ¡¼¥¶¡¼ÄêµÁ¥³¥Þ¥ó¥É¤ËÍøÍѤǤ­¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E842: No line number to use for \"\"" -msgstr "E842: \"\"¤òÃÖ¤­´¹¤¨¤ë¹ÔÈֹ椬¤¢¤ê¤Þ¤»¤ó" +msgstr "E842: \"\" ¤òÃÖ¤­´¹¤¨¤ë¹ÔÈֹ椬¤¢¤ê¤Þ¤»¤ó" msgid "E843: Error while updating swap file crypt" msgstr "E843: ¥¹¥ï¥Ã¥×¥Õ¥¡¥¤¥ë¤Î°Å¹æ¤ò¹¹¿·Ãæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿" -# TODO: Capitalise first word of message? msgid "E844: Invalid cchar value" msgstr "E844: ̵¸ú¤Êcchar¤ÎÃͤǤ¹" @@ -6746,7 +6663,6 @@ msgstr "E852: msgid "E853: Duplicate argument name: %s" msgstr "E853: °ú¿ô̾¤¬½ÅÊ£¤·¤Æ¤¤¤Þ¤¹: %s" -# TODO: Capitalise first word of message? msgid "E854: Path too long for completion" msgstr "E854: ¥Ñ¥¹¤¬Ä¹²á¤®¤ÆÊä´°¤Ç¤­¤Þ¤»¤ó" @@ -6770,8 +6686,8 @@ msgstr "E858: msgid "E859: Failed to convert returned python object to a Vim value" msgstr "E859: ÊÖ¤µ¤ì¤¿python¥ª¥Ö¥¸¥§¥¯¥È¤òVim¤ÎÃͤËÊÑ´¹¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿" -msgid "E860: Need 'id' and 'type' with 'both'" -msgstr "E860: 'both' ¤Ë¤Ï 'id' ¤È 'type' ¤ÎξÊý¤¬É¬ÍפǤ¹" +msgid "E860: Need 'id' and 'type' or 'types' with 'both'" +msgstr "E860: 'both' ¤Ë¤Ï 'id' ¤È 'type' ¤Þ¤¿¤Ï 'types' ¤¬É¬ÍפǤ¹" msgid "E861: Cannot open a second popup with a terminal" msgstr "E861: 2¤ÄÌܤÎüËöÉÕ¤­¥Ý¥Ã¥×¥¢¥Ã¥×¤ò³«¤¯¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" @@ -6837,10 +6753,6 @@ msgstr "" msgid "E876: (NFA regexp) Not enough space to store the whole NFA" msgstr "E876: (NFA Àµµ¬É½¸½) NFAÁ´ÂΤòÊݸ¤¹¤ë¤Ë¤Ï¶õ¤­¥¹¥Ú¡¼¥¹¤¬Â­¤ê¤Þ¤»¤ó" -#, c-format -msgid "E877: (NFA regexp) Invalid character class: %d" -msgstr "E877: (NFA Àµµ¬É½¸½) ̵¸ú¤Êʸ»ú¥¯¥é¥¹¤Ç¤¹: %d" - msgid "E878: (NFA regexp) Could not allocate memory for branch traversal!" msgstr "" "E878: (NFA Àµµ¬É½¸½) ¸½ºß²£ÃÇÃæ¤Î¥Ö¥é¥ó¥Á¤Ë½½Ê¬¤Ê¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤é¤ì¤Þ¤»¤ó!" @@ -6858,7 +6770,7 @@ msgid "E882: Uniq compare function failed" msgstr "E882: Uniq ¤ÎÈæ³Ó´Ø¿ô¤¬¼ºÇÔ¤·¤Þ¤·¤¿" msgid "" -"E883: search pattern and expression register may not contain two or more " +"E883: Search pattern and expression register may not contain two or more " "lines" msgstr "E883: ¸¡º÷¥Ñ¥¿¡¼¥ó¤È¼°¥ì¥¸¥¹¥¿¤Ë¤Ï2¹Ô°Ê¾å¤ò´Þ¤á¤é¤ì¤Þ¤»¤ó" @@ -6889,7 +6801,6 @@ msgid "E889: Number required" msgstr "E889: ¿ôÃͤ¬É¬ÍפǤ¹" #, c-format -# TODO: Capitalise first word of message? msgid "E890: Trailing char after ']': %s]%s" msgstr "E890: ']' ¤Î¸å¤í¤Ë;ʬ¤Êʸ»ú¤¬¤¢¤ê¤Þ¤¹: %s]%s" @@ -6939,24 +6850,19 @@ msgstr "E901: channel_open() msgid "E902: Cannot connect to port" msgstr "E902: ¥Ý¡¼¥È¤ËÀܳ¤Ç¤­¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E903: Received command with non-string argument" msgstr "E903: Èóʸ»úÎó¤Î°ú¿ô¤Î¥³¥Þ¥ó¥É¤ò¼õ¿®¤·¤Þ¤·¤¿" -# TODO: Capitalise first word of message? msgid "E904: Last argument for expr/call must be a number" msgstr "E904: expr/call ¤ÎºÇ¸å¤Î°ú¿ô¤Ï¿ô»ú¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E904: Third argument for call must be a list" msgstr "E904: call ¤Î3ÈÖÌܤΰú¿ô¤Ï¥ê¥¹¥È·¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E905: Received unknown command: %s" msgstr "E905: ̤ÃΤΥ³¥Þ¥ó¥É¤ò¼õ¿®¤·¤Þ¤·¤¿: %s" -# TODO: Capitalise first word of message? msgid "E906: Not an open channel" msgstr "E906: ³«¤¤¤Æ¤¤¤Ê¤¤¥Á¥ã¥Í¥ë¤Ç¤¹" @@ -6964,7 +6870,6 @@ msgid "E907: Using a special value as a Float" msgstr "E907: ÆÃ¼ìÃͤòÉâÆ°¾®¿ôÅÀ¿ô¤È¤·¤Æ°·¤Ã¤Æ¤¤¤Þ¤¹" #, c-format -# TODO: Capitalise first word of message? msgid "E908: Using an invalid value as a String: %s" msgstr "E908: ̵¸ú¤ÊÃͤòʸ»úÎó¤È¤·¤Æ°·¤Ã¤Æ¤¤¤Þ¤¹: %s" @@ -6977,7 +6882,6 @@ msgstr "E910: msgid "E911: Using a Job as a Float" msgstr "E911: ¥¸¥ç¥Ö¤òÉâÆ°¾®¿ôÅÀ¿ô¤È¤·¤Æ°·¤Ã¤Æ¤¤¤Þ¤¹" -# TODO: Capitalise first word of message? msgid "E912: Cannot use ch_evalexpr()/ch_sendexpr() with a raw or nl channel" msgstr "" "E912: raw ¤ä nl ¥â¡¼¥É¤Î¥Á¥ã¥Í¥ë¤Ë ch_evalexpr()/ch_sendexpr() ¤Ï»È¤¨¤Þ¤»¤ó" @@ -6991,7 +6895,6 @@ msgstr "E914: msgid "E915: in_io buffer requires in_buf or in_name to be set" msgstr "E915: in_io ¥Ð¥Ã¥Õ¥¡¤Ï in_buf ¤« in_name ¤ÎÀßÄ꤬ɬÍפǤ¹" -# TODO: Capitalise first word of message? msgid "E916: Not a valid job" msgstr "E916: Í­¸ú¤Ê¥¸¥ç¥Ö¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" @@ -7000,7 +6903,6 @@ msgid "E917: Cannot use a callback with %s()" msgstr "E917: %s() ¤Ë¥³¡¼¥ë¥Ð¥Ã¥¯¤Ï»È¤¨¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E918: Buffer must be loaded: %s" msgstr "E918: ¥Ð¥Ã¥Õ¥¡¤¬¥í¡¼¥É¤µ¤ì¤Æ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó: %s" @@ -7014,10 +6916,6 @@ msgstr "E920: _io msgid "E921: Invalid callback argument" msgstr "E921: ̵¸ú¤Ê¥³¡¼¥ë¥Ð¥Ã¥¯°ú¿ô¤Ç¤¹" -# TODO: Capitalise first word of message? -msgid "E922: Expected a dict" -msgstr "E922: ¼­½ñ¤¬´üÂÔ¤µ¤ì¤Æ¤¤¤Þ¤¹" - msgid "E923: Second argument of function() must be a list or a dict" msgstr "E923: function() ¤ÎÂè 2 °ú¿ô¤Ï¥ê¥¹¥È·¿¤Þ¤¿¤Ï¼­½ñ·¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" @@ -7059,7 +6957,6 @@ msgid "E934: Cannot jump to a buffer that does not have a name" msgstr "E934: ̾Á°¤Î̵¤¤¥Ð¥Ã¥Õ¥¡¤Ø¤Ï¥¸¥ã¥ó¥×¤Ç¤­¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E935: Invalid submatch number: %d" msgstr "E935: ̵¸ú¤Ê¥µ¥Ö¥Þ¥Ã¥ÁÈÖ¹æ¤Ç¤¹: %d" @@ -7081,18 +6978,12 @@ msgstr "E939: msgid "E940: Cannot lock or unlock variable %s" msgstr "E940: ÊÑ¿ô %s ¤Ï¥í¥Ã¥¯¤Þ¤¿¤Ï¥¢¥ó¥í¥Ã¥¯¤Ç¤­¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E941: Already started a server" msgstr "E941: ¥µ¡¼¥Ð¡¼¤Ï´û¤Ë³«»Ï¤·¤Æ¤¤¤Þ¤¹" msgid "E942: +clientserver feature not available" msgstr "E942: +clientserver µ¡Ç½¤¬Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹" -msgid "E943: Command table needs to be updated, run 'make cmdidxs'" -msgstr "" -"E943: ¥³¥Þ¥ó¥É¥Æ¡¼¥Ö¥ë¤ò¹¹¿·¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¢'make cmdidxs' ¤ò¼Â¹Ô¤·¤Æ¤¯¤À" -"¤µ¤¤" - msgid "E944: Reverse range in character class" msgstr "E944: ʸ»ú¥¯¥é¥¹¤ÎÈϰϤ¬µÕ¤Ç¤¹" @@ -7151,24 +7042,21 @@ msgstr "E959: ̵ msgid "E960: Problem creating the internal diff" msgstr "E960: ÆâÉôdiffºîÀ®»þ¤ËÌäÂ꤬ȯÀ¸¤·¤Þ¤·¤¿" -# TODO: Capitalise first word of message? msgid "E961: No line number to use for \"\"" -msgstr "E961: \"\"¤òÃÖ¤­´¹¤¨¤ë¹ÔÈֹ椬¤¢¤ê¤Þ¤»¤ó" +msgstr "E961: \"\" ¤òÃÖ¤­´¹¤¨¤ë¹ÔÈֹ椬¤¢¤ê¤Þ¤»¤ó" #, c-format msgid "E962: Invalid action: '%s'" msgstr "E962: ̵¸ú¤ÊÁàºî¤Ç¤¹: '%s'" #, c-format -# TODO: Capitalise first word of message? -msgid "E963: Setting %s to value with wrong type" -msgstr "E963: %s ¤ò´Ö°ã¤Ã¤¿·¿¤ÎÃͤÇÀßÄꤷ¤Æ¤¤¤Þ¤¹" +msgid "E963: Setting v:%s to value with wrong type" +msgstr "E963: v:%s ¤ò´Ö°ã¤Ã¤¿·¿¤ÎÃͤÇÀßÄꤷ¤Æ¤¤¤Þ¤¹" #, c-format msgid "E964: Invalid column number: %ld" msgstr "E964: ̵¸ú¤ÊÎóÈÖ¹æ¤Ç¤¹: %ld" -# TODO: Capitalise first word of message? msgid "E965: Missing property type name" msgstr "E965: ¥×¥í¥Ñ¥Æ¥£¥¿¥¤¥×̾¤¬¤¢¤ê¤Þ¤»¤ó" @@ -7176,10 +7064,6 @@ msgstr "E965: msgid "E966: Invalid line number: %ld" msgstr "E966: ̵¸ú¤Ê¹ÔÈÖ¹æ¤Ç¤¹: %ld" -# TODO: Capitalise first word of message? -msgid "E967: Text property info corrupted" -msgstr "E967: ¥Æ¥­¥¹¥È¥×¥í¥Ñ¥Æ¥£¾ðÊ󤬲õ¤ì¤Æ¤¤¤Þ¤¹" - msgid "E968: Need at least one of 'id' or 'type'" msgstr "E968: ºÇÄã 1 ¸Ä¤Î 'id' ¤Þ¤¿¤Ï 'type' ¤¬É¬ÍפǤ¹" @@ -7220,7 +7104,6 @@ msgstr "E978: Blob msgid "E979: Blob index out of range: %ld" msgstr "E979: Blob¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¤¬Èϰϳ°¤Ç¤¹: %ld" -# TODO: Capitalise first word of message? msgid "E980: Lowlevel input not supported" msgstr "E980: Äã¥ì¥Ù¥ëÆþÎϤϥµ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" @@ -7240,11 +7123,9 @@ msgstr "E984: :scriptversion msgid "E985: .= is not supported with script version >= 2" msgstr "E985: .= ¤Ï¥¹¥¯¥ê¥×¥È¥Ð¡¼¥¸¥ç¥ó 2 °Ê¾å¤Ç¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E986: Cannot modify the tag stack within tagfunc" msgstr "E986: tagfuncÆâ¤Î¥¿¥°¥¹¥¿¥Ã¥¯¤òÊѹ¹¤Ç¤­¤Þ¤»¤ó" -# TODO: Capitalise first word of message? msgid "E987: Invalid return value from tagfunc" msgstr "E987: tagfunc¤«¤é¤ÎÌá¤êÃͤ¬Ìµ¸ú¤Ç¤¹" @@ -7258,7 +7139,6 @@ msgstr "E989: msgid "E990: Missing end marker '%s'" msgstr "E990: ½ªÃ¼¥Þ¡¼¥«¡¼¤¬¤¢¤ê¤Þ¤»¤ó '%s'" -# TODO: Capitalise first word of message? msgid "E991: Cannot use =<< here" msgstr "E991: ¤³¤³¤Ç¤Ï =<< ¤Ï»È¤¨¤Þ¤»¤ó" @@ -7266,7 +7146,6 @@ msgid "E992: Not allowed in a modeline when 'modelineexpr' is off" msgstr "E992: 'modelineexpr' ¤¬¥ª¥Õ¤Î»þ modeline ¤Ç¤Ïµö²Ä¤µ¤ì¤Þ¤»¤ó" #, c-format -# TODO: Capitalise first word of message? msgid "E993: Window %d is not a popup window" msgstr "E993: ¥¦¥£¥ó¥É¥¦ %d ¤Ï¥Ý¥Ã¥×¥¢¥Ã¥×¥¦¥£¥ó¥É¥¦¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" @@ -7328,11 +7207,13 @@ msgstr "E1006: %s msgid "E1007: Mandatory argument after optional argument" msgstr "E1007: ¥ª¥×¥·¥ç¥ó°ú¿ô¤Î¸å¤Ëɬ¿Ü°ú¿ô¤¬¤¢¤ê¤Þ¤¹" -msgid "E1008: Missing " -msgstr "E1008: ¤¬¤¢¤ê¤Þ¤»¤ó" +#, c-format +msgid "E1008: Missing after %s" +msgstr "E1008: ¸å¤Ë ¤¬¤¢¤ê¤Þ¤»¤ó: %s" -msgid "E1009: Missing > after type" -msgstr "E1009: ·¿¤Î¸å¤Ë > ¤¬¤¢¤ê¤Þ¤»¤ó" +#, c-format +msgid "E1009: Missing > after type: %s" +msgstr "E1009: ·¿¤Î¸å¤Ë > ¤¬¤¢¤ê¤Þ¤»¤ó: %s" #, c-format msgid "E1010: Type not recognized: %s" @@ -7458,8 +7339,8 @@ msgid "E1040: Cannot use :scriptversion after :vim9script" msgstr "E1040: :vim9script ¤Î¸å¤Ë :scriptversion ¤Ï»ÈÍѤǤ­¤Þ¤»¤ó" #, c-format -msgid "E1041: Redefining script item %s" -msgstr "E1041: ¥¹¥¯¥ê¥×¥ÈÍ×ÁÇ %s ¤òºÆÄêµÁ¤·¤Æ¤¤¤Þ¤¹" +msgid "E1041: Redefining script item: \"%s\"" +msgstr "E1041: ¥¹¥¯¥ê¥×¥ÈÍ×ÁǤòºÆÄêµÁ¤·¤Æ¤¤¤Þ¤¹: \"%s\"" msgid "E1042: Export can only be used in vim9script" msgstr "E1042: export ¤Ï vim9script ¤ÎÃæ¤Ç¤Î¤ß»ÈÍѤǤ­¤Þ¤¹" @@ -7535,6 +7416,10 @@ msgstr "E1063: v: msgid "E1064: Yank register changed while using it" msgstr "E1064: ¥ä¥ó¥¯¥ì¥¸¥¹¥¿¤¬»ÈÍÑÃæ¤ËÊѹ¹¤µ¤ì¤Þ¤·¤¿" +#, c-format +msgid "E1065: Command cannot be shortened: %s" +msgstr "E1065: ¥³¥Þ¥ó¥É¤òû½Ì¤Ç¤­¤Þ¤»¤ó: %s" + #, c-format msgid "E1066: Cannot declare a register: %s" msgstr "E1066: ¥ì¥¸¥¹¥¿¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó: %s" @@ -7570,13 +7455,16 @@ msgstr "E1074: msgid "E1075: Namespace not supported: %s" msgstr "E1075: ¥Í¡¼¥à¥¹¥Ú¡¼¥¹¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó: %s" -msgid "E1076: This Vim is not compiled with float support" -msgstr "E1076: ¤³¤ÎVim¤ÏÉâÆ°¾®¿ôÅÀ¿ô¥µ¥Ý¡¼¥ÈÉÕ¤­¤Ç¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" - #, c-format msgid "E1077: Missing argument type for %s" msgstr "E1077: %s ¤Î°ú¿ô¤Î·¿¤¬¤¢¤ê¤Þ¤»¤ó" +msgid "E1078: Invalid command \"nested\", did you mean \"++nested\"?" +msgstr "E1078: ÉÔÀµ¤Ê¥³¥Þ¥ó¥É \"nested\"¡£\"++nested\" ¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¤«?" + +msgid "E1079: Cannot declare a variable on the command line" +msgstr "E1079: ¥³¥Þ¥ó¥É¥é¥¤¥ó¤ÇÊÑ¿ô¤ÏÀë¸À¤Ç¤­¤Þ¤»¤ó" + msgid "E1080: Invalid assignment" msgstr "E1080: ̵¸ú¤ÊÂåÆþ¤Ç¤¹" @@ -7592,15 +7480,12 @@ msgstr "E1083: #, c-format msgid "E1084: Cannot delete Vim9 script function %s" -msgstr "E1084: Vim9 ¥¹¥¯¥ê¥×¥È´Ø¿ô¤Ïºï½ü¤Ç¤­¤Þ¤»¤ó: %s" +msgstr "E1084: Vim9 script ´Ø¿ô¤Ïºï½ü¤Ç¤­¤Þ¤»¤ó: %s" #, c-format msgid "E1085: Not a callable type: %s" msgstr "E1085: ¸Æ½Ð¤·²Äǽ¤Ê·¿¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %s" -msgid "E1086: Function reference invalid" -msgstr "E1086: ´Ø¿ô»²¾È¤¬ÉÔÀµ¤Ç¤¹" - msgid "E1087: Cannot use an index when declaring a variable" msgstr "E1087: ÊÑ¿ô¤òÀë¸À¤¹¤ëºÝ¤Ë¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ï»ÈÍѤǤ­¤Þ¤»¤ó" @@ -7629,8 +7514,9 @@ msgstr "E1093: %d msgid "E1094: Import can only be used in a script" msgstr "E1094: import ¤Ï¥¹¥¯¥ê¥×¥È¤ÎÃæ¤Ç¤Î¤ß»ÈÍѤǤ­¤Þ¤¹" -msgid "E1095: Unreachable code after :return" -msgstr "E1095: :return ¤Î¸å¤ËÅþãÉÔǽ¤Ê¥³¡¼¥É¤¬¤¢¤ê¤Þ¤¹" +#, c-format +msgid "E1095: Unreachable code after :%s" +msgstr "E1095: :%s ¤Î¸å¤ËÅþãÉÔǽ¤Ê¥³¡¼¥É¤¬¤¢¤ê¤Þ¤¹" msgid "E1096: Returning a value in a function without a return type" msgstr "E1096: Ìá¤êÃͤη¿¤¬¤Ê¤¤´Ø¿ô¤ÇÃͤòÊÖ¤·¤Æ¤¤¤Þ¤¹" @@ -7648,7 +7534,7 @@ msgstr "E1099: %s #, c-format msgid "E1100: Command not supported in Vim9 script (missing :var?): %s" msgstr "" -"E1100: ¥³¥Þ¥ó¥É¤¬ Vim9 ¥¹¥¯¥ê¥×¥È¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (:var ¤¬¤Ê¤¤?): %s" +"E1100: ¥³¥Þ¥ó¥É¤¬ Vim9 script ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó (:var ¤¬¤Ê¤¤?): %s" #, c-format msgid "E1101: Cannot declare a script variable in a function: %s" @@ -7668,20 +7554,14 @@ msgstr "E1104: > msgid "E1105: Cannot convert %s to string" msgstr "E1105: %s ¤òʸ»úÎó¤ËÊÑ´¹¤Ç¤­¤Þ¤»¤ó" -msgid "E1106: One argument too many" -msgstr "E1106: °ú¿ô¤¬ 1 ¸Ä¿¤¤¤Ç¤¹" - #, c-format -msgid "E1106: %d arguments too many" -msgstr "E1106: °ú¿ô¤¬ %d ¸Ä¿¤¤¤Ç¤¹" +msgid "E1106: One argument too many" +msgid_plural "E1106: %d arguments too many" +msgstr[0] "E1106: °ú¿ô¤¬ %d ¸Ä¿¤¤¤Ç¤¹" msgid "E1107: String, List, Dict or Blob required" msgstr "E1107: ʸ»úÎó·¿¡¢¥ê¥¹¥È·¿¡¢¼­½ñ·¿¤Þ¤¿¤ÏBlob·¿¤¬É¬ÍפǤ¹" -#, c-format -msgid "E1108: Item not found: %s" -msgstr "E1108: Í×ÁǤ¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: %s" - #, c-format msgid "E1109: List item %d is not a List" msgstr "E1109: ¥ê¥¹¥È¤ÎÍ×ÁÇ %d ¤Ï¥ê¥¹¥È¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó" @@ -7742,7 +7622,7 @@ msgid "E1125: Final requires a value" msgstr "E1125: final ¤Ë¤ÏÃͤ¬É¬ÍפǤ¹" msgid "E1126: Cannot use :let in Vim9 script" -msgstr "E1126: Vim9 ¥¹¥¯¥ê¥×¥È¤Ç¤Ï :let ¤Ï»ÈÍѤǤ­¤Þ¤»¤ó" +msgstr "E1126: Vim9 script ¤Ç¤Ï :let ¤Ï»ÈÍѤǤ­¤Þ¤»¤ó" msgid "E1127: Missing name after dot" msgstr "E1127: ¥É¥Ã¥È¤Î¸å¤Ë̾Á°¤¬¤¢¤ê¤Þ¤»¤ó" @@ -7776,10 +7656,6 @@ msgid "E1136: mapping must end with before second " msgstr "" "E1136: ¥Þ¥Ã¥Ô¥ó¥°¤Ï¼¡¤Î ¤ÎÁ°¤Ë ¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó" -#, c-format -msgid "E1137: mapping must not include %s key" -msgstr "E1137: ¥Þ¥Ã¥Ô¥ó¥°¤Ï %s ¥­¡¼¤ò´Þ¤ó¤Ç¤Ï¤¤¤±¤Þ¤»¤ó" - msgid "E1138: Using a Bool as a Number" msgstr "E1138: Bool¤ò¿ôÃͤȤ·¤Æ°·¤Ã¤Æ¤¤¤Þ¤¹" @@ -7851,8 +7727,8 @@ msgstr "E1157: msgid "E1158: Cannot use flatten() in Vim9 script, use flattennew()" msgstr "" -"E1158: Vim9 ¥¹¥¯¥ê¥×¥È¤Ç¤Ï flatten() ¤Ï»ÈÍѤǤ­¤Þ¤»¤ó¡¢flattennew() ¤ò»È¤Ã¤Æ" -"¤¯¤À¤µ¤¤" +"E1158: Vim9 script ¤Ç¤Ï flatten() ¤Ï»ÈÍѤǤ­¤Þ¤»¤ó¡¢flattennew() ¤ò»È¤Ã¤Æ¤¯¤À" +"¤µ¤¤" msgid "E1159: Cannot split a window when closing the buffer" msgstr "E1159: ¥Ð¥Ã¥Õ¥¡¤òÊĤ¸¤Æ¤¤¤ë´Ö¤Ë¥¦¥£¥ó¥É¥¦¤òʬ³ä¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó" @@ -7944,6 +7820,10 @@ msgstr "E1180: msgid "E1181: Cannot use an underscore here" msgstr "E1181: ¤³¤³¤Ç¤Ï¥¢¥ó¥À¡¼¥¹¥³¥¢¤Ï»È¤¨¤Þ¤»¤ó" +#, c-format +msgid "E1182: Cannot define a dict function in Vim9 script: %s" +msgstr "E1182: Vim9 script ¤Ç¤Ï¼­½ñÍÑ´Ø¿ô¤ÏÄêµÁ¤Ç¤­¤Þ¤»¤ó: %s" + #, c-format msgid "E1183: Cannot use a range with an assignment operator: %s" msgstr "E1183: ÂåÆþ±é»»»Ò¤ÇÈϰϤϻÈÍѤǤ­¤Þ¤»¤ó: %s" @@ -7968,12 +7848,10 @@ msgstr "E1188: msgid "E1189: Cannot use :legacy with this command: %s" msgstr "E1189: ¤³¤Î¥³¥Þ¥ó¥É¤Ë¤Ï :legacy ¤ò»ÈÍѤǤ­¤Þ¤»¤ó: %s" -msgid "E1190: One argument too few" -msgstr "E1190: °ú¿ô¤¬ 1 ¸Ä¾¯¤Ê¤¤¤Ç¤¹" - #, c-format -msgid "E1190: %d arguments too few" -msgstr "E1190: °ú¿ô¤¬ %d ¸Ä¾¯¤Ê¤¤¤Ç¤¹" +msgid "E1190: One argument too few" +msgid_plural "E1190: %d arguments too few" +msgstr[0] "E1190: °ú¿ô¤¬ %d ¸Ä¾¯¤Ê¤¤¤Ç¤¹" #, c-format msgid "E1191: Call to function that failed to compile: %s" @@ -8014,8 +7892,8 @@ msgid "E1202: No white space allowed after '%s': %s" msgstr "E1202: '%s' ¤Î¸å¤Ë¥¹¥Ú¡¼¥¹¤Ïµö¤µ¤ì¤Þ¤»¤ó: %s" #, c-format -msgid "E1203: Dot can only be used on a dictionary: %s" -msgstr "E1203: ¥É¥Ã¥È¤Ï¼­½ñ¤ÎÃæ¤Ç¤Î¤ß»ÈÍѤǤ­¤Þ¤¹: %s" +msgid "E1203: Dot not allowed after a %s: %s" +msgstr "E1203: %s ¤Î¸å¤Ë¥É¥Ã¥È¤Ïµö¤µ¤ì¤Þ¤»¤ó: %s" #, c-format msgid "E1204: No Number allowed after .: '\\%%%c'" @@ -8136,9 +8014,6 @@ msgstr "E1233: exists_compiled() msgid "E1234: legacy must be followed by a command" msgstr "E1234: legacy ¤Ï¸å¤í¤Ë¥³¥Þ¥ó¥É¤¬É¬ÍפǤ¹" -msgid "E1235: Function reference is not set" -msgstr "E1235: ´Ø¿ô»²¾È¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó" - #, c-format msgid "E1236: Cannot use %s itself, it is imported" msgstr "E1236: %s ¼«¿È¤ò»È¤¦¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡¢¥¤¥ó¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤¹" @@ -8201,10 +8076,6 @@ msgstr "E1251: msgid "E1252: String, List or Blob required for argument %d" msgstr "E1252: °ú¿ô %d ¤Ë¤Ïʸ»úÎ󡢥ꥹ¥È¤Þ¤¿¤ÏBlob¤¬É¬ÍפǤ¹" -#, c-format -msgid "E1253: String expected for argument %d" -msgstr "E1253: °ú¿ô %d ¤Ë¤Ïʸ»úÎó¤¬É¬ÍפǤ¹" - msgid "E1254: Cannot use script variable in for loop" msgstr "E1254: for¥ë¡¼¥×Æâ¤Ç¥¹¥¯¥ê¥×¥ÈÊÑ¿ô¤Ï»ÈÍѤǤ­¤Þ¤»¤ó" @@ -8240,11 +8111,10 @@ msgstr "E1261: \"as\" msgid "E1262: Cannot import the same script twice: %s" msgstr "E1262: Ʊ¤¸¥¹¥¯¥ê¥×¥È¤ò2²ó¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó: %s" -# TODO: Capitalise first word of message? msgid "E1263: Cannot use name with # in Vim9 script, use export instead" msgstr "" -"E1263: Vim9 ¥¹¥¯¥ê¥×¥È¤Ç¤Ï # Æþ¤ê¤Î̾Á°¤Ï»ÈÍѤǤ­¤Þ¤»¤ó¡¢Âå¤ï¤ê¤Ë export ¤ò»È" -"ÍѤ·¤Æ¤¯¤À¤µ¤¤" +"E1263: Vim9 script ¤Ç¤Ï # Æþ¤ê¤Î̾Á°¤Ï»ÈÍѤǤ­¤Þ¤»¤ó¡¢Âå¤ï¤ê¤Ë export ¤ò»ÈÍÑ" +"¤·¤Æ¤¯¤À¤µ¤¤" #, c-format msgid "E1264: Autoload import cannot use absolute or relative path: %s" @@ -8267,15 +8137,613 @@ msgstr "E1267: #, c-format msgid "E1268: Cannot use s: in Vim9 script: %s" -msgstr "E1268: Vim9 ¥¹¥¯¥ê¥×¥È¤Ç¤Ï :s ¤Ï»ÈÍѤǤ­¤Þ¤»¤ó: %s" +msgstr "E1268: Vim9 script ¤Ç¤Ï s: ¤Ï»ÈÍѤǤ­¤Þ¤»¤ó: %s" #, c-format msgid "E1269: Cannot create a Vim9 script variable in a function: %s" -msgstr "E1269: ´Ø¿ôÆâ¤Ç Vim9 ¥¹¥¯¥ê¥×¥ÈÊÑ¿ô¤ÏºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" +msgstr "E1269: ´Ø¿ôÆâ¤Ç Vim9 script ÊÑ¿ô¤ÏºîÀ®¤Ç¤­¤Þ¤»¤ó: %s" + +msgid "E1270: Cannot use :s\\/sub/ in Vim9 script" +msgstr "E1270: Vim9 script ¤Ç¤Ï :s\\/sub/ ¤Ï»ÈÍѤǤ­¤Þ¤»¤ó" + +#, c-format +msgid "E1271: Compiling closure without context: %s" +msgstr "E1271: ʸ̵̮¤·¤Î¥¯¥í¡¼¥¸¥ã¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤è¤¦¤È¤·¤Æ¤¤¤Þ¤¹: %s" + +#, c-format +msgid "E1272: Using type not in a script context: %s" +msgstr "E1272: ¥¹¥¯¥ê¥×¥È°Ê³°¤Ç·¿¤¬»È¤ï¤ì¤Þ¤·¤¿: %s" + +#, c-format +msgid "E1273: (NFA regexp) missing value in '\\%%%c'" +msgstr "E1273: (NFA Àµµ¬É½¸½) '\\%%%c' ¤ËÃͤ¬¤¢¤ê¤Þ¤»¤ó" + +msgid "E1274: No script file name to substitute for \"