[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