91 lines
2.2 KiB
Lua
91 lines
2.2 KiB
Lua
|
local helpers = require('personal.luasnip-helper-funcs')
|
||
|
local get_date = helpers.get_ISO_8601_date
|
||
|
local get_visual = helpers.get_visual
|
||
|
|
||
|
-- A logical OR of `line_begin` and the regTrig '[^%a]trig'
|
||
|
function line_begin_or_non_letter(line_to_cursor, matched_trigger)
|
||
|
local line_begin = line_to_cursor:sub(1, -(#matched_trigger + 1)):match("^%s*$")
|
||
|
local non_letter = line_to_cursor:sub(-(#matched_trigger + 1), -(#matched_trigger + 1)):match('[ :`=%{%(%["]')
|
||
|
return line_begin or non_letter
|
||
|
end
|
||
|
|
||
|
return
|
||
|
{
|
||
|
-- Paired parentheses
|
||
|
s({trig="(", wordTrig = false, snippetType="autosnippet"},
|
||
|
{
|
||
|
t("("),
|
||
|
d(1, get_visual),
|
||
|
t(")"),
|
||
|
}),
|
||
|
-- Paired curly braces
|
||
|
s({trig="{", wordTrig = false, snippetType="autosnippet"},
|
||
|
{
|
||
|
t("{"),
|
||
|
d(1, get_visual),
|
||
|
t("}"),
|
||
|
}),
|
||
|
-- Paired square brackets
|
||
|
s({trig="[", wordTrig = false, snippetType="autosnippet"},
|
||
|
{
|
||
|
t("["),
|
||
|
d(1, get_visual),
|
||
|
t("]"),
|
||
|
}),
|
||
|
-- Paired back ticks
|
||
|
s({trig="sd", snippetType="autosnippet"},
|
||
|
{
|
||
|
f( function(_, snip) return snip.captures[1] end ),
|
||
|
t("`"),
|
||
|
d(1, get_visual),
|
||
|
t("`"),
|
||
|
}),
|
||
|
-- Paired double quotes
|
||
|
s({trig = '"', wordTrig = false, snippetType="autosnippet", priority=2000},
|
||
|
fmta(
|
||
|
'"<>"',
|
||
|
{
|
||
|
d(1, get_visual),
|
||
|
}
|
||
|
),
|
||
|
{condition = line_begin_or_non_letter}
|
||
|
),
|
||
|
-- Paired single quotes
|
||
|
s({trig = "'", wordTrig = false, snippetType="autosnippet", priority=2000},
|
||
|
fmta(
|
||
|
"'<>'",
|
||
|
{
|
||
|
d(1, get_visual),
|
||
|
}
|
||
|
),
|
||
|
{condition = line_begin_or_non_letter}
|
||
|
),
|
||
|
-- -- Today's date in YYYY-MM-DD (ISO 8601) format
|
||
|
-- s({trig = "iso"},
|
||
|
-- {f(get_date)}
|
||
|
-- -- {f(get_ISO_8601_date)}
|
||
|
-- ),
|
||
|
-- Curly braces
|
||
|
s({trig = "df", snippetType="autosnippet"},
|
||
|
fmta(
|
||
|
[[
|
||
|
{
|
||
|
<>
|
||
|
}
|
||
|
]],
|
||
|
{ d(1, get_visual) }
|
||
|
)
|
||
|
),
|
||
|
-- Square braces
|
||
|
s({trig = "dg", snippetType="autosnippet"},
|
||
|
fmta(
|
||
|
[[
|
||
|
[
|
||
|
<>
|
||
|
]
|
||
|
]],
|
||
|
{ d(1, get_visual) }
|
||
|
)
|
||
|
),
|
||
|
}
|