mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
fix(snippet): modify base indentation when there's actually whitespace (#29670)
This commit is contained in:
parent
118ae7e5ed
commit
5fe4ce6678
@ -514,7 +514,7 @@ function M.expand(input)
|
|||||||
local snippet_lines = text_to_lines(snippet_text)
|
local snippet_lines = text_to_lines(snippet_text)
|
||||||
-- Get the base indentation based on the current line and the last line of the snippet.
|
-- Get the base indentation based on the current line and the last line of the snippet.
|
||||||
if #snippet_lines > 0 then
|
if #snippet_lines > 0 then
|
||||||
base_indent = base_indent .. (snippet_lines[#snippet_lines]:match('(^%s*)%S') or '') --- @type string
|
base_indent = base_indent .. (snippet_lines[#snippet_lines]:match('(^%s+)%S') or '') --- @type string
|
||||||
end
|
end
|
||||||
|
|
||||||
local shiftwidth = vim.fn.shiftwidth()
|
local shiftwidth = vim.fn.shiftwidth()
|
||||||
|
@ -58,7 +58,13 @@ describe('vim.snippet', function()
|
|||||||
end)
|
end)
|
||||||
|
|
||||||
it('adds indentation based on the start of snippet lines', function()
|
it('adds indentation based on the start of snippet lines', function()
|
||||||
|
local curbuf = api.nvim_get_current_buf()
|
||||||
|
|
||||||
test_expand_success({ 'if $1 then', ' $0', 'end' }, { 'if then', ' ', 'end' })
|
test_expand_success({ 'if $1 then', ' $0', 'end' }, { 'if then', ' ', 'end' })
|
||||||
|
|
||||||
|
-- Regression test: #29658
|
||||||
|
api.nvim_buf_set_lines(curbuf, 0, -1, false, {})
|
||||||
|
test_expand_success({ '${1:foo^bar}\n' }, { 'foo^bar', '' })
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('replaces tabs with spaces when expandtab is set', function()
|
it('replaces tabs with spaces when expandtab is set', function()
|
||||||
|
Loading…
Reference in New Issue
Block a user