38 lines
1.3 KiB
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) })),
|
|
}
|