From ce00d0e5c9473de06847627d212c0900e55f6508 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 9 Dec 2025 01:50:22 +0100 Subject: [PATCH] nvim add c/cpp snippets --- nvim/snippets/c.lua | 23 +++++++++++++++++++++++ nvim/snippets/cpp.lua | 23 +++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 nvim/snippets/c.lua create mode 100644 nvim/snippets/cpp.lua diff --git a/nvim/snippets/c.lua b/nvim/snippets/c.lua new file mode 100644 index 0000000..e4cdf70 --- /dev/null +++ b/nvim/snippets/c.lua @@ -0,0 +1,23 @@ +local ls = require("luasnip") +local s = ls.snippet +local t = ls.text_node +local f = ls.function_node +local i = ls.insert_node + +-- Helper: convert current filename to uppercase header guard +local function header_guard(_, snip) + local name = snip.env.TM_FILENAME or "HEADER" + -- Replace dots and non-alphanumerics with underscores + name = name:gsub("%.", "_"):gsub("%W", "_"):upper() + return name .. "_" +end + +return { + s("guard", { + t("#ifndef "), f(header_guard, {}), + t({ "", "#define " }), f(header_guard, {}), + t({ "", "", "" }), + i(0), + t({ "", "", "#endif // " }), f(header_guard, {}), + }), +} diff --git a/nvim/snippets/cpp.lua b/nvim/snippets/cpp.lua new file mode 100644 index 0000000..e4cdf70 --- /dev/null +++ b/nvim/snippets/cpp.lua @@ -0,0 +1,23 @@ +local ls = require("luasnip") +local s = ls.snippet +local t = ls.text_node +local f = ls.function_node +local i = ls.insert_node + +-- Helper: convert current filename to uppercase header guard +local function header_guard(_, snip) + local name = snip.env.TM_FILENAME or "HEADER" + -- Replace dots and non-alphanumerics with underscores + name = name:gsub("%.", "_"):gsub("%W", "_"):upper() + return name .. "_" +end + +return { + s("guard", { + t("#ifndef "), f(header_guard, {}), + t({ "", "#define " }), f(header_guard, {}), + t({ "", "", "" }), + i(0), + t({ "", "", "#endif // " }), f(header_guard, {}), + }), +}