diff options
author | Raymaekers Luca <raymaekers.luca@gmail.com> | 2023-03-10 15:12:05 +0100 |
---|---|---|
committer | Raymaekers Luca <raymaekers.luca@gmail.com> | 2023-03-10 15:12:05 +0100 |
commit | e7e1a3e08b4497c695cfce14743579d94123c8ca (patch) | |
tree | f80c07617c87b1e9647b602ec96e1ec6982e930f | |
parent | 15b19c2cc84a05c92cab26b19c172781addbe89a (diff) |
added luasnip config!
-rw-r--r-- | config/essentials/nvim/after/plugin/luasnip.lua | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/config/essentials/nvim/after/plugin/luasnip.lua b/config/essentials/nvim/after/plugin/luasnip.lua new file mode 100644 index 0000000..bfedfcc --- /dev/null +++ b/config/essentials/nvim/after/plugin/luasnip.lua @@ -0,0 +1,104 @@ +local ls = require("luasnip") +local s = ls.snippet +local sn = ls.snippet_node +local isn = ls.indent_snippet_node +local t = ls.text_node +local i = ls.insert_node +local f = ls.function_node +local c = ls.choice_node +local d = ls.dynamic_node +local r = ls.restore_node +local events = require("luasnip.util.events") +local ai = require("luasnip.nodes.absolute_indexer") +local extras = require("luasnip.extras") +local l = extras.lambda +local rep = extras.rep +local p = extras.partial +local m = extras.match +local n = extras.nonempty +local dl = extras.dynamic_lambda +local fmt = require("luasnip.extras.fmt").fmt +local fmta = require("luasnip.extras.fmt").fmta +local conds = require("luasnip.extras.expand_conditions") +local postfix = require("luasnip.extras.postfix").postfix +local types = require("luasnip.util.types") +local parse = require("luasnip.util.parser").parse_snippet + +-- keymaps +vim.keymap.set({"i", "s"}, "<C-k>", "<Plug>luasnip-expand-or-jump", { noremap = true }) +vim.keymap.set({"i", "s"}, "<C-j>", "<Plug>luasnip-jump-prev", { noremap = true }) +vim.keymap.set({"i", "s"}, "<C-l>", "<Plug>luasnip-next-choice", { noremap = true }) +vim.keymap.set("n", "<leader><leader>s", function() + ls.cleanup() + vim.cmd("source ~/.config/nvim/after/plugin/luasnip.lua") + print("snippets reloaded.") +end, { noremap = true }) + + +local same = function(index) + return f(function (arg) + return arg[1] + end, { index }) +end + +ls.add_snippets("lua", { + -- print + s("pt", { + t("print(\""), + i(1, "Hello World!"), + t("\")"), i(0) + }), + -- local function + parse("lf", "local $1 = function($2)\n\t$3\nend$0", {}), + -- require + s("req", fmt("local {} = require('{}')", { i(1), rep(1) })), + parse("rq", "require('$1')$0", {}), + -- function + s("fn", fmt( + [[ + function {}({}) + {} + end + ]], + { i(1), i(2), i(3) } + ), i(0)), +}) + +ls.add_snippets("html", { + s("<!DOCTYPE>", { + t({"<!DOCTYPE html>", "<html lang=\"en\">", "\t<head>", "\t\t<title>"}), + i(1, "title"), + t("</title>"), i(2), + t({"", "\t</head>", "\t<body>", "\t\t<h1>"}), + i(3, "Header"), + t("</h1>"), i(4), + t({"", "\t</body>", "</html>"}), i(0) + }), +}) + +ls.add_snippets("java", { + s("gfn", fmt( + [[ + {}static void get_{} () {{ + return this.{}; + }} + ]], + { c(1, {t "", t "public ", t "private "}), i(2), rep(2) } + )), + s("fn", fmt( + [[ + {}static {} {} ({}) {{ + {} + return ({}); + }} + ]], + { + c(1, {t "", t "public ", t "private "}), + i(2, "type"), + i(3, "\"name\""), + i(4), i(5), + rep(2) + } + )) +}) + |