diff --git a/nvim/snippets/typescript.lua b/nvim/snippets/typescript.lua new file mode 100644 index 0000000..05b225a --- /dev/null +++ b/nvim/snippets/typescript.lua @@ -0,0 +1,38 @@ +local ls = require("luasnip") +local s = ls.snippet +local i = ls.insert_node +local f = ls.function_node +local fmt = require("luasnip.extras.fmt").fmt +local rep = require("luasnip.extras").rep + +local function capitalize_first(args) + local str = args[1][1] or "" + return str:gsub("^%l", string.upper) +end + +return { + s( + "cvar", + fmt([[ +export const {}Variants = cva( + '', + {{ + variants: {{ + variant: {{ + default: "", + }}, + }}, + defaultVariants: {{ + variant: 'default', + }}, + }}, +) + +export type {}Variant = VariantProps +]], { + i(1, "my"), + f(capitalize_first, { 1 }), + rep(1), + }) + ), +}