nvim/plugin/luasnip.lua
2025-04-07 11:48:42 -04:00

45 lines
937 B
Lua

local ls = require("luasnip")
local rep = require("luasnip.extras").rep
local ai = require("luasnip.nodes.absolute_indexer")
local fmt = require("luasnip.extras.fmt").fmt
ls.config.set_config({
history = true,
updateevents = "TextChanged,TextChangedI",
})
vim.keymap.set("n", "<leader><leader>s", "<cmd>source ~/.config/nvim/plugin/luasnip.lua<CR>")
vim.keymap.set({ "i", "s" }, "<A-k>", function()
if ls.expand_or_jumpable() then
ls.expand_or_jump()
end
end, { silent = true })
vim.keymap.set({ "i", "s" }, "<A-j>", function()
if ls.jumpable(-1) then
ls.jump(-1)
end
end, { silent = true })
ls.add_snippets("python", {
ls.snippet("main", {
ls.text_node({ 'if __name__ == "__main__":', "\t" }),
ls.insert_node(1),
}),
})
ls.add_snippets("python", {
ls.snippet(
"class",
fmt(
[[
class {}:
def __init__(self, {}):
self.{} = {}
]],
{ ls.insert_node(1), ls.insert_node(2), rep(2), rep(2) }
)
),
})