From 6d7e524d3d7a71da2cea61b335a59e9544e2a6f7 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Wed, 12 Oct 2022 17:08:51 +0200 Subject: vim: add user command to unlink active snippets --- .vim/lua/snips.lua | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to '.vim') diff --git a/.vim/lua/snips.lua b/.vim/lua/snips.lua index b22d945..318c9f7 100644 --- a/.vim/lua/snips.lua +++ b/.vim/lua/snips.lua @@ -64,14 +64,14 @@ end -- exec: inserts the output of command local exec = function(command) - return ls.f(function(_, _, command_arg) + return ls.f(function(_, _, ...) local results, code = require('plenary.job'):new({ command = vim.env.SHELL, - args = {'-c', command_arg}, + args = {'-c', ...}, enable_recording = true, }):sync() if not code == 0 or #results == 0 then - error(string.format('exec "%s" failed', command_arg)) + error(string.format('exec "%s" failed', ...)) end return results end, {}, {user_args = {command}}) @@ -79,6 +79,9 @@ end ls.setup { ext_opts = { + [types.snippet] = { + active = { virt_text = {{ '<-- luasnip', 'LuasnipIndicator' }}, virt_text_pos = 'right_align' } + }, [types.insertNode] = { unvisited = { hl_group = 'LuasnipIndicator' } }, @@ -111,3 +114,11 @@ ls.setup { require('luasnip.loaders.from_snipmate').lazy_load {paths = './after/snippets'} -- lua snippets require("luasnip.loaders.from_lua").lazy_load {paths = './snippets'} + +vim.api.nvim_create_user_command('LuaSnipUnlinkAll', + function() + while #package.loaded.luasnip.session.current_nodes > 0 do + package.loaded.luasnip.unlink_current() + end + end, + { desc = 'unlink all active snippets' }) -- cgit 1.4.1