dotfiles/config/nvim/after/ftplugin/c.lua

27 lines
671 B
Lua

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 }
)