Improved flow

This commit is contained in:
Morten Olsen
2026-01-26 23:04:14 +01:00
parent d9950b3e4d
commit b3b70bceeb
28 changed files with 4492 additions and 7 deletions

43
snippets/all.lua Normal file
View File

@@ -0,0 +1,43 @@
-- Global snippets (available in all filetypes)
-- 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
--
-- These snippets work in ANY filetype
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
-- Helper function to get current date
local function date()
return os.date("%Y-%m-%d")
end
-- Add your global snippets here
return {
-- Example: Uncomment and modify as needed
--
-- Current date
-- s("date", { f(date) }),
--
-- TODO comment
-- s("todo", fmt("TODO({}): {}", { i(1, "author"), i(0) })),
--
-- FIXME comment
-- s("fixme", fmt("FIXME({}): {}", { i(1, "author"), i(0) })),
}

52
snippets/go.lua Normal file
View File

@@ -0,0 +1,52 @@
-- Go 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("iferr", fmt("if err != nil {{\n\treturn {}\n}}", { i(1, "err") }))
-- Typing "iferr" + expand will give error handling template
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 Go snippets here
return {
-- Example: Uncomment and modify as needed
--
-- Error handling
-- s("iferr", fmt([[
-- if err != nil {{
-- return {}
-- }}
-- ]], { i(1, "err") })),
--
-- Function
-- s("fn", fmt([[
-- func {}({}) {} {{
-- {}
-- }}
-- ]], { i(1, "name"), i(2), i(3, "error"), i(0) })),
--
-- Struct
-- s("st", fmt([[
-- type {} struct {{
-- {}
-- }}
-- ]], { i(1, "Name"), i(0) })),
}

50
snippets/python.lua Normal file
View File

@@ -0,0 +1,50 @@
-- Python 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("def", fmt("def {}({}):\n {}", { i(1, "name"), i(2), i(0) }))
-- Typing "def" + expand will give a function template
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 Python snippets here
return {
-- Example: Uncomment and modify as needed
--
-- Main block
-- s("main", fmt([[
-- if __name__ == "__main__":
-- {}
-- ]], { i(0) })),
--
-- Class with init
-- s("class", fmt([[
-- class {}:
-- def __init__(self, {}):
-- {}
-- ]], { i(1, "ClassName"), i(2), i(0) })),
--
-- Async function
-- s("adef", fmt([[
-- async def {}({}):
-- {}
-- ]], { i(1, "name"), i(2), i(0) })),
}

48
snippets/typescript.lua Normal file
View File

@@ -0,0 +1,48 @@
-- 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) })),
}