aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/_meta/vimfn.lua
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-08-17 09:43:00 +0800
committerzeertzjq <zeertzjq@outlook.com>2023-08-17 11:21:10 +0800
commit8cbb2477cf70ea29105e3df17308e6d6a067c8e6 (patch)
treed0f81b872a4220930736f9e276b2eb4eac802f02 /runtime/lua/vim/_meta/vimfn.lua
parent22d9338afceae5f8ef3845f152dea07a19d512d1 (diff)
downloadrneovim-8cbb2477cf70ea29105e3df17308e6d6a067c8e6.tar.gz
rneovim-8cbb2477cf70ea29105e3df17308e6d6a067c8e6.tar.bz2
rneovim-8cbb2477cf70ea29105e3df17308e6d6a067c8e6.zip
vim-patch:8.2.1969: Vim9: map() may change the list or dict item type
Problem: Vim9: map() may change the list or dict item type. Solution: Add mapnew(). https://github.com/vim/vim/commit/ea696852e7abcdebaf7f17a7f23dc90df1f5e2ed Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'runtime/lua/vim/_meta/vimfn.lua')
-rw-r--r--runtime/lua/vim/_meta/vimfn.lua11
1 files changed, 11 insertions, 0 deletions
diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua
index d1173e8a42..3782f4bf2f 100644
--- a/runtime/lua/vim/_meta/vimfn.lua
+++ b/runtime/lua/vim/_meta/vimfn.lua
@@ -4922,6 +4922,8 @@ function vim.fn.log10(expr) end
--- {expr1} must be a |List|, |Blob| or |Dictionary|.
--- Replace each item in {expr1} with the result of evaluating
--- {expr2}. For a |Blob| each byte is replaced.
+--- If the item type changes you may want to use |mapnew()| to
+--- create a new List or Dictionary.
---
--- {expr2} must be a |string| or |Funcref|.
---
@@ -5078,6 +5080,15 @@ function vim.fn.maparg(name, mode, abbr, dict) end
--- @return any
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.
+---
+--- @param expr1 any
+--- @param expr2 any
+--- @return any
+function vim.fn.mapnew(expr1, expr2) end
+
--- Restore a mapping from a dictionary returned by |maparg()|.
--- {mode} and {abbr} should be the same as for the call to
--- |maparg()|. *E460*