feat!(Breaking Change): move most of plugin/luasnip.vim to lua.

Since this uses the autocmd-api, from now on neovim 0.7.0 will be the
minimum supported version (up from 0.5.0).
This commit is contained in:
Max 2023-02-17 11:05:04 +01:00 committed by L3MON4D3
parent 2dfb6adcfb
commit a37a52ec19
3 changed files with 64 additions and 41 deletions

61
plugin/luasnip.lua Normal file
View file

@ -0,0 +1,61 @@
local function silent_map(mode, lhs, rhs)
vim.keymap.set(mode, lhs, rhs, {silent = true})
end
silent_map("i", "<Plug>luasnip-expand-or-jump", function() require("luasnip").expand_or_jump() end)
silent_map("i", "<Plug>luasnip-expand-snippet", function() require("luasnip").expand() end)
silent_map("i", "<Plug>luasnip-next-choice", function() require("luasnip").change_choice(1) end)
silent_map("i", "<Plug>luasnip-prev-choice", function() require("luasnip").change_choice(-1) end)
silent_map("i", "<Plug>luasnip-jump-next", function() require("luasnip").jump(1) end)
silent_map("i", "<Plug>luasnip-jump-prev", function() require("luasnip").jump(-1) end)
silent_map("n", "<Plug>luasnip-delete-check", function() require("luasnip").unlink_current_if_deleted() end)
silent_map("!", "<Plug>luasnip-delete-check", function() require("luasnip").unlink_current_if_deleted() end)
silent_map("", "<Plug>luasnip-expand-repeat", function() require("luasnip").expand_repeat() end)
silent_map("!", "<Plug>luasnip-expand-repeat", function() require("luasnip").expand_repeat() end)
silent_map("s", "<Plug>luasnip-expand-or-jump", function() require("luasnip").expand_or_jump() end)
silent_map("s", "<Plug>luasnip-expand-snippet", function() require("luasnip").expand() end)
silent_map("s", "<Plug>luasnip-next-choice", function() require("luasnip").change_choice(1) end)
silent_map("s", "<Plug>luasnip-prev-choice", function() require("luasnip").change_choice(-1) end)
silent_map("s", "<Plug>luasnip-jump-next", function() require("luasnip").jump(1) end)
silent_map("s", "<Plug>luasnip-jump-prev", function() require("luasnip").jump(-1) end)
vim.api.nvim_create_user_command("LuaSnipUnlinkCurrent", function()
require("luasnip").unlink_current()
end, { force = true })
vim.api.nvim_create_user_command("LuaSnipListAvailable", function()
vim.pretty_print(require("luasnip").available())
end, { force = true })
require('luasnip.config')._setup()
-- register these during startup so lazy_load will also load filetypes whose
-- events fired only before lazy_load is actually called.
-- (BufWinEnter -> lazy_load() wouldn't load any files without these).
vim.api.nvim_create_augroup("_luasnip_lazy_load", {})
vim.api.nvim_create_autocmd({ "BufWinEnter", "FileType" }, {
callback = function()
require("luasnip.loaders.from_lua")._load_lazy_loaded(
tonumber(vim.fn.expand("<abuf>"))
)
end,
group = "_luasnip_lazy_load",
})
vim.api.nvim_create_autocmd({ "BufWinEnter", "FileType" }, {
callback = function()
require("luasnip.loaders.from_snipmate")._load_lazy_loaded(
tonumber(vim.fn.expand("<abuf>"))
)
end,
group = "_luasnip_lazy_load",
})
vim.api.nvim_create_autocmd({ "BufWinEnter", "FileType" }, {
callback = function()
require("luasnip.loaders.from_vscode")._load_lazy_loaded(
tonumber(vim.fn.expand("<abuf>"))
)
end,
group = "_luasnip_lazy_load",
})

View file

@ -1,26 +1,3 @@
inoremap <silent> <Plug>luasnip-expand-or-jump <cmd>lua require'luasnip'.expand_or_jump()<Cr>
inoremap <silent> <Plug>luasnip-expand-snippet <cmd>lua require'luasnip'.expand()<Cr>
inoremap <silent> <Plug>luasnip-next-choice <cmd>lua require'luasnip'.change_choice(1)<Cr>
inoremap <silent> <Plug>luasnip-prev-choice <cmd>lua require'luasnip'.change_choice(-1)<Cr>
inoremap <silent> <Plug>luasnip-jump-next <cmd>lua require'luasnip'.jump(1)<Cr>
inoremap <silent> <Plug>luasnip-jump-prev <cmd>lua require'luasnip'.jump(-1)<Cr>
noremap <silent> <Plug>luasnip-delete-check <cmd>lua require'luasnip'.unlink_current_if_deleted()<Cr>
noremap! <silent> <Plug>luasnip-delete-check <cmd>lua require'luasnip'.unlink_current_if_deleted()<Cr>
noremap <silent> <Plug>luasnip-expand-repeat <cmd>lua require'luasnip'.expand_repeat()<Cr>
noremap! <silent> <Plug>luasnip-expand-repeat <cmd>lua require'luasnip'.expand_repeat()<Cr>
snoremap <silent> <Plug>luasnip-expand-or-jump <cmd>lua require'luasnip'.expand_or_jump()<Cr>
snoremap <silent> <Plug>luasnip-expand-snippet <cmd>lua require'luasnip'.expand()<Cr>
snoremap <silent> <Plug>luasnip-next-choice <cmd>lua require'luasnip'.change_choice(1)<Cr>
snoremap <silent> <Plug>luasnip-prev-choice <cmd>lua require'luasnip'.change_choice(-1)<Cr>
snoremap <silent> <Plug>luasnip-jump-next <cmd>lua require'luasnip'.jump(1)<Cr>
snoremap <silent> <Plug>luasnip-jump-prev <cmd>lua require'luasnip'.jump(-1)<Cr>
command! LuaSnipUnlinkCurrent lua require'luasnip'.unlink_current()
command! LuaSnipListAvailable lua print(vim.inspect(require'luasnip'.available()))
function! luasnip#expandable()
return luaeval('require("luasnip").expandable()')
endfunction
@ -44,15 +21,3 @@ endfunction
function! luasnip#choice_active()
return luaeval('require("luasnip").choice_active()')
endfunction
lua require('luasnip.config')._setup()
" register these during startup so lazy_load will also load filetypes whose
" events fired only before lazy_load is actually called.
" (BufWinEnter -> lazy_load() wouldn't load any files without these).
augroup _luasnip_lazy_load
au!
au BufWinEnter,FileType * lua require('luasnip.loaders.from_lua')._load_lazy_loaded(tonumber(vim.fn.expand("<abuf>")))
au BufWinEnter,FileType * lua require("luasnip.loaders.from_snipmate")._load_lazy_loaded(tonumber(vim.fn.expand("<abuf>")))
au BufWinEnter,FileType * lua require('luasnip.loaders.from_vscode')._load_lazy_loaded(tonumber(vim.fn.expand("<abuf>")))
augroup END

View file

@ -29,13 +29,10 @@ function M.session_setup_luasnip(opts)
local no_snip_globals = opts.no_snip_globals ~= nil and opts.no_snip_globals
or false
-- stylua: ignore
helpers.exec("set rtp+=" .. os.getenv("LUASNIP_SOURCE"))
helpers.exec(
string.format(
"source %s/plugin/luasnip.vim",
os.getenv("LUASNIP_SOURCE")
)
)
helpers.exec(("source %s/plugin/luasnip.vim"):format(os.getenv("LUASNIP_SOURCE")))
helpers.exec(("luafile %s/plugin/luasnip.lua"):format(os.getenv("LUASNIP_SOURCE")))
helpers.exec_lua([[