nvim: refactor luasnip as plugin

luasnip works better as a plugin and not a ftplugin
This commit is contained in:
Primrose 2025-08-09 09:00:25 +02:00
parent 6062f0313b
commit c8e4bcc675
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA
4 changed files with 44 additions and 64 deletions

View file

@ -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)

View file

@ -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)

View file

@ -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", "<leader>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", "<leader>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" })

View file

@ -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" })