local ls = require 'luasnip' local s = ls.snippet local t = ls.text_node local i = ls.insert_node local f = ls.function_node local fmt = require('luasnip.extras.fmt').fmt local fill = require('snippets.helpers').fill return { s({ trig = 'dc', desc = 'divider comment' }, f(fill, {}, { user_args = { '#%- ' } })), s({ trig = '#!', desc = 'shebang' }, t '#!/usr/bin/env fish'), s( { trig = 'if', desc = 'if ... end' }, fmt( [[ if {} {} end ]], { i(1), i(0) } ) ), s( { trig = 'elif', desc = 'else if ...' }, fmt( [[ else if {} {} ]], { i(1), i(0) } ) ), s( { trig = 'fori', desc = 'for ... in ... end' }, fmt( [[ for {} in {} {} end ]], { i(1), i(2), i(0) } ) ), s( { trig = 'wh', desc = 'while ... end' }, fmt( [[ while {} {} end ]], { i(1), i(0) } ) ), s( { trig = 'wht', desc = 'while true ... end' }, fmt( [[ while true {} end ]], { i(0) } ) ), s( { trig = 'sw', desc = 'switch ... case ... end' }, fmt( [[ switch {} case {} {} end ]], { i(1), i(2), i(0) } ) ), s( { trig = 'func', desc = 'function ... end' }, fmt( [[ function {} {} end ]], { i(1), i(0) } ) ), s({ trig = 'dn', desc = '&>/dev/null' }, t '&>/dev/null'), s({ trig = 'abbr', desc = 'abbr -a ... --position ...' }, fmt('abbr -a {} --position {} "{}"', { i(1), i(2, 'command'), i(3) })), }