summaryrefslogtreecommitdiff
path: root/after/plugin/luasnip.lua
blob: 6d9f38d359440fa13115bfa88b55170ddf2c0fb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
local ls = require("luasnip")

local map = vim.keymap.set

map({ "i", "s" }, "<C-h>", function()
	if ls.expand_or_locally_jumpable() then
		ls.expand_or_jump()
	end
end, { silent = true })
map({ "i", "s" }, "<C-l>", function()
	if ls.locally_jumpable(-1) then
		ls.jump(-1)
	end
end, { silent = true })
map({ "i", "s" }, "<C-c>", function()
	if ls.choice_active() then
		ls.change_choice(1)
	end
end, { silent = true })

-- temporary keybind to play around
map("n", "  s", "<cmd>source ~/.config/nvim/after/plugin/luasnip.lua<cr>")

ls.config.set_config({
	history = true,
})

ls.add_snippets("go", {
	ls.parser.parse_snippet("main", "package main\n\nfunc main() {\n\t$0\n}"),
	ls.parser.parse_snippet("e", "if err != nil {\n\tpanic(err)$1\n}\n$0"),
	ls.parser.parse_snippet("ee", "if err != nil {\n\tfmt.Fprintln(os.Stderr, err)$1\n\tos.Exit(${2:1})\n}\n$0"),
	ls.parser.parse_snippet("eif", "if err := $1; err != nil {\n\tfmt.Println(err)$2\n}\n$0"),
	ls.parser.parse_snippet("pf", "fmt.Printf($0)"),
	ls.parser.parse_snippet("pl", "fmt.Println($0)"),
})
ls.add_snippets("sh", {
	ls.parser.parse_snippet("!", "#!/bin/sh\n$0"),
})