neovim configuration using rocks.nvim plugin manager
1require("luasnip.session.snippet_collection").clear_snippets("lua")
2
3local ls = require("luasnip")
4local s = ls.snippet
5local sn = ls.snippet_node
6local i = ls.insert_node
7local t = ls.text_node
8local fmt = require("luasnip.extras.fmt").fmt
9local c = ls.choice_node
10
11-- stylua: ignore
12ls.add_snippets("lua", {
13 s("fn", fmt([[
14 function {}({})
15 {}{}
16 end
17 ]], { i(1), i(2), t("\t"), i(3) })),
18 s("lfn", fmt([[
19 local function {}({})
20 {}{}
21 end
22 ]], { i(1, "name"), i(2), t("\t"), i(3) })),
23 s("cl", fmt([[
24 function({})
25 {}{}
26 end
27 ]], { i(1), t("\t"), i(2) })),
28 s("if", fmt([[
29 if {} then
30 {}{}
31 end
32 ]], { i(1), t"\t", i(2) })),
33 s("for", {
34 t"for ",
35 c(1, {
36 sn(nil, { i(1, "i"), t" = ", i(2, "1"), t", ", i(3, "10, 1") }),
37 sn(nil, { i(1, "key"), t", ", i(2, "value"), t" in pairs(", i(3, "t"), t")" }),
38 sn(nil, { i(1, "index"), t", ", i(2, "value"), t" in ipairs(", i(3, "t"), t")" }),
39 }),
40 t{" do", "\t"},
41 i(2),
42 t{"", "end"},
43 }),
44 s("it", fmt([[
45 it("{}", function()
46 {}{}
47 end)
48 ]], { i(1), t("\t"), i(2) }))
49})