From 4625394a767fab311f75ef40f4f15c661156e071 Mon Sep 17 00:00:00 2001 From: Mathias Fußenegger Date: Sun, 28 Apr 2024 12:49:25 +0200 Subject: fix(snippet): do not add extra indent on newlines (#28538) Reverts parts of https://github.com/neovim/neovim/pull/27674 LSP snippets typically do include tabs or spaces to add extra indentation and don't rely on the client using `autoindent` functionality. For example: public static void main(String[] args) {\n\t${0}\n} Notice the `\t` after `{\n` Adding spaces or tabs independent of that breaks snippets for languages like Haskell where you can have snippets like: ${1:name} :: ${2}\n${1:name} ${3}= ${0:undefined} To generate: name :: name = undefined --- runtime/lua/vim/snippet.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'runtime/lua/vim/snippet.lua') diff --git a/runtime/lua/vim/snippet.lua b/runtime/lua/vim/snippet.lua index a1e3360b2d..37416c389f 100644 --- a/runtime/lua/vim/snippet.lua +++ b/runtime/lua/vim/snippet.lua @@ -459,8 +459,7 @@ function M.expand(input) end -- Add the base indentation. if i > 1 then - line = #line ~= 0 and base_indent .. line - or (expandtab and (' '):rep(shiftwidth) or '\t'):rep(vim.fn.indent('.') / shiftwidth + 1) + line = base_indent .. line end lines[#lines + 1] = line end -- cgit