1
0
neovim-config/lua/add-guard.lua

33 lines
822 B
Lua

vim.api.nvim_create_user_command("AddIncludeGuard", function(data)
local bufnr = vim.api.nvim_get_current_buf()
local name_pattern = data.fargs[1] or "%s_"
local function formatName(filename)
local parts = vim.split(filename, "[/\\]", {trimempty=true})
local last_part = parts[#parts]
local ext = last_part:match("%.([^%.]+)$")
local name = last_part:gsub("%.[^%.]+$", "")
if ext == "h" or ext == "hpp" then
name = name.."_H"
end
return name_pattern:format(name:upper())
end
local buf_filename = vim.api.nvim_buf_get_name(bufnr)
local guard_name = formatName(buf_filename)
vim.api.nvim_buf_set_lines(bufnr, 0, 0, false, {
"#ifndef "..guard_name,
"#define "..guard_name,
""
})
vim.api.nvim_buf_set_lines(bufnr, -1, -1, false, {
"",
"#endif //"..guard_name
})
end, { nargs="?" })