aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-03-23 16:33:53 +0800
committerGitHub <noreply@github.com>2024-03-23 16:33:53 +0800
commit881f5e59173a4f1b9a4cb16e425709e40d79d0e9 (patch)
treec6bab71f98cc606182c29f81f7d454d6a36cacb6 /src
parent2955c921ceaf5764e8d1592a78370d9ca3a268e2 (diff)
downloadrneovim-881f5e59173a4f1b9a4cb16e425709e40d79d0e9.tar.gz
rneovim-881f5e59173a4f1b9a4cb16e425709e40d79d0e9.tar.bz2
rneovim-881f5e59173a4f1b9a4cb16e425709e40d79d0e9.zip
vim-patch:9.1.0199: Not enough tests for the slice() function (#27991)
Problem: Not enough tests for the slice() function. Solution: Test with multibyte chars, and in both Legacy and Vim9 script. Update docs to be clearer about how it treats composing chars. (zeertzjq) closes: vim/vim#14275 https://github.com/vim/vim/commit/ad38769030b5fa86aa0e8f1f0b4266690dfad4c9
Diffstat (limited to 'src')
-rw-r--r--src/nvim/eval.lua9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua
index 7df4ab71ef..6a3eabc467 100644
--- a/src/nvim/eval.lua
+++ b/src/nvim/eval.lua
@@ -10485,7 +10485,8 @@ M.funcs = {
Similar to using a |slice| "expr[start : end]", but "end" is
used exclusive. And for a string the indexes are used as
character indexes instead of byte indexes.
- Also, composing characters are not counted.
+ Also, composing characters are treated as a part of the
+ preceding base character.
When {end} is omitted the slice continues to the last item.
When {end} is -1 the last item is omitted.
Returns an empty value if {start} or {end} are invalid.
@@ -10957,8 +10958,8 @@ M.funcs = {
of byte index and length.
When {skipcc} is omitted or zero, composing characters are
counted separately.
- When {skipcc} set to 1, Composing characters are ignored,
- similar to |slice()|.
+ When {skipcc} set to 1, composing characters are treated as a
+ part of the preceding base character, similar to |slice()|.
When a character index is used where a character does not
exist it is omitted and counted as one character. For
example: >vim
@@ -10981,7 +10982,7 @@ M.funcs = {
in String {string}.
When {skipcc} is omitted or zero, composing characters are
counted separately.
- When {skipcc} set to 1, Composing characters are ignored.
+ When {skipcc} set to 1, composing characters are ignored.
|strcharlen()| always does this.
Returns zero on error.