aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/snippet.lua
diff options
context:
space:
mode:
authorMaria José Solano <majosolano99@gmail.com>2023-10-22 22:38:11 -0700
committerMathias Fußenegger <mfussenegger@users.noreply.github.com>2023-10-23 17:21:41 +0200
commit94127cb5df0a513e66777d18a2c7fa6219404280 (patch)
treea382c4cc0fd5fa9045bc48e918a889c072fd514f /runtime/lua/vim/snippet.lua
parent370232dbefb91b7ee773ee9a61a9b1ad77d7f1af (diff)
downloadrneovim-94127cb5df0a513e66777d18a2c7fa6219404280.tar.gz
rneovim-94127cb5df0a513e66777d18a2c7fa6219404280.tar.bz2
rneovim-94127cb5df0a513e66777d18a2c7fa6219404280.zip
fix(lsp): do not add extra indentation
Diffstat (limited to 'runtime/lua/vim/snippet.lua')
-rw-r--r--runtime/lua/vim/snippet.lua7
1 files changed, 4 insertions, 3 deletions
diff --git a/runtime/lua/vim/snippet.lua b/runtime/lua/vim/snippet.lua
index 3fe8ab2d48..7680d2e216 100644
--- a/runtime/lua/vim/snippet.lua
+++ b/runtime/lua/vim/snippet.lua
@@ -346,6 +346,7 @@ end
function M.expand(input)
local snippet = G.parse(input)
local snippet_text = {}
+ local base_indent = vim.api.nvim_get_current_line():match('^%s*') or ''
-- Get the placeholders we should use for each tabstop index.
--- @type table<integer, string>
@@ -377,10 +378,10 @@ function M.expand(input)
---
--- @param text string|string[]
local function append_to_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.
- local base_indent = vim.api.nvim_get_current_line():match('^%s*') or ''
- if #snippet_text > 0 then
- base_indent = base_indent .. (snippet_text[#snippet_text]:match('^%s*') or '') --- @type string
+ if #snippet_lines > 0 then
+ base_indent = base_indent .. (snippet_lines[#snippet_lines]:match('(^%s*)%S') or '') --- @type string
end
local lines = vim.iter.map(function(i, line)