summary refs log tree commit diff
path: root/.config/nvim/lua/config/autoall.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/config/autoall.lua')
-rw-r--r--.config/nvim/lua/config/autoall.lua35
1 files changed, 35 insertions, 0 deletions
diff --git a/.config/nvim/lua/config/autoall.lua b/.config/nvim/lua/config/autoall.lua
new file mode 100644
index 0000000..6f36182
--- /dev/null
+++ b/.config/nvim/lua/config/autoall.lua
@@ -0,0 +1,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,
+})