diff --git a/.config/nvim/ftplugin/go.lua b/.config/nvim/ftplugin/go.lua index 53081482..c37615bc 100644 --- a/.config/nvim/ftplugin/go.lua +++ b/.config/nvim/ftplugin/go.lua @@ -1,21 +1 @@ vim.bo.expandtab = false - -local once = require("once") -once.test_and_load("ft_go", function() - local luasnip = require("luasnip") - local s = luasnip.snippet - local t = luasnip.text_node - local cr = function() return t { "", "" } end - local i = luasnip.insert_node - - luasnip.add_snippets("go", { - s("ie", { - t("if err != nil {"), - cr(), - t("\t"), - i(0), - cr(), - t("}"), - }), - }) -end) diff --git a/.config/nvim/ftplugin/haskell.lua b/.config/nvim/ftplugin/haskell.lua index 744ccd73..9a1eb6f3 100644 --- a/.config/nvim/ftplugin/haskell.lua +++ b/.config/nvim/ftplugin/haskell.lua @@ -3,10 +3,3 @@ opts.matchit_let_in() vim.bo.shiftwidth = 2 vim.bo.expandtab = true - -local once = require("once") -once.test_and_load("ft_haskell", function() - local luasnip = require("luasnip") - local haskell_snippets = require("haskell-snippets").all - luasnip.add_snippets("haskell", haskell_snippets, { key = "haskell" }) -end) diff --git a/.config/nvim/ftplugin/typst.lua b/.config/nvim/ftplugin/typst.lua index 07959d82..6cea499f 100644 --- a/.config/nvim/ftplugin/typst.lua +++ b/.config/nvim/ftplugin/typst.lua @@ -2,40 +2,9 @@ vim.bo.shiftwidth = 2 vim.bo.tabstop = 2 vim.bo.textwidth = 100 -local once = require("once") - -once.test_and_load("ft_typst", function() - vim.keymap.set("n", "f", function() - local tw = vim.bo.textwidth - local saved = vim.fn.winsaveview() - vim.cmd('silent exec "%!typstyle -c ' .. tostring(tw) .. ' "') - vim.fn.winrestview(saved) - end, { desc = "ft(typst): Format with typstyle" }) - - do - local luasnip = require("luasnip") - local s = luasnip.snippet - local t = luasnip.text_node - local cr = function() return t { "", "" } end - local i = luasnip.insert_node - local f = luasnip.function_node - - local function show_date_typst_entry() return os.date('"%Y-%m-%d %H:%M:%S"') end - luasnip.add_snippets("typst", { - s("entry", { - t("#entry("), - f(show_date_typst_entry), - t { ")[", "" }, - t(" "), - i(0), - t { "", "]" }, - }), - s("lang", { - t('#set text(lang: "'), - i(0), - t('")'), - cr(), - }), - }) - end -end) +vim.keymap.set("n", "f", function() + local tw = vim.bo.textwidth + local saved = vim.fn.winsaveview() + vim.cmd('silent exec "%!typstyle -c ' .. tostring(tw) .. ' "') + vim.fn.winrestview(saved) +end, { desc = "ft(typst): Format with typstyle" }) diff --git a/.config/nvim/plugin/luasnip.lua b/.config/nvim/plugin/luasnip.lua new file mode 100644 index 00000000..7c1a47fb --- /dev/null +++ b/.config/nvim/plugin/luasnip.lua @@ -0,0 +1,38 @@ +local luasnip = require("luasnip") +local s = luasnip.snippet +local t = luasnip.text_node +local cr = function() return t { "", "" } end +local i = luasnip.insert_node +local f = luasnip.function_node + +local function show_date_typst_entry() return os.date('"%Y-%m-%d %H:%M:%S"') end +luasnip.add_snippets("typst", { + s("entry", { + t("#entry("), + f(show_date_typst_entry), + t { ")[", "" }, + t(" "), + i(0), + t { "", "]" }, + }), + s("lang", { + t('#set text(lang: "'), + i(0), + t('")'), + cr(), + }), +}) + +luasnip.add_snippets("go", { + s("ie", { + t("if err != nil {"), + cr(), + t("\t"), + i(0), + cr(), + t("}"), + }), +}) + +local haskell_snippets = require("haskell-snippets").all +luasnip.add_snippets("haskell", haskell_snippets, { key = "haskell" })