-- local s = require("luasnip.nodes.snippet").S local f = require("luasnip.nodes.functionNode").F local i = require("luasnip.nodes.insertNode").I local fmt = require("luasnip.extras.fmt").fmt local agpl = [[/* This file is part of {project}. * Copyright © {year} {name} <{email}> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ {cursor}]] local bsd0 = [[/* This file is part of {project}. * Copyright © {year} {name} <{email}> * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ {cursor}]] local my = require('my.functions') return { s( { trig = 'AGPL', name = 'AGPL-3.0-only', dscr = 'Inserts the GNU Affero General Public License, version 3' }, fmt(agpl, { project = f(function() local root = my.get_project_root() if root then return root:gsub('.*/', '') end return 'INSERT_PROJECT' end), year = f(function() return os.date('%Y') end), name = f(function() return my.shell_capture('git config user.name') or 'INSERT_NAME' end), email = f(function() return my.shell_capture('git config user.email') or 'INSERT_EMAIL' end), cursor = i() }) ), s( { trig = '0BSD', name = '0BSD', dscr = 'Inserts the BSD Zero Clause License' }, fmt(bsd0, { project = f(function() local root = my.get_project_root() if root then return root:gsub('.*/', '') end return 'INSERT_PROJECT' end), year = f(function() return os.date('%Y') end), name = f(function() return my.shell_capture('git config user.name') or 'INSERT_NAME' end), email = f(function() return my.shell_capture('git config user.email') or 'INSERT_EMAIL' end), cursor = i() }) ) }