Files
nvim/snippets/typescript.lua
Morten Olsen b3b70bceeb Improved flow
2026-01-26 23:04:14 +01:00

49 lines
1.4 KiB
Lua

-- TypeScript/JavaScript snippets
-- See docs/guides/snippets.md for how to create snippets
--
-- Quick reference:
-- s(trigger, nodes, opts) - Create a snippet
-- t(text) - Text node
-- i(index, default) - Insert node (tab stop)
-- c(index, choices) - Choice node
-- f(func, args) - Function node
-- d(index, func, args) - Dynamic node
-- rep(index) - Repeat node
--
-- Example:
-- s("cl", { t("console.log("), i(1), t(")") })
-- Typing "cl" + expand will give: console.log(|)
local ls = require("luasnip")
local s = ls.snippet
local t = ls.text_node
local i = ls.insert_node
local c = ls.choice_node
local f = ls.function_node
local d = ls.dynamic_node
local sn = ls.snippet_node
local rep = require("luasnip.extras").rep
local fmt = require("luasnip.extras.fmt").fmt
-- Add your TypeScript snippets here
return {
-- Example: Uncomment and modify as needed
--
-- Console log
-- s("cl", { t("console.log("), i(1), t(")") }),
--
-- Arrow function
-- s("af", fmt("const {} = ({}) => {{\n {}\n}}", { i(1, "name"), i(2), i(0) })),
--
-- React functional component
-- s("rfc", fmt([[
-- export function {}({}: {}) {{
-- return (
-- <div>
-- {}
-- </div>
-- )
-- }}
-- ]], { i(1, "Component"), i(2, "props"), i(3, "Props"), i(0) })),
}