diff options
author | glepnir <glephunter@gmail.com> | 2024-02-29 18:50:40 +0800 |
---|---|---|
committer | glepnir <glephunter@gmail.com> | 2024-03-01 14:35:52 +0800 |
commit | a5ade3c63d88e93244c43ff0f0635f4774f890ce (patch) | |
tree | 8c6122e85e42005d592a11536788dd8a522d8730 /test | |
parent | 0eaae1bc057a2a4672d3e485498137a0d2282ad3 (diff) | |
download | rneovim-a5ade3c63d88e93244c43ff0f0635f4774f890ce.tar.gz rneovim-a5ade3c63d88e93244c43ff0f0635f4774f890ce.tar.bz2 rneovim-a5ade3c63d88e93244c43ff0f0635f4774f890ce.zip |
fix(snippet): correct indent with newline
Problem: snippet newline use before line indent after expand.
Solution: it should level + 1.
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/lua/snippet_spec.lua | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/test/functional/lua/snippet_spec.lua b/test/functional/lua/snippet_spec.lua index e981bc6261..d31b8cc7d5 100644 --- a/test/functional/lua/snippet_spec.lua +++ b/test/functional/lua/snippet_spec.lua @@ -5,6 +5,7 @@ local clear = helpers.clear local eq = helpers.eq local exec_lua = helpers.exec_lua local feed = helpers.feed +local api = helpers.api local fn = helpers.fn local matches = helpers.matches local pcall_err = helpers.pcall_err @@ -230,7 +231,7 @@ describe('vim.snippet', function() end) it('updates snippet state when built-in completion menu is visible', function() - test_expand_success({ '$1 = function($2)\n$3\nend' }, { ' = function()', '', 'end' }) + test_expand_success({ '$1 = function($2)\nend' }, { ' = function()', 'end' }) -- Show the completion menu. feed('<C-n>') -- Make sure no item is selected. @@ -238,6 +239,28 @@ describe('vim.snippet', function() -- Jump forward (the 2nd tabstop). exec_lua('vim.snippet.jump(1)') feed('foo') - eq({ ' = function(foo)', '', 'end' }, buf_lines(0)) + eq({ ' = function(foo)', 'end' }, buf_lines(0)) + end) + + it('correctly indents with newlines', function() + local curbuf = api.nvim_get_current_buf() + test_expand_success( + { 'function($2)\n$3\nend' }, + { 'function()', ' ', 'end' }, + [[ + vim.opt.sw = 2 + vim.opt.expandtab = true + ]] + ) + api.nvim_buf_set_lines(curbuf, 0, -1, false, {}) + test_expand_success( + { 'func main() {\n$1\n}' }, + { 'func main() {', '\t', '}' }, + [[ + vim.opt.sw = 4 + vim.opt.ts = 4 + vim.opt.expandtab = false + ]] + ) end) end) |