Use isn for visual selection indentations.
parent
288ed2d452
commit
60a48b8186
|
@ -47,7 +47,7 @@ for {} in {}:
|
|||
})[index])
|
||||
)
|
||||
end, { 1 }),
|
||||
ul.visual_node,
|
||||
ul.visual_dynamic_node(3),
|
||||
}
|
||||
)
|
||||
),
|
||||
|
|
|
@ -2,19 +2,17 @@ local M = {}
|
|||
|
||||
local luasnip = require('luasnip')
|
||||
local types = require('luasnip.util.types')
|
||||
local function_node = require('luasnip').function_node
|
||||
|
||||
M.visual_node = function_node(function(_, snip)
|
||||
local env = snip.env
|
||||
if type(env.LS_SELECT_RAW) ~= 'table' then
|
||||
return env.LS_SELECT_RAW
|
||||
end
|
||||
local res = {}
|
||||
for _, ele in ipairs(env.LS_SELECT_RAW) do
|
||||
table.insert(res, ele)
|
||||
end
|
||||
return res
|
||||
end, {})
|
||||
function M.visual_dynamic_node(pos)
|
||||
local f = luasnip.function_node
|
||||
local isn = luasnip.indent_snippet_node
|
||||
|
||||
return isn(pos, {
|
||||
f(function(_, parent)
|
||||
return parent.snippet.env.LS_SELECT_DEDENT or {}
|
||||
end)
|
||||
}, '$PARENT_INDENT\t')
|
||||
end
|
||||
|
||||
function M.choice_index(choice_node)
|
||||
for i, c in ipairs(choice_node.choices) do
|
||||
|
@ -46,6 +44,11 @@ function M.setup()
|
|||
},
|
||||
}
|
||||
|
||||
-- Track where we are expanding the snippet.
|
||||
luasnip.env_namespace('INFO', {
|
||||
init = function(info) return { POS = info.pos } end,
|
||||
})
|
||||
|
||||
vim.keymap.set({ 'i', 's' }, '<c-e>', function()
|
||||
if luasnip.choice_active() then
|
||||
return '<Plug>luasnip-next-choice'
|
||||
|
|
Loading…
Reference in New Issue