diff options
| author | srdusr <trevorgray@srdusr.com> | 2022-12-16 23:42:45 +0200 |
|---|---|---|
| committer | srdusr <trevorgray@srdusr.com> | 2022-12-16 23:42:45 +0200 |
| commit | af5e62f47fc0c49ff3fb7c4dcf26a438471cf7cf (patch) | |
| tree | d80cae9fd509089a3472aaf355b598fdca1b4f6f /.config/nvim/snippets/boilerplate.lua | |
| parent | 6371e90cc598e52b1d057d4b6d9a7b75d60e2fd0 (diff) | |
| parent | 18e3249ba8bfea656b02308225684e893d0273fa (diff) | |
| download | dotfiles-af5e62f47fc0c49ff3fb7c4dcf26a438471cf7cf.tar.gz dotfiles-af5e62f47fc0c49ff3fb7c4dcf26a438471cf7cf.zip | |
Merge commit 'af4baf569778ef8324ec0c1c6c0f09d6fb79e6a4' as '.config/nvim'
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 |
