[Header] Add
This commit is contained in:
		
							
								
								
									
										71
									
								
								nvim/lua/plugins/util/header.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								nvim/lua/plugins/util/header.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | |||||||
|  | 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() | ||||||
|  |                 local header = require("header") | ||||||
|  |                 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() | ||||||
|  |                 local header = require("header") | ||||||
|  |                 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, | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user