diff options
| author | srdusr <trevorgray@srdusr.com> | 2022-12-16 23:38:53 +0200 |
|---|---|---|
| committer | srdusr <trevorgray@srdusr.com> | 2022-12-16 23:38:53 +0200 |
| commit | 8f4eae2782704484b498129a0a7d9044a4d73fbb (patch) | |
| tree | e5980ba3f04aa07a32aca2361bfa65b32353684a /config/nvim/snippets/boilerplate.lua | |
| parent | dc714e9c0858b309f40f50be3254e42ee2b30b0c (diff) | |
| parent | 52ed18452c16ed012e646df059859cb7925c1d8d (diff) | |
| download | dotfiles-8f4eae2782704484b498129a0a7d9044a4d73fbb.tar.gz dotfiles-8f4eae2782704484b498129a0a7d9044a4d73fbb.zip | |
Merge commit '240510927f7694d19f8daa67d675d1685c199442' 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 |
