about summary refs log tree commit diff stats
path: root/modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/html/html.lua
blob: 568c97ecd25913255b60ad91a75e69f802181089 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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),
      }
    )
  ),
}