70 lines
2.5 KiB
Lua
70 lines
2.5 KiB
Lua
return {
|
|
"attilarepka/header.nvim",
|
|
config = function()
|
|
local header = require("header")
|
|
local augroup = vim.api.nvim_create_augroup
|
|
local autocmd = vim.api.nvim_create_autocmd
|
|
local opts = require("utils").opts
|
|
|
|
header.setup({
|
|
allow_autocmds = true,
|
|
file_name = true,
|
|
date_created = true,
|
|
date_created_fmt = "%Y-%m-%d %H:%M:%S",
|
|
date_modified = true,
|
|
date_modified_fmt = "%Y-%m-%d %H:%M:%S",
|
|
line_separator = "------",
|
|
use_block_header = false,
|
|
license_from_file = false,
|
|
author_from_git = true,
|
|
})
|
|
|
|
vim.keymap.set("n", "<leader><leader>h", function()
|
|
header.add_headers()
|
|
end, opts("Add headers to file"))
|
|
|
|
augroup("file-header", { clear = true })
|
|
autocmd("BufWritePre", {
|
|
pattern = "*",
|
|
callback = function()
|
|
if header and header.update_date_modified then
|
|
header.update_date_modified()
|
|
else
|
|
vim.notify_once("header.update_date_modified is not available", vim.log.levels.WARN)
|
|
end
|
|
end,
|
|
group = "file-header",
|
|
desc = "Update header's date modified",
|
|
})
|
|
|
|
autocmd({ "BufNewFile", "BufReadPost" }, {
|
|
pattern = "*",
|
|
callback = function()
|
|
if not header then
|
|
vim.notify_once(
|
|
"Could not automatically add header to new file: header module couldn't be found",
|
|
vim.log.levels.ERROR
|
|
)
|
|
return
|
|
end
|
|
|
|
local lines = vim.api.nvim_buf_get_lines(0, 0, -1, false)
|
|
local is_empty = #lines == 1 and lines[1] == ""
|
|
|
|
if header.config.allow_autocmds and is_empty then
|
|
local original_fmt = header.config.date_created_fmt
|
|
local now = os.date(header.config.date_created_fmt, os.time())
|
|
|
|
-- force add_headers to use the current datetime, otherwise it will show 1970-01-01
|
|
header.config.date_created_fmt = now
|
|
header.add_headers()
|
|
|
|
header.config.date_created_fmt = original_fmt -- restore the original format
|
|
end
|
|
end,
|
|
group = "file-header",
|
|
desc = "Add copyright header to new/empty files",
|
|
})
|
|
end,
|
|
}
|