about summary refs log tree commit diff stats
path: root/modules/home/conf/nvim/plgs/luasnip/lua/snippets/html
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:31:11 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:33:40 +0200
commitfd9b0ecef4142a62b45404700ba1cff488f84a73 (patch)
treeef6c1f74f05a2220a41ccff4b0890c39229f32f7 /modules/home/conf/nvim/plgs/luasnip/lua/snippets/html
parentrefactor(pkgs): Categorize into `by-name` shards (diff)
downloadnixos-config-fd9b0ecef4142a62b45404700ba1cff488f84a73.zip
refactor(modules/home): Setup as "normal" NixOS module
Diffstat (limited to 'modules/home/conf/nvim/plgs/luasnip/lua/snippets/html')
-rw-r--r--modules/home/conf/nvim/plgs/luasnip/lua/snippets/html/html.lua108
1 files changed, 108 insertions, 0 deletions
diff --git a/modules/home/conf/nvim/plgs/luasnip/lua/snippets/html/html.lua b/modules/home/conf/nvim/plgs/luasnip/lua/snippets/html/html.lua
new file mode 100644
index 00000000..17e1e7fb
--- /dev/null
+++ b/modules/home/conf/nvim/plgs/luasnip/lua/snippets/html/html.lua
@@ -0,0 +1,108 @@
+local get_visual = function(args, parent)
+  if #parent.snippet.env.SELECT_RAW > 0 then
+    return sn(nil, i(1, parent.snippet.env.SELECT_RAW))
+  else
+    return sn(nil, i(1))
+  end
+end
+
+local line_begin = require("luasnip.extras.expand_conditions").line_begin
+
+return {
+  -- HEADER
+  s(
+    {
+      trig = "h([123456])",
+      regTrig = true,
+      wordTrig = false,
+      snippetType = "autosnippet",
+    },
+    fmt(
+      [[
+          <h{}>{}</h{}>
+        ]],
+      {
+        f(function(_, snip)
+          return snip.captures[1]
+        end),
+        d(1, get_visual),
+        f(function(_, snip)
+          return snip.captures[1]
+        end),
+      }
+    ),
+    { condition = line_begin }
+  ), -- PARAGRAPH
+  s(
+    { trig = "pp", snippetType = "autosnippet" },
+    fmt(
+      [[
+          <p>{}</p>
+        ]],
+      { d(1, get_visual) }
+    ),
+    { condition = line_begin }
+  ), -- UNORDERED LIST
+  s(
+    { trig = "itt", snippetType = "autosnippet" },
+    fmt(
+      [[
+          <ul>
+            <li>{}</li>{}
+          </ul>
+        ]],
+      { i(1), i(0) }
+    ),
+    { condition = line_begin }
+  ), -- LIST ITEM
+  s(
+    { trig = "ii", snippetType = "autosnippet" },
+    fmt(
+      [[
+            <li>{}</li>
+        ]],
+      { d(1, get_visual) }
+    ),
+    { condition = line_begin }
+  ),
+  -- DOCUMENT TEMPLATE
+  s(
+    { trig = "base" },
+    fmt(
+      [[
+        <!doctype HTML>
+        <html lang="en">
+        <head>
+          <meta charset="UTF-8">
+          <title>{}</title>
+        </head>
+        <body>
+          {}
+        </body>
+        </html>
+        ]],
+      { i(1, "FooBar"), i(0) }
+    ),
+    { condition = line_begin }
+  ), -- ANCHOR TAG
+  s(
+    {
+      trig = "([^%l])aa",
+      regTrig = true,
+      wordTrig = false,
+      snippetType = "autosnippet",
+    },
+    fmt(
+      [[
+          {}<a href="{}">{}</a>
+        ]],
+      {
+        f(function(_, snip)
+          return snip.captures[1]
+        end),
+        i(1),
+        d(2, get_visual),
+      }
+    )
+  ),
+}