diff options
-rw-r--r-- | runtime/doc/builtin.txt | 3 | ||||
-rw-r--r-- | runtime/lua/vim/_meta/vimfn.lua | 3 | ||||
-rw-r--r-- | src/nvim/eval.lua | 3 | ||||
-rw-r--r-- | test/old/testdir/vim9.vim | 4 |
4 files changed, 8 insertions, 5 deletions
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index 04c4ce60c3..a51f14aab0 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -4210,7 +4210,8 @@ mapcheck({name} [, {mode} [, {abbr}]]) *mapcheck()* mapnew({expr1}, {expr2}) *mapnew()* Like |map()| but instead of replacing items in {expr1} a new List or Dictionary is created and returned. {expr1} remains - unchanged. + unchanged. Items can still be changed by {expr2}, if you + don't want that use |deepcopy()| first. mapset({mode}, {abbr}, {dict}) *mapset()* Restore a mapping from a dictionary returned by |maparg()|. diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua index 3782f4bf2f..b48e2beb8d 100644 --- a/runtime/lua/vim/_meta/vimfn.lua +++ b/runtime/lua/vim/_meta/vimfn.lua @@ -5082,7 +5082,8 @@ function vim.fn.mapcheck(name, mode, abbr) end --- Like |map()| but instead of replacing items in {expr1} a new --- List or Dictionary is created and returned. {expr1} remains ---- unchanged. +--- unchanged. Items can still be changed by {expr2}, if you +--- don't want that use |deepcopy()| first. --- --- @param expr1 any --- @param expr2 any diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index 8bfea4938b..97b10a46c0 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -6223,7 +6223,8 @@ M.funcs = { desc = [=[ Like |map()| but instead of replacing items in {expr1} a new List or Dictionary is created and returned. {expr1} remains - unchanged. + unchanged. Items can still be changed by {expr2}, if you + don't want that use |deepcopy()| first. ]=], name = 'mapnew', params = { { 'expr1', 'any' }, { 'expr2', 'any' } }, diff --git a/test/old/testdir/vim9.vim b/test/old/testdir/vim9.vim index 1b436d7b3c..825f01c9d6 100644 --- a/test/old/testdir/vim9.vim +++ b/test/old/testdir/vim9.vim @@ -88,7 +88,7 @@ endfunc " Execute "lines" in a legacy function, translated as in " CheckLegacyAndVim9Success() func CheckTransLegacySuccess(lines) - let legacylines = a:lines->deepcopy()->map({_, v -> + let legacylines = a:lines->mapnew({_, v -> \ v->substitute('\<VAR\>', 'let', 'g') \ ->substitute('\<LET\>', 'let', 'g') \ ->substitute('\<LSTART\>', '{', 'g') @@ -131,7 +131,7 @@ func CheckLegacyAndVim9Failure(lines, error) let legacyError = a:error[0] endif - let legacylines = a:lines->deepcopy()->map({_, v -> + let legacylines = a:lines->mapnew({_, v -> \ v->substitute('\<VAR\>', 'let', 'g') \ ->substitute('\<LET\>', 'let', 'g') \ ->substitute('#"', ' "', 'g') |