95 lines
1.9 KiB
Lua
95 lines
1.9 KiB
Lua
local ls = require("luasnip")
|
|
local s = ls.snippet
|
|
local sn = ls.snippet_node
|
|
local isn = ls.indent_snippet_node
|
|
local t = ls.text_node
|
|
local i = ls.insert_node
|
|
local f = ls.function_node
|
|
local c = ls.choice_node
|
|
local d = ls.dynamic_node
|
|
local r = ls.restore_node
|
|
local events = require("luasnip.util.events")
|
|
local ai = require("luasnip.nodes.absolute_indexer")
|
|
local extras = require("luasnip.extras")
|
|
local l = extras.lambda
|
|
local rep = extras.rep
|
|
local p = extras.partial
|
|
local m = extras.match
|
|
local n = extras.nonempty
|
|
local dl = extras.dynamic_lambda
|
|
local fmt = require("luasnip.extras.fmt").fmt
|
|
local fmta = require("luasnip.extras.fmt").fmta
|
|
local conds = require("luasnip.extras.expand_conditions")
|
|
local postfix = require("luasnip.extras.postfix").postfix
|
|
local types = require("luasnip.util.types")
|
|
local parse = require("luasnip.util.parser").parse_snippet
|
|
local ms = ls.multi_snippet
|
|
local k = require("luasnip.nodes.key_indexer").new_key
|
|
|
|
-- lua snippets
|
|
ls.add_snippets("lua", {
|
|
s(
|
|
"lreq",
|
|
fmt('local {name} = require("{mod}{rep}")', {
|
|
name = i(1, "name"),
|
|
rep = rep(1),
|
|
mod = i(2),
|
|
})
|
|
),
|
|
})
|
|
|
|
-- js/ts/sx snippets
|
|
local allJsFts = {
|
|
"javascript",
|
|
"typescript",
|
|
"typescriptreact",
|
|
"javascriptreact",
|
|
}
|
|
local tsFts = {
|
|
"typescriptreact",
|
|
"typescript",
|
|
}
|
|
|
|
local import = s(
|
|
"im",
|
|
fmt("import {name} from '{module}';", {
|
|
module = i(1),
|
|
name = c(2, { i(1), fmt("{{{}}}", { i(1) }) }),
|
|
})
|
|
)
|
|
local field = s(
|
|
"fi",
|
|
fmt("{name}: {type};", {
|
|
name = i(1),
|
|
type = i(2),
|
|
})
|
|
)
|
|
local constF = s(
|
|
"cf",
|
|
fmt(
|
|
[[{export}const {name}{type} = ({args}){ret} => {{
|
|
{body}
|
|
}}]],
|
|
{
|
|
export = c(1, { t("export "), i(1) }),
|
|
name = i(2),
|
|
type = i(3),
|
|
args = i(3),
|
|
ret = i(4),
|
|
body = i(5),
|
|
}
|
|
)
|
|
)
|
|
|
|
for _, ft in ipairs(tsFts) do
|
|
ls.add_snippets(ft, {
|
|
constF,
|
|
field,
|
|
})
|
|
end
|
|
|
|
for _, ft in ipairs(allJsFts) do
|
|
ls.add_snippets(ft, {
|
|
import,
|
|
})
|
|
end
|