my demo first config lua
This commit is contained in:
69
lua/alpha/snips/ft/lua.lua
Normal file
69
lua/alpha/snips/ft/lua.lua
Normal file
@@ -0,0 +1,69 @@
|
||||
local ls = require "luasnip"
|
||||
|
||||
-- local snippet = ls.s
|
||||
local snippet_from_nodes = ls.sn
|
||||
local c = ls.choice_node
|
||||
local d = ls.dynamic_node
|
||||
local i = ls.insert_node
|
||||
local f = ls.function_node
|
||||
local t = ls.text_node
|
||||
|
||||
local fmt = require("luasnip.extras.fmt").fmt
|
||||
|
||||
local require_var = function(args, _)
|
||||
local text = args[1][1] or ""
|
||||
local split = vim.split(text, ".", { plain = true })
|
||||
|
||||
local options = {}
|
||||
for len = 0, #split - 1 do
|
||||
table.insert(options, t(table.concat(vim.list_slice(split, #split - len, #split), "_")))
|
||||
end
|
||||
|
||||
return snippet_from_nodes(nil, {
|
||||
c(1, options),
|
||||
})
|
||||
end
|
||||
|
||||
local newline = function(text)
|
||||
return t { "", text }
|
||||
end
|
||||
|
||||
return {
|
||||
req = fmt([[local {} = require("{}")]], {
|
||||
d(2, require_var, { 1 }),
|
||||
i(1),
|
||||
}),
|
||||
lf = {
|
||||
desc = "table function",
|
||||
"local ",
|
||||
i(1),
|
||||
" = function(",
|
||||
i(2),
|
||||
")",
|
||||
newline " ",
|
||||
i(0),
|
||||
newline "end",
|
||||
},
|
||||
|
||||
preq = fmt(
|
||||
[[local ok, {} = pcall(require, "{}")
|
||||
if not ok then
|
||||
return
|
||||
end]],
|
||||
{
|
||||
f(function(args)
|
||||
return args[1][1]
|
||||
end, { 1 }),
|
||||
i(1),
|
||||
}
|
||||
),
|
||||
|
||||
plugin = fmt(
|
||||
[[return {{
|
||||
"{}"
|
||||
}}]],
|
||||
{
|
||||
i(1, "plugin"),
|
||||
}
|
||||
),
|
||||
}
|
||||
Reference in New Issue
Block a user