diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-08-17 14:12:24 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2023-08-17 15:37:32 +0800 |
commit | b193674b4a1dce1b348489fa13dd42254b9a3ebb (patch) | |
tree | 0f2ba228c173892c16b082236f0eb124ad02fab8 /runtime | |
parent | c5576fcc8003280489c0aa0323a966e6de33e31f (diff) | |
download | rneovim-b193674b4a1dce1b348489fa13dd42254b9a3ebb.tar.gz rneovim-b193674b4a1dce1b348489fa13dd42254b9a3ebb.tar.bz2 rneovim-b193674b4a1dce1b348489fa13dd42254b9a3ebb.zip |
vim-patch:partial:8.2.3849: functions implementing reduce and map are too long
Problem: Functions implementing reduce and map are too long.
Solution: Use a function for each type of value. Add a few more test cases
and add to the help. (Yegappan Lakshmanan, closes vim/vim#9370)
https://github.com/vim/vim/commit/389b72196e6aaeafe3f907c73d271f2c6b931140
Partial port as this doesn't include handling for non-materialized List.
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/doc/builtin.txt | 13 | ||||
-rw-r--r-- | runtime/lua/vim/_meta/vimfn.lua | 13 |
2 files changed, 14 insertions, 12 deletions
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index 6303d73db5..4b617763da 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -1635,8 +1635,8 @@ filter({expr1}, {expr2}) *filter()* of the current item. For a |Dictionary| |v:key| has the key of the current item and for a |List| |v:key| has the index of the current item. For a |Blob| |v:key| has the index of the - current byte. - + current byte. For a |String| |v:key| has the index of the + current character. Examples: >vim call filter(mylist, 'v:val !~ "OLD"') < Removes the items where "OLD" appears. >vim @@ -4080,7 +4080,8 @@ map({expr1}, {expr2}) *map()* of the current item. For a |Dictionary| |v:key| has the key of the current item and for a |List| |v:key| has the index of the current item. For a |Blob| |v:key| has the index of the - current byte. + current byte. For a |String| |v:key| has the index of the + current character. Example: >vim call map(mylist, '"> " .. v:val .. " <"') < This puts "> " before and " <" after each item in "mylist". @@ -5514,9 +5515,9 @@ readfile({fname} [, {type} [, {max}]]) *readfile()* reduce({object}, {func} [, {initial}]) *reduce()* *E998* {func} is called for every item in {object}, which can be a - |String|, |List| or a |Blob|. {func} is called with two arguments: - the result so far and current item. After processing all - items the result is returned. + |String|, |List| or a |Blob|. {func} is called with two + arguments: the result so far and current item. After + processing all items the result is returned. {initial} is the initial result. When omitted, the first item in {object} is used and {func} is first called for the second diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua index 4fe9093666..17eda634e0 100644 --- a/runtime/lua/vim/_meta/vimfn.lua +++ b/runtime/lua/vim/_meta/vimfn.lua @@ -2017,8 +2017,8 @@ function vim.fn.filewritable(file) end --- of the current item. For a |Dictionary| |v:key| has the key --- of the current item and for a |List| |v:key| has the index of --- the current item. For a |Blob| |v:key| has the index of the ---- current byte. ---- +--- current byte. For a |String| |v:key| has the index of the +--- current character. --- Examples: >vim --- call filter(mylist, 'v:val !~ "OLD"') --- <Removes the items where "OLD" appears. >vim @@ -4937,7 +4937,8 @@ function vim.fn.log10(expr) end --- of the current item. For a |Dictionary| |v:key| has the key --- of the current item and for a |List| |v:key| has the index of --- the current item. For a |Blob| |v:key| has the index of the ---- current byte. +--- current byte. For a |String| |v:key| has the index of the +--- current character. --- Example: >vim --- call map(mylist, '"> " .. v:val .. " <"') --- <This puts "> " before and " <" after each item in "mylist". @@ -6551,9 +6552,9 @@ function vim.fn.readdir(directory, expr) end function vim.fn.readfile(fname, type, max) end --- {func} is called for every item in {object}, which can be a ---- |String|, |List| or a |Blob|. {func} is called with two arguments: ---- the result so far and current item. After processing all ---- items the result is returned. +--- |String|, |List| or a |Blob|. {func} is called with two +--- arguments: the result so far and current item. After +--- processing all items the result is returned. --- --- {initial} is the initial result. When omitted, the first item --- in {object} is used and {func} is first called for the second |