mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	fix(snippet): modify base indentation when there's actually whitespace (#29670)
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							118ae7e5ed
						
					
				
				
					commit
					5fe4ce6678
				
			@@ -514,7 +514,7 @@ function M.expand(input)
 | 
			
		||||
    local snippet_lines = text_to_lines(snippet_text)
 | 
			
		||||
    -- Get the base indentation based on the current line and the last line of the snippet.
 | 
			
		||||
    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
 | 
			
		||||
 | 
			
		||||
    local shiftwidth = vim.fn.shiftwidth()
 | 
			
		||||
 
 | 
			
		||||
@@ -58,7 +58,13 @@ describe('vim.snippet', function()
 | 
			
		||||
  end)
 | 
			
		||||
 | 
			
		||||
  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' })
 | 
			
		||||
 | 
			
		||||
    -- Regression test: #29658
 | 
			
		||||
    api.nvim_buf_set_lines(curbuf, 0, -1, false, {})
 | 
			
		||||
    test_expand_success({ '${1:foo^bar}\n' }, { 'foo^bar', '' })
 | 
			
		||||
  end)
 | 
			
		||||
 | 
			
		||||
  it('replaces tabs with spaces when expandtab is set', function()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user