diff options
| author | srdusr <trevorgray@srdusr.com> | 2023-02-10 11:22:07 +0200 |
|---|---|---|
| committer | srdusr <trevorgray@srdusr.com> | 2023-02-10 11:22:07 +0200 |
| commit | 7cee6e5a673defef72c803eca094d1247c31bb9c (patch) | |
| tree | 1dbc97c5ece5f574ef5091d549fb434a8b59a625 /.config/nvim/snippets/boilerplate.lua | |
| parent | b91ee8da3ef2c1c154833b4b6e99250fe2c280e7 (diff) | |
| parent | f76f2c4bbc1ddde4b5c0882863060e4c58a11733 (diff) | |
| download | dotfiles-7cee6e5a673defef72c803eca094d1247c31bb9c.tar.gz dotfiles-7cee6e5a673defef72c803eca094d1247c31bb9c.zip | |
Add '.config/nvim/' from commit 'e707f3abc83e0621eab64b4828defd0c80dff5c0'
git-subtree-dir: .config/nvim
git-subtree-mainline: bb29321714929e1b7b962dd47b486325fd77e67a
git-subtree-split: e707f3abc83e0621eab64b4828defd0c80dff5c0
Diffstat (limited to '.config/nvim/snippets/boilerplate.lua')
| -rw-r--r-- | .config/nvim/snippets/boilerplate.lua | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/.config/nvim/snippets/boilerplate.lua b/.config/nvim/snippets/boilerplate.lua new file mode 100644 index 0000000..04e973a --- /dev/null +++ b/.config/nvim/snippets/boilerplate.lua @@ -0,0 +1,75 @@ +local ls = require("luasnip") --{{{ +local s = ls.s +local i = ls.i +local t = ls.t + +local d = ls.dynamic_node +local c = ls.choice_node +local f = ls.function_node +local sn = ls.snippet_node + +local fmt = require("luasnip.extras.fmt").fmt +local rep = require("luasnip.extras").rep + +local snippets, autosnippets = {}, {} --}}} + +local group = vim.api.nvim_create_augroup("Lua Snippets", { clear = true }) +local file_pattern = "*.lua" + +local function cs(trigger, nodes, opts) --{{{ + local snippet = s(trigger, nodes) + local target_table = snippets + + local pattern = file_pattern + local keymaps = {} + + if opts ~= nil then + -- check for custom pattern + if opts.pattern then + pattern = opts.pattern + end + + -- if opts is a string + if type(opts) == "string" then + if opts == "auto" then + target_table = autosnippets + else + table.insert(keymaps, { "i", opts }) + end + end + + -- if opts is a table + if opts ~= nil and type(opts) == "table" then + for _, keymap in ipairs(opts) do + if type(keymap) == "string" then + table.insert(keymaps, { "i", keymap }) + else + table.insert(keymaps, keymap) + end + end + end + + -- set autocmd for each keymap + if opts ~= "auto" then + for _, keymap in ipairs(keymaps) do + vim.api.nvim_create_autocmd("BufEnter", { + pattern = pattern, + group = group, + callback = function() + vim.keymap.set(keymap[1], keymap[2], function() + ls.snip_expand(snippet) + end, { noremap = true, silent = true, buffer = true }) + end, + }) + end + end + end + + table.insert(target_table, snippet) -- insert snippet into appropriate table +end --}}} + +-- Start Refactoring -- + +-- End Refactoring -- + +return snippets, autosnippets |
