summaryrefslogtreecommitdiff
path: root/public/nvim/.nvim/lua/plugins/core/luasnip.lua
blob: 622af588ef161333a45fdcb87eac8e420d7a15a6 (plain) (blame)
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
39
40
41
42
43
44
45
46
47
48
49
50
return {
	{
		"L3MON4D3/LuaSnip",
		dependencies = { "rafamadriz/friendly-snippets" },
		build = "make install_jsregexp",
		config = function()
			local ls = require("luasnip")
			local types = require("luasnip.util.types")

			ls.config.set_config({
				history = true,
				updateevents = "TextChanged,TextChangedI",
				enable_autosnippets = true,
				ext_opts = {
					[types.choiceNode] = {
						active = {
							virt_text = { { "<-", "Error" } },
						},
					},
				},
			})

			-- luasnip keymaps are defined as cmp keymaps

			vim.keymap.set(
				"n",
				"<leader><leader>s",
				'<cmd>lua require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/lua/snippets" })<CR>'
			)

			require("luasnip.loaders.from_lua").lazy_load({ paths = "~/.config/nvim/lua/snippets" })
		end,
	},

	-- VSCode like (JSON) snippets
	-- For the full list of supported languages see:
	-- https://github.com/rafamadriz/friendly-snippets/blob/main/package.json
	{
		"rafamadriz/friendly-snippets",
		opts = { include = {} },
		config = function(_, opts)
			if #opts.include == 0 then
				return
			end

			opts.path = "~/.local/share/nvim/lazy/friendly-snippets"
			require("luasnip.loaders.from_vscode").lazy_load(opts)
		end,
	},
}