summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/snippets
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/snippets')
-rw-r--r--.config/nvim/lua/snippets/go.lua77
-rw-r--r--.config/nvim/lua/snippets/lua.lua37
2 files changed, 114 insertions, 0 deletions
diff --git a/.config/nvim/lua/snippets/go.lua b/.config/nvim/lua/snippets/go.lua
new file mode 100644
index 0000000..d6b7114
--- /dev/null
+++ b/.config/nvim/lua/snippets/go.lua
@@ -0,0 +1,77 @@
+require('luasnip.session.snippet_collection').clear_snippets('go')
+local ls = require('luasnip')
+local s = ls.snippet
+local t = ls.text_node
+local i = ls.insert_node
+local d = ls.dynamic_node
+
+---@param abbr string
+---@param expansion string
+---@param args table
+local function snip(abbr, expansion, args)
+ return ls.snippet(abbr, require('luasnip.extras.fmt').fmt(expansion, args))
+end
+
+local tea_model = [=[
+import (
+ "fmt"
+
+ tea "github.com/charmbracelet/bubbletea"
+)
+
+type Model struct{{
+ {}
+}}
+
+func New() Model {{
+ return Model{{
+ }}
+}}
+
+func (m Model) Init() tea.Cmd {{
+ return nil
+}}
+
+func (m Model) View() string {{
+ return fmt.Sprintf(
+ "%s",
+ "",
+ )
+}}
+
+func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {{
+ switch msg := msg.(type) {{
+ default:
+ return m, nil
+ }}
+}}
+]=]
+
+local server_api = [=[
+func {}(ctx context.Context, sess *session.Session, request packet{}) packet.Payload {{
+}}
+]=]
+
+ls.add_snippets('go', {
+ snip('tmod', tea_model, { i(0) }),
+ snip('sapi', server_api, { i(1), i(0) }),
+
+ s('iferr', {
+ t({ 'if err != nil {', '' }),
+ i(1, ' return'),
+ t({ '', '}' }),
+ }),
+
+ s('fmterr', {
+ t('fmt.Errorf("'),
+ i(1, 'msg'),
+ t(': %w", err)'),
+ }),
+
+ s('dberr', {
+ t({ 'if err != nil {', '' }),
+ i(2, { ' log.Println("database error ', 'x', ':", err)', '' }),
+ i(2, ' return ', '&ErrInternalError'),
+ t({ '', '}' }),
+ }),
+})
diff --git a/.config/nvim/lua/snippets/lua.lua b/.config/nvim/lua/snippets/lua.lua
new file mode 100644
index 0000000..194f776
--- /dev/null
+++ b/.config/nvim/lua/snippets/lua.lua
@@ -0,0 +1,37 @@
+require('luasnip.session.snippet_collection').clear_snippets('lua')
+local ls = require('luasnip')
+local i = ls.insert_node
+
+---@param abbr string
+---@param expansion string
+---@param args table
+local function s(abbr, expansion, args)
+ return ls.snippet(abbr, require('luasnip.extras.fmt').fmt(expansion, args))
+end
+
+local carbonight_group = [=[
+--[[
+Copyright (C) 2024 Kyren223
+This file is licensed under the GPL-3.0-or-later license, see https://fsf.org/licenses/gpl-3.0
+--]]
+
+local utils = require("carbonight.utils")
+
+local M = {{}}
+
+---@param c Colors
+function M.get(c)
+ return {{
+ {}
+ }}
+end
+
+return M
+]=]
+
+ls.add_snippets('lua', {
+ s('desc', "{{ desc = '{}' }}", { i(0) }),
+ s('cmd', '<cmd>{}<cr>', { i(0) }),
+ s('scmd', "'<cmd>{}<cr>'", { i(0) }),
+ s('cng', carbonight_group, { i(0) }),
+})