aboutsummaryrefslogtreecommitdiff
path: root/test/functional/api/vim_spec.lua
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2024-08-30 12:58:48 +0200
committerGitHub <noreply@github.com>2024-08-30 12:58:48 +0200
commit5f95f1249f464e4f0ceed468ec5a1ba6e810da14 (patch)
tree6113193fda7a7c0f94577a464e39964e74311583 /test/functional/api/vim_spec.lua
parent4353996d0fa8e5872a334d68196d8088391960cf (diff)
parentcfdf68a7acde16597fbd896674af68c42361102c (diff)
downloadrneovim-5f95f1249f464e4f0ceed468ec5a1ba6e810da14.tar.gz
rneovim-5f95f1249f464e4f0ceed468ec5a1ba6e810da14.tar.bz2
rneovim-5f95f1249f464e4f0ceed468ec5a1ba6e810da14.zip
Merge pull request #30014 from bfredl/neoemoji
support emojis with ZWJ and variant selectors
Diffstat (limited to 'test/functional/api/vim_spec.lua')
-rw-r--r--test/functional/api/vim_spec.lua22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua
index 4210b7ecf0..074d3ac0a3 100644
--- a/test/functional/api/vim_spec.lua
+++ b/test/functional/api/vim_spec.lua
@@ -1435,6 +1435,28 @@ describe('API', function()
it('cannot handle NULs', function()
eq(0, api.nvim_strwidth('\0abc'))
end)
+
+ it('can handle emoji with variant selectors and ZWJ', function()
+ local selector = '❤️'
+ eq(2, fn.strchars(selector))
+ eq(1, fn.strcharlen(selector))
+ eq(2, api.nvim_strwidth(selector))
+
+ local no_selector = '❤'
+ eq(1, fn.strchars(no_selector))
+ eq(1, fn.strcharlen(no_selector))
+ eq(1, api.nvim_strwidth(no_selector))
+
+ local selector_zwj_selector = '🏳️‍⚧️'
+ eq(5, fn.strchars(selector_zwj_selector))
+ eq(1, fn.strcharlen(selector_zwj_selector))
+ eq(2, api.nvim_strwidth(selector_zwj_selector))
+
+ local emoji_zwj_emoji = '🧑‍🌾'
+ eq(3, fn.strchars(emoji_zwj_emoji))
+ eq(1, fn.strcharlen(emoji_zwj_emoji))
+ eq(2, api.nvim_strwidth(emoji_zwj_emoji))
+ end)
end)
describe('nvim_get_current_line, nvim_set_current_line', function()