diff --git a/lua/snippets/javascript.lua b/lua/snippets/javascript.lua
index 375224f..e9becb4 100644
--- a/lua/snippets/javascript.lua
+++ b/lua/snippets/javascript.lua
@@ -1,45 +1,128 @@
local ls = require 'luasnip'
local s = ls.snippet
+local sn = ls.snippet_node
+local fn = ls.function_node
+local ms = ls.multi_snippet
local t = ls.text_node
+local c = ls.choice_node
local i = ls.insert_node
local f = ls.function_node
+local d = ls.dynamic_node
+local fmt = require('luasnip.extras.fmt').fmt
+local rep = require('luasnip.extras').rep
+local extend_decorator = require 'luasnip.util.extend_decorator'
+local fmta = extend_decorator.apply(fmt, { delimiters = '#~' })
+
+local utils = require 'snippets.snip_utils'
+local tr = utils.tr
+local etr = utils.etr
+local atr = utils.atr
+local ctr = utils.ctr
+local bs = utils.bs
return {
- s('du', { t 'console.log(', i(0), t ');' }),
+ s(etr('du ', 'Dump a variable to the console'), fmta('console.log(#~);', { i(0) })),
+ s(
+ etr('vue', 'Vue Single File Component skeleton'),
+ fmta(
+ [[
+
+
+
+
+ ]],
+ { i(0) }
+ )
+ ),
- s('vue', {
- t { '', '' },
- t { '', '', '', '', '', '', '', '' },
+ bs(atr('t ', 'this'), fmta('this.#~', { i(0) })),
+
+ s(etr('return ', 'Add semicolon after return'), fmta('return #~;', { i(0) })),
+ s(etr('rt ', 'return alias'), fmta('return #~;', { i(0) })),
+
+ s(etr('const', 'const declaration'), {
+ c(1, {
+ sn(nil, fmta('const #~ = #~;', { i(1, 'variableName'), i(2, 'value') })),
+ sn(
+ nil,
+ fmta(
+ [[
+ const #~ = (#~) => {
+ #~
+ }
+ ]],
+ { i(1), i(2), i(3) }
+ )
+ ),
+ }),
}),
- s('fun', {
- t 'function ',
- i(1),
- t '(',
- i(2),
- t ') {',
- t { '', ' ' },
- i(0),
- t { '', '}' },
+ s(
+ etr('fn ', 'function block'),
+ fmta(
+ [[
+ function #~(#~) {
+ #~
+ }
+ ]],
+ { i(1), i(2), i(0) }
+ )
+ ),
+
+ bs(atr('fn ', 'function block'), {
+ c(1, {
+ sn(
+ nil,
+ fmta(
+ [[
+ (#~) => {
+ #~
+ }
+ ]],
+ { i(1), i(2) }
+ )
+ ),
+ sn(
+ nil,
+ fmta(
+ [[
+ function (#~) {
+ #~
+ }
+ ]],
+ { i(1), i(2) }
+ )
+ ),
+ }),
}),
- s('afun', {
- t 'async function ',
- i(1),
- t '(',
- i(2),
- t ') {',
- t { '', ' ' },
- i(0),
- t { '', '}' },
- }),
-
- s('()', {
- t '() => {',
- t { '', ' ' },
- i(0),
- t { '', '}' },
+ bs(atr('afn ', 'async function block'), {
+ c(1, {
+ sn(
+ nil,
+ fmta(
+ [[
+ async (#~) => {
+ #~
+ }
+ ]],
+ { i(1), i(2) }
+ )
+ ),
+ sn(
+ nil,
+ fmta(
+ [[
+ async function (#~) {
+ #~
+ }
+ ]],
+ { i(1), i(2) }
+ )
+ ),
+ }),
}),
}
diff --git a/lua/snippets/php.lua b/lua/snippets/php.lua
index 694bbcc..06b8824 100644
--- a/lua/snippets/php.lua
+++ b/lua/snippets/php.lua
@@ -170,7 +170,7 @@ return {
s(etr('return ', 'Add semicolon after return'), fmta('return #~;', { i(0) })),
s(atr(' use ', 'Add use to function'), fmta(' use (#~)', { i(0) })),
s(etr('rt ', 'return alias'), fmta('return #~;', { i(0) })),
- bs(etr('fn ', 'Shorthand function block'), {
+ bs(atr('fn ', 'Shorthand function block'), {
c(1, {
sn(nil, fmta('fn (#~) => #~', { i(1), i(2) })),
sn(
@@ -186,7 +186,7 @@ return {
),
}),
}),
- bs(etr('fun ', 'Shorthand function block'), {
+ bs(atr('fun ', 'Shorthand function block'), {
c(1, {
sn(
nil,
@@ -371,7 +371,7 @@ return {
-------------
s(
etr('bt', 'belongsTo Laravel relationship method'),
- c(0, {
+ c(1, {
sn(
nil,
fmta(
@@ -384,7 +384,7 @@ return {
return $this->belongsTo(#~::class);
}
]],
- { rep(1), i(0), i(1) }
+ { rep(1), i(2), i(1) }
)
),
sn(
@@ -399,14 +399,14 @@ return {
return $this->belongsTo(#~::class, #~);
}
]],
- { rep(1), i(2), i(1), i(0) }
+ { rep(1), i(2), i(1), i(3) }
)
),
})
),
s(
etr('hm', 'hasMany Laravel relationship method'),
- c(0, {
+ c(1, {
sn(
nil,
fmta(
@@ -419,7 +419,7 @@ return {
return $this->hasOne(#~::class);
}
]],
- { rep(1), i(0), i(1) }
+ { rep(1), i(2), i(1) }
)
),
sn(
@@ -434,14 +434,14 @@ return {
return $this->hasOne(#~::class, #~);
}
]],
- { rep(1), i(2), i(1), i(0) }
+ { rep(1), i(2), i(1), i(3) }
)
),
})
),
s(
etr('ho', 'hasOne Laravel relationship method'),
- c(0, {
+ c(1, {
sn(
nil,
fmta(
@@ -454,7 +454,7 @@ return {
return $this->hasOne(#~::class);
}
]],
- { rep(1), i(0), i(1) }
+ { rep(1), i(2), i(1) }
)
),
sn(
@@ -469,14 +469,14 @@ return {
return $this->hasOne(#~::class, #~);
}
]],
- { rep(1), i(2), i(1), i(0) }
+ { rep(1), i(2), i(1), i(3) }
)
),
})
),
s(
etr('bm', 'belongsToMany Laravel relationship method'),
- c(0, {
+ c(1, {
sn(
nil,
fmta(
@@ -489,7 +489,7 @@ return {
return $this->belongsToMany(#~::class, #~);
}
]],
- { rep(1), i(2), i(1), i(0) }
+ { rep(1), i(2), i(1), i(3) }
)
),
sn(
@@ -504,16 +504,16 @@ return {
return $this->belongsToMany(#~::class, #~, #~);
}
]],
- { rep(1), i(2), i(1), i(3), i(0) }
+ { rep(1), i(2), i(1), i(3), i(4) }
)
),
})
),
s(
atr('->wr', 'Eloquent where method'),
- c(0, {
- sn(nil, fmta("->where('#~', #~)", { i(1), i(0) })),
- sn(nil, fmta('->where(fn ($query) => #~)', { i(0) })),
+ c(1, {
+ sn(nil, fmta("->where('#~', #~)", { i(1), i(2) })),
+ sn(nil, fmta('->where(fn ($query) => #~)', { i(1) })),
sn(
nil,
fmta(
@@ -522,7 +522,7 @@ return {
#~
})
]],
- { i(0) }
+ { i(1) }
)
),
sn(
@@ -533,7 +533,7 @@ return {
#~
})
]],
- { i(1), i(0) }
+ { i(1), i(2) }
)
),
})
@@ -541,8 +541,8 @@ return {
s(atr('->wi', 'Eloquent where in method'), fmta("->whereIn('#~', #~)", { i(1), i(0) })),
s(atr('->wn', 'Eloquent where not in method'), fmta("->whereNotIn('#~', #~)", { i(1), i(0) })),
s(
- atr('->wh', 'Eloquent where has method'),
- c(0, {
+ atr('->wha', 'Eloquent where has method'),
+ c(1, {
sn(nil, fmta("->whereHas('#~')", { i(1) })),
sn(nil, fmta("->whereHas('#~', fn ($query) => #~)", { i(1), i(0) })),
sn(
@@ -553,7 +553,7 @@ return {
#~
})
]],
- { i(1), i(0) }
+ { i(1), i(1) }
)
),
sn(
@@ -564,14 +564,14 @@ return {
#~
})
]],
- { i(1), i(2), i(0) }
+ { i(1), i(2), i(3) }
)
),
})
),
s(
atr('->we', 'Eloquent where exists method'),
- c(0, {
+ c(1, {
sn(nil, fmta('->whereExists(fn ($query) => #~)', { i(0) })),
sn(
nil,
@@ -581,7 +581,7 @@ return {
#~
})
]],
- { i(0) }
+ { i(1) }
)
),
sn(
@@ -592,7 +592,7 @@ return {
#~
})
]],
- { i(1), i(0) }
+ { i(1), i(2) }
)
),
})