kickstart.nvim/LuaSnip/sh.lua

118 lines
2.1 KiB
Lua

local helpers = require('personal.luasnip-helper-funcs')
local get_visual = helpers.get_visual
local line_begin = require("luasnip.extras.expand_conditions").line_begin
return
{
s({trig = "doc"},
fmt(
[[
# NAME
# {} - {}
#
# SYNOPSIS
# {} {}
]],
{
i(1, "name"),
i(2, "description"),
rep(1),
i(3, "usage"),
}
),
{condition = line_begin}
),
-- /bin/bash shebang
s({trig = "!!", snippetType="autosnippet"},
{t("#!/bin/bash")},
{condition = line_begin}
),
s({trig = "fl", snippetType="autosnippet"},
fmt(
[[
for {} in {}; do
{}
done
]],
{
i(1),
i(2),
i(0)
}
),
{condition = line_begin}
),
s({trig = "read"},
fmt(
[=[
while read line
do
[[ -z "${line}" ]] && continue
[[ "${line}" = \#* ]] && continue
echo "${line}"
()
done < ()
]=],
{
i(2),
i(1, "myfile.txt")
},
{ delimiters = "()"}
),
{condition = line_begin}
),
-- IF STATEMENT
s({trig = "iff", snippetType="autosnippet"},
fmta(
[=[
if [[ <> ]]; then
<>
fi
]=],
{
i(1),
i(0)
}
),
{condition = line_begin}
),
-- VARIABLE
s({trig = "vv", wordTrig=false, snippetType="autosnippet"},
fmta(
[[
${<>}
]],
{
d(1, get_visual),
}
)
),
-- ECHO
s({trig = "pp", snippetType="autosnippet"},
fmta(
[[
echo "<>"
]],
{
d(1, get_visual),
}
)
),
s({trig = "ext"},
fmta(
[[
${<>%.<>}
]],
{
i(1, "var"),
i(2, "ext"),
}
)
),
s({trig = "XX", snippetType="autosnippet"},
{t("exit")},
{condition = line_begin}
),
}