245 lines
4.8 KiB
Lua
245 lines
4.8 KiB
Lua
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
|
|
|
|
|
|
-- Visual placeholder
|
|
--
|
|
-- taken from https://ejmastnak.com/
|
|
|
|
local get_visual = function(args, parent, default_text)
|
|
if (#parent.snippet.env.LS_SELECT_RAW > 0) then
|
|
return sn(nil, i(1,parent.snippet.env.LS_SELECT_RAW))
|
|
else -- If LS_SELECT_RAW is empty, return a blank insert node
|
|
return sn(nil, i(1,default_text))
|
|
end
|
|
end
|
|
|
|
local function v(pos, default_text)
|
|
return d(pos, function(args, parent) return get_visual(args, parent, default_text) end)
|
|
end
|
|
|
|
return {
|
|
|
|
-- Fonts
|
|
|
|
-- Standard size-changing commands
|
|
|
|
s({trig = "tny", name = "Tiny font size"},
|
|
{
|
|
t("\\tiny")
|
|
}
|
|
),
|
|
|
|
s({trig = "scr", name = "Scriptize font size"},
|
|
{
|
|
t("\\scriptsize")
|
|
}
|
|
),
|
|
|
|
s({trig = "fot", name = "Footnote size"},
|
|
{
|
|
t("\\footnotesize")
|
|
}
|
|
),
|
|
|
|
s({trig = "sma", name = "Small font size"},
|
|
{
|
|
t("\\small")
|
|
}
|
|
),
|
|
|
|
s({trig = "nor", name = "Normalsize font"},
|
|
{
|
|
t("\\normalsize")
|
|
}
|
|
),
|
|
|
|
s({trig = "lar", name = "Large font size"},
|
|
{
|
|
c(1,
|
|
{
|
|
{
|
|
i(1,"\\large")
|
|
},
|
|
{
|
|
i(1,"\\Large")
|
|
},
|
|
{
|
|
i(1,"\\LARGE")
|
|
}
|
|
}
|
|
)
|
|
}
|
|
),
|
|
|
|
s({trig = "hug", name = "Huge font size"},
|
|
{
|
|
c(1,
|
|
{
|
|
{
|
|
i(1,"\\huge")
|
|
},
|
|
{
|
|
i(1,"\\Huge")
|
|
}
|
|
}
|
|
)
|
|
}
|
|
),
|
|
|
|
-- Standard font-changing commands and declarations
|
|
|
|
s({trig = "rm", name = "Roman family"},
|
|
{
|
|
c(1,
|
|
{
|
|
{
|
|
t("\\textrm{"), v(1,"text"), t("}")
|
|
},
|
|
{
|
|
t("\\begin{rmfamily}"), v(1,"..."), t("\\end{rmfamily}")
|
|
},
|
|
{
|
|
i(1,"\\rmfamily")
|
|
}
|
|
}
|
|
)
|
|
}
|
|
),
|
|
|
|
s({trig = "sf", name = "Sans serif family"},
|
|
{
|
|
c(1,
|
|
{
|
|
{
|
|
t("\\textsf{"), v(1,"text"), t("}")
|
|
},
|
|
{
|
|
t("\\begin{sffamily}"), v(1,"..."), t("\\end{sffamily}")
|
|
},
|
|
{
|
|
i(1,"\\sffamily")
|
|
}
|
|
}
|
|
)
|
|
}
|
|
),
|
|
|
|
s({trig = "tt", name = "Typewriter family"},
|
|
{
|
|
c(1,
|
|
{
|
|
{
|
|
t("\\texttt{"), v(1,"text"), t("}")
|
|
},
|
|
{
|
|
t("\\begin{ttfamily}"), v(1,"..."), t("\\end{ttfamily}")
|
|
},
|
|
{
|
|
i(1,"\\ttfamily")
|
|
}
|
|
}
|
|
)
|
|
}
|
|
),
|
|
|
|
s({trig = "bf", name = "Bold series"},
|
|
{
|
|
c(1,
|
|
{
|
|
{
|
|
t("\\textbf{"), v(1,"text"), t("}")
|
|
},
|
|
{
|
|
t("\\begin{bfseries}"), v(1,"..."), t("\\end{bfseries}")
|
|
},
|
|
{
|
|
i(1,"\\bfseries")
|
|
}
|
|
}
|
|
)
|
|
}
|
|
),
|
|
|
|
s({trig = "it", name = "Italic shape"},
|
|
{
|
|
c(1,
|
|
{
|
|
{
|
|
t("\\textit{"), v(1,"text"), t("}")
|
|
},
|
|
{
|
|
t("\\begin{itshape}"), v(1,"..."), t("\\end{itshape}")
|
|
},
|
|
{
|
|
i(1,"\\itshape")
|
|
}
|
|
}
|
|
)
|
|
}
|
|
),
|
|
|
|
s({trig = "sc", name = "Small caps shape"},
|
|
{
|
|
c(1,
|
|
{
|
|
{
|
|
t("\\textsc{"), v(1,"text"), t("}")
|
|
},
|
|
{
|
|
t("\\begin{scshape}"), v(1,"..."), t("\\end{scshape}")
|
|
},
|
|
{
|
|
i(1,"\\scshape")
|
|
}
|
|
}
|
|
)
|
|
}
|
|
),
|
|
|
|
s({trig = "em", name = "Emphasized text"},
|
|
{
|
|
c(1,
|
|
{
|
|
{
|
|
t("\\emph{"), v(1,"text"), t("}")
|
|
},
|
|
{
|
|
t("\\begin{em}"), v(1,"..."), t("\\end{em}")
|
|
},
|
|
{
|
|
i(1,"\\em")
|
|
}
|
|
}
|
|
)
|
|
}
|
|
),
|
|
|
|
s({trig = "tn", name = "Main font"},
|
|
{
|
|
c(1,
|
|
{
|
|
{
|
|
t("\\textnormal{"), v(1,"text"), t("}")
|
|
},
|
|
{
|
|
t("\\begin{normalfont}"), v(1,"..."), t("\\end{normalfont}")
|
|
},
|
|
{
|
|
i(1,"\\normalfont")
|
|
}
|
|
}
|
|
)
|
|
}
|
|
),
|
|
|
|
}
|