From add3ed62872bd9e267d53c162ee76f235e0fcb36 Mon Sep 17 00:00:00 2001 From: Wang Shidong Date: Sat, 22 Aug 2020 13:30:47 +0800 Subject: [PATCH] Update date#list api doc (#3722) --- autoload/SpaceVim/api/data/list.vim | 8 ++++ doc/SpaceVim.txt | 8 ++++ docs/cn/api.md | 2 + docs/cn/api/data/list.md | 62 +++++++++++++++++++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 docs/cn/api/data/list.md diff --git a/autoload/SpaceVim/api/data/list.vim b/autoload/SpaceVim/api/data/list.vim index 14e1aed57..9e947bf28 100644 --- a/autoload/SpaceVim/api/data/list.vim +++ b/autoload/SpaceVim/api/data/list.vim @@ -55,6 +55,14 @@ endfunction " unshift({list}) " " insert an item to the begin of the {list} +" +" clear({list}) +" +" clear items in the {list} +" +" char_range({from}, {to}) +" +" return a characters list based on the ascii number range. function! s:pop(list) abort return remove(a:list, -1) diff --git a/doc/SpaceVim.txt b/doc/SpaceVim.txt index d4bdee2c0..50d2bf7fc 100644 --- a/doc/SpaceVim.txt +++ b/doc/SpaceVim.txt @@ -3410,6 +3410,14 @@ unshift({list}) insert an item to the begin of the {list} +clear({list}) + + clear items in the {list} + +char_range({from}, {to}) + + return a characters list based on the ascii number range. + ============================================================================== DATA#STRING *SpaceVim-api-data-string* diff --git a/docs/cn/api.md b/docs/cn/api.md index 4d91b0d16..80c6c9477 100644 --- a/docs/cn/api.md +++ b/docs/cn/api.md @@ -46,6 +46,7 @@ echom s:file.pathSeparator | 名称 | 描述 | | ------------------------------------- | ----------------------------------------------------------------------- | | [data#dict](data/dict/) | data#dict API 提供了一些处理字典变量的常用方法,包括基础的增删改查。 | +| [data#list](data/list/) | data#list 函数库主要提供一些操作列表的常用函数。 | | [data#string](data/string/) | data#string 函数库主要提供一些操作字符串的常用函数。 | | [file](file/) | 文件函数提供了基础的文件读写相关函数,兼容不同系统平台。 | | [job](job/) | 兼容 neovim 和 vim 的异步协同 API,对于旧版 vim 采用非异步机制 | @@ -53,5 +54,6 @@ echom s:file.pathSeparator | [unicode#spinners](unicode/spinners/) | unicode#spinners API 可启用一个定时器,根据指定的名称定时更新进度条符号 | | [vim#command](vim/command/) | vim#command API 提供一些设置和获取 Vim 命令的基础函数。 | | [vim#highlight](vim/highlight/) | vim#highlight API 提供一些设置和获取 Vim 高亮信息的基础函数。 | +| [vim#signatures](vim/signatures/) | vim#signatures API 提供一些设置和获取 Vim 提示消息的函数。 | diff --git a/docs/cn/api/data/list.md b/docs/cn/api/data/list.md new file mode 100644 index 000000000..733d1d696 --- /dev/null +++ b/docs/cn/api/data/list.md @@ -0,0 +1,62 @@ +--- +title: "data#list 函数库" +description: "data#list 函数库主要提供一些操作列表的常用函数。" +lang: zh +--- + +# [可用函数库](../../) >> data#list + + + +- [简介](#简介) +- [函数列表](#函数列表) + + + +## 简介 + +`data#list` 函数提供了一些操作列表的工具方法,以下为使用这一函数的示例: + +```vim +let s:LIST = SpaceVim#api#import('data#list') +let l = [1, 2, 3, 4] +echo s:LIST.pop(l) +" 4 +echo l +" [1, 2, 3] +``` + +## 函数列表 + +- `pop(list)`: 移除并返回列表的最后一个元素。 +- `push(list, var)`: 向列表最后添加一个元素并返回列表。 +- `shift(list)`: 移除并返回列表的第一个元素。 +- `unshift(list, var)`: 向列表最前端添加一个元素,并返回列表。 +- `clear(list)`: 清除列表中的元素。 +- `uniq(list)`: 去除列表中重复的元素,并返回去重后的列表。 +- `uniq_by_func(list, func)`: 依据一个函数,去除列表中元素,并返回去重后的列表。 + + 示例代码如下: + + ```vim + " 去除列表中相同类型的其他元素 + let l = ['a', 'b', 1, 2, 3, 'c'] + func! s:get_type(var) + return type(a:var) + endf + echo s:LIST.uniq_by_func(l, function('s:get_type')) + " ['a', 1] + ``` + +- `char_range(char1, char2)`: 返回一个字符列表,从字符`char1`到`char2`。 +- `has(list, var)`: 检测列表`list`内是否包含元素`var`,若包含则返回`v:true`,否则返回`v:false`。 +- `has_index(list, idx)`: 检测 list 是否包含位置`idx`。 +- `replace(list, begin, end, new_list)`: 替换列表`list`中从位置`begin`至`end`为新的列表`new_list`。 + + 示例代码如下: + + ```vim + let l = ['a', 'b', 'c', 'd', 'e'] + echo s:LIST.replace(l, 1, 3, [1, 2, 3]) + " ['a', 1, 2, 3, 'e'] + ```