nvim: add mapping for inserting include guards in C files

This commit is contained in:
Fernando Schauenburg 2025-03-25 22:41:09 +01:00
parent 525c160c65
commit ba93f37b1e

View file

@ -1 +1,27 @@
vim.bo.commentstring = "// %s"
local insert_include_guards = function(bufnr)
bufnr = bufnr or 0
-- foo.h -> FOO_H_
local guard = string.gsub(string.upper(vim.fn.expand("%:t")), "%.", "_") .. "_"
vim.api.nvim_buf_set_lines(bufnr, 0, 0, true, {
string.format("#ifndef %s", guard),
string.format("#define %s", guard),
"",
})
local last_lineno = vim.api.nvim_buf_line_count(bufnr)
vim.api.nvim_buf_set_lines(bufnr, last_lineno, last_lineno, true, {
"",
string.format("#endif // %s", guard),
})
end
vim.keymap.set(
"n",
"<localleader>ig",
insert_include_guards,
{ desc = "Add include guards", buffer = true, silent = true }
)