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),
}
)
),
}
|