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\t\t$0\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),
+ })
+ ),
+}