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", "s", "source ~/.config/nvim/plugin/luasnip.lua") vim.keymap.set({ "i", "s" }, "", function() if ls.expand_or_jumpable() then ls.expand_or_jump() end end, { silent = true }) vim.keymap.set({ "i", "s" }, "", 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) } ) ), })