neovim configuration using rocks.nvim plugin manager
1require("luasnip.session.snippet_collection").clear_snippets("all")
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 c = ls.choice_node
9local r = ls.restore_node
10
11local function pair(pair_begin, pair_end)
12 -- autopair implementation inspired by Luasnip wiki
13 -- https://github.com/L3MON4D3/LuaSnip/wiki/Cool-Snippets#all---pairs
14 return s({ trig = pair_begin, wordTrig = false }, {
15 t({ pair_begin }),
16 c(1, {
17 r(1, "content", i(1)),
18 sn(nil, { t({ "", "\t" }), r(1, "content", i(1)), t({ "", "" }) }),
19 }),
20 t({ pair_end }),
21 })
22end
23
24ls.add_snippets("all", {
25 pair("(", ")"),
26 pair("{", "}"),
27 pair("[", "]"),
28 pair("<", ">"),
29 pair("'", "'"),
30 pair('"', '"'),
31 pair("`", "`"),
32})