From 8eaa615596be321a3be12378c5e7d65cc7e482b6 Mon Sep 17 00:00:00 2001
From: Squibid <me@zacharyscheiman.com>
Date: Fri, 24 Jan 2025 13:56:11 -0600
Subject: kitchen sink

---
 lua/snippets/c.lua   | 14 +++++++++++
 lua/snippets/tex.lua | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 84 insertions(+)
 create mode 100644 lua/snippets/tex.lua

(limited to 'lua/snippets')

diff --git a/lua/snippets/c.lua b/lua/snippets/c.lua
index 65463dc..be0a683 100644
--- a/lua/snippets/c.lua
+++ b/lua/snippets/c.lua
@@ -9,8 +9,21 @@ local function c_func(func)
   local q = vim.treesitter.query.parse("c", "(function_definition) @f")
   local matches = q:iter_matches(tree, 0)
 
+  vim.treesitter.query.parse("c", "(identifier) @i")
+  local m = q:iter_matches(matches, 0)
+  print(vim.treesitter.get_node_text(m:child(), 0))
+
+  if true then
+    return
+  end
+
   for _, match in matches do
     for _, node in pairs(match) do
+      if not node or not node:child(1) or not node:child(1):child() then
+        -- print(vim.treesitter.get_node_text(node:child(1):child(), 0))
+        goto continue
+      end
+
       if vim.treesitter.get_node_text(node:child(1):child(), 0) == func then
         local def = ""
         for i = 0, node:child_count() - 2 do
@@ -22,6 +35,7 @@ local function c_func(func)
         -- Print the function name using node text
         return def:gsub("\n", "")
       end
+      ::continue::
     end
   end
 
diff --git a/lua/snippets/tex.lua b/lua/snippets/tex.lua
new file mode 100644
index 0000000..0e87437
--- /dev/null
+++ b/lua/snippets/tex.lua
@@ -0,0 +1,70 @@
+require('core.snippets.shorthands')
+require('core.snippets.functions')
+
+return {
+  -- document snippet
+  s("doc",
+    fmta(
+      [[
+      \documentclass{article}
+      \title{<>}
+      \author{<>}
+      \begin{document}
+      \maketitle
+      <>
+      \end{document}
+      ]],
+      {
+        c(1, {
+          sn(nil, { f(file_name, {}), i(1) }),
+          i(1, "my title")
+        }),
+        i(2, "my name"),
+        i(0)
+      }
+    )
+  ),
+
+  s({ trig = ";begin", snippetType = "autosnippet" },
+    fmta(
+      [[
+      \begin{<>}
+        <>
+      \end{<>}
+      ]],
+      {
+        i(1),
+        i(0),
+        rep(1)
+      }
+    )
+  ),
+
+  s({ trig = ";href", snippetType = "autosnippet" },
+    fmta(
+      [[\href{<>}{<>}]],
+      {
+        i(1, "url"),
+        i(2, "display name"),
+      }
+    )
+  ),
+
+  postfix(".b", {
+    f(function(_, parent)
+      return [[\textbf{]]..parent.snippet.env.POSTFIX_MATCH.."}"
+    end)
+  }),
+
+  postfix(".i", {
+    f(function(_, parent)
+      return [[\textit{]]..parent.snippet.env.POSTFIX_MATCH.."}"
+    end)
+  }),
+
+  postfix(".ul", {
+    f(function(_, parent)
+      return [[\underline{]]..parent.snippet.env.POSTFIX_MATCH.."}"
+    end)
+  })
+}
-- 
cgit v1.2.1