summary refs log tree commit diff
path: root/.config/nvim/lua/config/autoall.lua
blob: 6f36182932174ce2d2e2a5c3e8ad41823894911f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
-- Autocommands for all files opened in nvim
local autocmd = vim.api.nvim_create_autocmd
local autogrp = vim.api.nvim_create_augroup

-- 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 expand_template = function(name)
  require('luasnip').snip_expand(require('config.templates')[name])
  require('luasnip').unlink_current()
end

autocmd({ 'BufEnter', 'BufNewFile' }, {
  pattern = 'deb/DEBIAN/changelog_blobs/*.txt',
  group = autogrp('DebianChangelogTemplate', { clear = true }),
  callback = function(opt)
    if bufempty() then
      return expand_template('debian-changelog')
    end
  end,
})