summaryrefslogtreecommitdiff
path: root/lua/plugins/core/luasnip.lua
diff options
context:
space:
mode:
authorChristian Segundo2024-02-18 08:19:51 +0100
committerChristian Segundo2024-02-18 08:19:51 +0100
commit85d7d7c082bd84d3c701ceec3d477ee37db5c827 (patch)
treeb78f09285c5120783f94cf9c2465a46439af2b71 /lua/plugins/core/luasnip.lua
parent7869bf2c310fbed680abd01d45a17057f857bf30 (diff)
downloadconfig-85d7d7c082bd84d3c701ceec3d477ee37db5c827.tar.gz
bootstrap
Diffstat (limited to 'lua/plugins/core/luasnip.lua')
-rw-r--r--lua/plugins/core/luasnip.lua50
1 files changed, 50 insertions, 0 deletions
diff --git a/lua/plugins/core/luasnip.lua b/lua/plugins/core/luasnip.lua
new file mode 100644
index 0000000..622af58
--- /dev/null
+++ b/lua/plugins/core/luasnip.lua
@@ -0,0 +1,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,
+ },
+}