kickstart.nvim/luasnippets/tex/misc.lua

38 lines
1.3 KiB
Lua

-- Abbreviations used in this article and the LuaSnip docs
local ls = require("luasnip")
local s = ls.snippet
-- local sn = ls.snippet_node
local t = ls.text_node
local i = ls.insert_node
-- local f = ls.function_node
-- local d = ls.dynamic_node
-- local fmt = require("luasnip.extras.fmt").fmt
local fmta = require("luasnip.extras.fmt").fmta
-- local rep = require("luasnip.extras").rep
-- local in_mathzone = function()
-- return vim.fn["vimtex#syntax#in_mathzone"]() == 1
-- end
-- AutoSnippet function "as":
local function as(trigger, nodes, opts)
-- Only trigger commands in mathzones
opts = opts or {}
-- Add snippetType = "autosnippet" to the first parameter
if type(trigger) == "table" then
trigger.snippetType = "autosnippet"
else
trigger = { trig = trigger, snippetType = "autosnippet" }
end
return s(trigger, nodes, opts)
end
return {
as({ trig = "{{", wordTrig = false }, fmta("{<>}", { i(1) })),
as({ trig = "[[", wordTrig = false }, fmta("[<>]", { i(1) })),
as({ trig = "((", wordTrig = false }, fmta("(<>)", { i(1) })),
as({ trig = "{}", wordTrig = false }, fmta("{<>}", { i(1) })),
as({ trig = "[]", wordTrig = false }, fmta("[<>]", { i(1) })),
as({ trig = "()", wordTrig = false }, fmta("(<>)", { i(1) })),
as("mm", fmta("$<>$", { i(1) })),
as("$$", fmta("$<>$", { i(1) })),
}