59 lines
1.4 KiB
Lua
59 lines
1.4 KiB
Lua
local status_ok, luasnip = pcall(require, "luasnip")
|
|
if not status_ok then
|
|
return
|
|
end
|
|
|
|
if vim.g.snippets ~= "luasnip" then
|
|
return
|
|
end
|
|
|
|
-- Create a new snippet.
|
|
local s = luasnip.s
|
|
|
|
-- Different node types.
|
|
local c = luasnip.choice_node
|
|
local i = luasnip.insert_node
|
|
local t = luasnip.text_node
|
|
|
|
local snippets = {}
|
|
|
|
-- Snippets for both JavaScript and TypeScript.
|
|
local js_ts = {
|
|
s({ trig = "log", dscr = "console.log" }, { t "console.log(", i(1, "value"), t ");" }),
|
|
}
|
|
|
|
snippets.js = js_ts
|
|
|
|
snippets.markdown = {
|
|
s(
|
|
{ trig = "frontmatter", dscr = "Document frontmatter" },
|
|
{ t { "---", "tags: " }, i(1, "value"), t { "", "---", "" }, i(0) }
|
|
),
|
|
}
|
|
|
|
snippets.php = {
|
|
s({ trig = "test", dscr = "Test block" }, {
|
|
t { "/* @test **/", "" },
|
|
t "public function ",
|
|
c(1, { t "test", t "it", t "should" }), -- The test method name prefix.
|
|
i(2), -- The test method name.
|
|
t { "(): void {", "" },
|
|
t " ",
|
|
i(0), -- The method body.
|
|
t { "", "}" },
|
|
}),
|
|
}
|
|
|
|
snippets.typescript = js_ts
|
|
snippets.vue = js_ts
|
|
|
|
luasnip.snippets = snippets
|
|
|
|
vim.cmd [[
|
|
imap <silent><expr> <c-k> luasnip#expand_or_jumpable() ? '<Plug>luasnip-expand-or-jump' : ''
|
|
inoremap <silent> <c-j> <cmd>lua require('luasnip').jump(-1)<CR>
|
|
imap <silent><expr> <C-l> luasnip#choice_active() ? '<Plug>luasnip-next-choice' : '<C-l>'
|
|
snoremap <silent> <c-k> <cmd>lua require('luasnip').jump(1)<CR>
|
|
snoremap <silent> <c-j> <cmd>lua require('luasnip').jump(-1)<CR>
|
|
]]
|