nvim/lua/custom/snippets/go.lua
2024-12-06 23:35:57 +01:00

37 lines
754 B
Lua

require("luasnip.session.snippet_collection").clear_snippets "go"
local ls = require "luasnip"
local s = ls.snippet
local i = ls.insert_node
local fmt = require("luasnip.extras.fmt").fmt
ls.add_snippets("go", {
s("if err", fmt([[
if err != nil {{
{}
return {}
}}
]], { i(1), i(2) })),
s("for", fmt([[
for i := range {} {{
{}
}}
]], { i(1), i(2), })),
s("unmarshal", fmt([[
var {var_name} {}
if err := json.Unmarshal({}, &{var_name}); err != nil {{
return err
}}
]], { var_name = i(1), i(2), i(3) }, { repeat_duplicates = true })),
s("decode", fmt([[
var {var_name} {}
if err := json.NewDecoder({}).Decode(&{var_name}); err != nil {{
return err
}}
]], { var_name = i(1), i(2), i(3) }, { repeat_duplicates = true })),
})