From 2aebeeb5a8cd950f89bfa3b46469418f737e9f87 Mon Sep 17 00:00:00 2001 From: Marcelo Jacobus Date: Tue, 20 May 2025 09:11:17 -0300 Subject: [PATCH] Set up basic lua snippets --- lua/plugins/emmet.lua | 8 ++++++++ lua/plugins/luasnip.lua | 25 +++++++++++++++++++++++++ lua/snippets/eruby.lua | 14 ++++++++++++++ lua/snippets/ruby.lua | 14 ++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 lua/plugins/luasnip.lua create mode 100644 lua/snippets/eruby.lua create mode 100644 lua/snippets/ruby.lua diff --git a/lua/plugins/emmet.lua b/lua/plugins/emmet.lua index b8d7c96..e1d8777 100644 --- a/lua/plugins/emmet.lua +++ b/lua/plugins/emmet.lua @@ -4,6 +4,14 @@ return { vim.g.user_emmet_settings = { eruby = { extends = "html", + snippets = { + ["r"] = "<%= $0 %>", + ["rc"] = "<%= render $0 %>", + ["rp"] = '<%= render partial: "$0" %>', + ["jw"] = 'JW.ORG', + ["turbo-frame"] = '\n\t$0\n', + ["turbo-stream"] = '\n\t\n', + }, }, } end, diff --git a/lua/plugins/luasnip.lua b/lua/plugins/luasnip.lua new file mode 100644 index 0000000..3f98d52 --- /dev/null +++ b/lua/plugins/luasnip.lua @@ -0,0 +1,25 @@ +return { + "L3MON4D3/LuaSnip", + keys = function() + return { + { + "", + function() + return require("luasnip").expand_or_jumpable() and "luasnip-expand-or-jump" or "" + end, + expr = true, + mode = "i", + }, + { + "", + function() + require("luasnip").jump(-1) + end, + mode = "i", + }, + } + end, + init = function() + require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/lua/snippets" }) + end, +} diff --git a/lua/snippets/eruby.lua b/lua/snippets/eruby.lua new file mode 100644 index 0000000..a78cd88 --- /dev/null +++ b/lua/snippets/eruby.lua @@ -0,0 +1,14 @@ +local ls = require("luasnip") +local s = ls.snippet +local i = ls.insert_node +local fmt = require("luasnip.extras.fmt").fmt + +return { + s( + "tf", + fmt('\n\t{}\n', { + i(1, "frame_idx"), + i(0), + }) + ), +} diff --git a/lua/snippets/ruby.lua b/lua/snippets/ruby.lua new file mode 100644 index 0000000..075ae59 --- /dev/null +++ b/lua/snippets/ruby.lua @@ -0,0 +1,14 @@ +local ls = require("luasnip") +local s = ls.snippet +local i = ls.insert_node +local fmt = require("luasnip.extras.fmt").fmt + +return { + s( + "def", + fmt("def {}\n\t{}\nend", { + i(1, "frame_idx"), + i(0), + }) + ), +}