nvim: add mapping for inserting include guards in C files
This commit is contained in:
parent
525c160c65
commit
ba93f37b1e
1 changed files with 26 additions and 0 deletions
|
@ -1 +1,27 @@
|
||||||
vim.bo.commentstring = "// %s"
|
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 }
|
||||||
|
)
|
||||||
|
|
Loading…
Add table
Reference in a new issue