Files
dotfiles/nvim/snippets/python.lua
FaultyBranches 4d291369e3 feat: Replacement of the autopairs plugin using snippets, extension of
snippets (mainly python) and cleanup of keymappings for snippets.
2026-06-11 06:46:40 -05:00

37 lines
1.0 KiB
Lua

local ls = require('luasnip')
local s = ls.snippet
-- local sn = ls.snippet_node
local i = ls.insert_node
local t = ls.text_node
-- local l = require('luasnip.extras').lambda
local fmt = require('luasnip.extras.fmt').fmt
-- local ts_post = require('luasnip.extras.treesitter_postfix').treesitter_postfix
ls.add_snippets('python', {
s('docstring single', {
t("''' "), i(0, 'text'), t(" '''")
}),
s('def', fmt([[
def {func}({args}) -> {ret}:
''' {doc} '''
{body}
]], {
func = i(1, 'fname'),
args = i(2),
ret = i(3, 'None'),
doc = i(4, 'docstring'),
body = i(5, 'pass'),
}, {
})),
s('ternary', {
i(1, 'then'), t(' if '), i(2, 'condition'), t(' else '), i(3, 'else')
}),
s('tuple ternary', fmt([[
({if_true}, {if_false})[{condition}]
]], {
if_true = i(1, 'if_true'),
if_false = i(2, 'if_false'),
condition = i(3, 'condition'),
})),
})