From 8330424838ffad38f19e0f4fe012055919cdddb1 Mon Sep 17 00:00:00 2001
From: "flyingscorpio@clevo" <tfranken@protonmail.com>
Date: Sat, 13 Aug 2022 15:52:04 +0200
Subject: [PATCH] Add luasnip config

---
 .../neovim/files/lua/plugins/options/init.lua |  1 +
 .../files/lua/plugins/options/luasnip.lua     | 19 +++++++++++++++++++
 roles/neovim/files/lua/plugins/packer.lua     |  7 ++++---
 3 files changed, 24 insertions(+), 3 deletions(-)
 create mode 100644 roles/neovim/files/lua/plugins/options/luasnip.lua

diff --git a/roles/neovim/files/lua/plugins/options/init.lua b/roles/neovim/files/lua/plugins/options/init.lua
index 960a912..a3637e7 100644
--- a/roles/neovim/files/lua/plugins/options/init.lua
+++ b/roles/neovim/files/lua/plugins/options/init.lua
@@ -3,6 +3,7 @@
 require('plugins.options.lsp')
 require('plugins.options.treesitter')
 require('plugins.options.completion')
+require('plugins.options.luasnip')
 require('plugins.options.telescope')
 require('plugins.options.nerdtree')
 require('plugins.options.vimtex')
diff --git a/roles/neovim/files/lua/plugins/options/luasnip.lua b/roles/neovim/files/lua/plugins/options/luasnip.lua
new file mode 100644
index 0000000..e930e98
--- /dev/null
+++ b/roles/neovim/files/lua/plugins/options/luasnip.lua
@@ -0,0 +1,19 @@
+require('luasnip.loaders.from_vscode').lazy_load()
+
+local ls = require'luasnip'
+
+vim.keymap.set({ 'i', 's' }, '<C-k>', function ()
+  if ls.expand_or_jumpable() then
+    ls.expand_or_jump()
+  end
+end, { remap = false })
+vim.keymap.set({ 'i', 's' }, '<C-j>', function ()
+  if ls.jumpable(-1) then
+    ls.jump(-1)
+  end
+end, { remap = false })
+vim.keymap.set('i', '<C-l>', function ()
+  if ls.choice_active() then
+    ls.change_choice(1)
+  end
+end, { remap = false })
diff --git a/roles/neovim/files/lua/plugins/packer.lua b/roles/neovim/files/lua/plugins/packer.lua
index 272a32e..e9ee351 100644
--- a/roles/neovim/files/lua/plugins/packer.lua
+++ b/roles/neovim/files/lua/plugins/packer.lua
@@ -20,15 +20,16 @@ return require('packer').startup(function(use)
     run = function() require('nvim-treesitter.install').update({ with_sync = true }) end,
   }
 
+  -- Snippets
+  use 'L3MON4D3/LuaSnip'
+  use 'rafamadriz/friendly-snippets'
+
   -- Completion
   use 'hrsh7th/nvim-cmp'
   use 'hrsh7th/cmp-buffer'
   use 'hrsh7th/cmp-path'
   use 'hrsh7th/cmp-nvim-lua'
   use 'hrsh7th/cmp-nvim-lsp'
-
-  -- LuaSnip
-  use 'L3MON4D3/LuaSnip'
   use 'saadparwaiz1/cmp_luasnip'
 
   -- Telescope