-- template snippets require('luasnip').setup_snip_env() local templates = {} -- check if the current buffer is empty local bufempty = function(bufnr) bufnr = bufnr or 0 if vim.api.nvim_buf_get_offset(bufnr, 0) <= 0 then local handle = io.open(vim.api.nvim_buf_get_name(bufnr)) if handle == nil then return true end local eof = handle:read(0) handle:close() if eof == nil then return true end end return false end local register_template = function(pattern, snip) templates[pattern] = snip vim.api.nvim_create_autocmd({ 'BufEnter', 'BufNewFile' }, { pattern = pattern, group = vim.api.nvim_create_augroup('Template' .. pattern, { clear = true }), callback = function(opt) if bufempty() then require('luasnip').snip_expand(templates[pattern]) require('luasnip').unlink_current() end end, }) end register_template( 'deb/DEBIAN/changelog_blobs/*.txt', s( 'debian-changelog', fmt( [[ ukp-agent (${VERSION}) unstable; urgency=medium * feat: <> ]], { i(0) }, { delimiters = '<>', } ) ) )