aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/snippet_spec.lua
diff options
context:
space:
mode:
authorMaria José Solano <majosolano99@gmail.com>2023-10-26 22:53:38 -0700
committerMathias Fußenegger <mfussenegger@users.noreply.github.com>2023-11-17 17:10:27 +0100
commit7e36c8e972f0b2e07c6186aa5dca2f70d95a77f2 (patch)
tree1e50f10ff873aa7c92f29ee4cbdb35fa42490770 /test/functional/lua/snippet_spec.lua
parentad867fee26c8124d23693823b56f849e4487b828 (diff)
downloadrneovim-7e36c8e972f0b2e07c6186aa5dca2f70d95a77f2.tar.gz
rneovim-7e36c8e972f0b2e07c6186aa5dca2f70d95a77f2.tar.bz2
rneovim-7e36c8e972f0b2e07c6186aa5dca2f70d95a77f2.zip
feat(lsp): support for choice snippet nodes
Diffstat (limited to 'test/functional/lua/snippet_spec.lua')
-rw-r--r--test/functional/lua/snippet_spec.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/functional/lua/snippet_spec.lua b/test/functional/lua/snippet_spec.lua
index 70337d1572..bf43d5114f 100644
--- a/test/functional/lua/snippet_spec.lua
+++ b/test/functional/lua/snippet_spec.lua
@@ -6,6 +6,7 @@ local exec_lua = helpers.exec_lua
local feed = helpers.feed
local matches = helpers.matches
local pcall_err = helpers.pcall_err
+local sleep = helpers.sleep
describe('vim.snippet', function()
before_each(function()
@@ -171,4 +172,30 @@ describe('vim.snippet', function()
feed('<esc>O-- A comment')
eq(false, exec_lua('return vim.snippet.active()'))
end)
+
+ it('inserts choice', function ()
+ test_success({ 'console.${1|assert,log,error|}()' }, { 'console.()' })
+ sleep(100)
+ feed('<Down><C-y>')
+ eq({ 'console.log()' }, helpers.buf_lines(0))
+ end)
+
+ it('closes the choice completion menu when jumping', function ()
+ test_success({ 'console.${1|assert,log,error|}($2)' }, { 'console.()' })
+ sleep(100)
+ exec_lua('vim.snippet.jump(1)')
+ eq(0, exec_lua('return vim.fn.pumvisible()'))
+ end)
+
+ it('jumps to next tabstop after inserting choice', function()
+ test_success(
+ { '${1|public,protected,private|} function ${2:name}() {', '\t$0', '}' },
+ { ' function name() {', '\t', '}' }
+ )
+ sleep(100)
+ feed('<C-y><Tab>')
+ sleep(10)
+ feed('foo')
+ eq({ 'public function foo() {', '\t', '}' }, helpers.buf_lines(0))
+ end)
end)