---@diagnostic disable: undefined-global local todo_comment = function(key) local nodes = {} if type(key) == 'string' then table.insert(nodes, t(key)) elseif type(key) == 'table' then table.insert( nodes, c( 1, vim.tbl_map(function(e) return t(e) end, key) ) ) end local wrapped = autowrap(t('('), t(')'), { c(#nodes, { t(''), -- bare sn(1, user_email), f(function() return os.date('%Y-%m-%d') end, {}), -- time }), }) for _, n in ipairs(wrapped) do table.insert(nodes, n) end table.insert(nodes, t(': ')) return comment(nodes) end return { s('me', user_email), s('date', exec([[date --rfc-email]])), s( 'today', f(function() return os.date('%Y-%m-%d') end, {}) ), s( 'now', f(function() return os.date('%Y-%m-%dT%H:%M:%SZ') end, {}) ), -- todo comments s('todo', todo_comment('TODO')), s('note', todo_comment('NOTE')), s('hack', todo_comment('HACK')), s('warn', todo_comment({ 'WARN', 'XXX' })), s('fix', todo_comment({ 'FIX', 'FIXME', 'ISSUE', 'BUG' })), s( { trig = '#!', name = 'Shell script skeleton' }, fmt( [=[ #!/bin/sh set -e [ -n "$DEBUG" ] && set -x [ -n "$DESC" ] && desc() {{ printf "{}" exit 0 }} ]=], { i(1, 'what does this script do') } ), { callbacks = { [-1] = { [events.enter] = function(_, _) vim.opt_local.filetype = 'sh' end, }, }, } ), -- licenses (SPDX header) s({ trig = 'spdx-mit', name = 'MIT license' }, comment({ t([[SPDX-License-Identifier: MIT]]) })), s( { trig = 'spdx-gpl-3.0', name = 'MIT license' }, comment({ t([[SPDX-License-Identifier: GPL-3.0]]) }) ), s( { trig = 'spdx-agpl-3.0', name = 'MIT license' }, comment({ t([[SPDX-License-Identifier: AGPL-3.0]]) }) ), s( { trig = 'spdx-cc0-1.0', name = 'MIT license' }, comment({ t([[SPDX-License-Identifier: CC0-1.0]]) }) ), }