diff --git a/config/nvim/after/ftplugin/c.lua b/config/nvim/after/ftplugin/c.lua index 56ce0bf..0c7687f 100644 --- a/config/nvim/after/ftplugin/c.lua +++ b/config/nvim/after/ftplugin/c.lua @@ -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", + "ig", + insert_include_guards, + { desc = "Add include guards", buffer = true, silent = true } +)