112 lines
3.2 KiB
Lua
112 lines
3.2 KiB
Lua
return {
|
|
'L3MON4D3/LuaSnip',
|
|
dependencies = { 'rafamadriz/friendly-snippets' },
|
|
config = function()
|
|
local ls = require('luasnip')
|
|
ls.setup({
|
|
-- Required to automatically include base snippets, like "c" snippets for "cpp"
|
|
-- load_ft_func = require('luasnip_snippets.common.snip_utils').load_ft_func,
|
|
-- ft_func = require('luasnip_snippets.common.snip_utils').ft_func,
|
|
-- To enable auto expansin
|
|
enable_autosnippets = true,
|
|
-- Uncomment to enable visual snippets triggered using <c-x>
|
|
store_selection_keys = '<c-x>',
|
|
})
|
|
-- some shorthands...
|
|
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 l = require('luasnip.extras').lambda
|
|
local rep = require('luasnip.extras').rep
|
|
local p = require('luasnip.extras').partial
|
|
local m = require('luasnip.extras').match
|
|
local n = require('luasnip.extras').nonempty
|
|
local dl = require('luasnip.extras').dynamic_lambda
|
|
local fmt = require('luasnip.extras.fmt').fmt
|
|
local fmta = require('luasnip.extras.fmt').fmta
|
|
local types = require('luasnip.util.types')
|
|
local conds = require('luasnip.extras.expand_conditions')
|
|
|
|
local function getRegA(capitalize)
|
|
local clipboard = vim.fn.getreg('a')
|
|
clipboard = clipboard:gsub('^m_', '')
|
|
if capitalize then
|
|
clipboard = clipboard:gsub('^%l', string.upper)
|
|
end
|
|
return clipboard
|
|
end
|
|
|
|
ls.snippets = {
|
|
cpp = {
|
|
s('TEST_F_getset', {
|
|
t('TEST_F('),
|
|
i(1, 'TestClass'),
|
|
t(' ,test_'),
|
|
p(getRegA, false),
|
|
t({ '_set_get)', '{', ' ' }),
|
|
i(2, 'm_object'),
|
|
t('.set'),
|
|
p(getRegA, true),
|
|
t('('),
|
|
i(3, '32.F'),
|
|
t({ ');', ' ' }),
|
|
i(4, 'EXPECT_EQ('),
|
|
rep(3),
|
|
t(', '),
|
|
rep(2),
|
|
t('.get'),
|
|
p(getRegA, true),
|
|
t({ '());', '' }),
|
|
t({ '', '}', '' }),
|
|
}),
|
|
s('TEST_fn_getset', {
|
|
t('void '),
|
|
p(getRegA, false),
|
|
t('_'),
|
|
i(1, 'get'),
|
|
t('_'),
|
|
i(2, 'set'),
|
|
t({ '()', '{', ' ' }),
|
|
i(3, 'm_object'),
|
|
t('.set'),
|
|
p(getRegA, true),
|
|
t('('),
|
|
i(4, '32.F'),
|
|
t({ ');', ' ' }),
|
|
i(5, 'EXPECT_EQ('),
|
|
rep(4),
|
|
t(', '),
|
|
rep(3),
|
|
t('.get'),
|
|
p(getRegA, true),
|
|
t({ '());', '' }),
|
|
t({ '', '}', '', '' }),
|
|
|
|
t('TEST_F('),
|
|
i(5),
|
|
t(' ,test_'),
|
|
p(getRegA, false),
|
|
t({ '_set_get)', '{', ' ' }),
|
|
p(getRegA, false),
|
|
t('_'),
|
|
rep(1),
|
|
t('_'),
|
|
rep(2),
|
|
t({ '();' }),
|
|
t({ '', '}' }),
|
|
}),
|
|
},
|
|
}
|
|
|
|
require('luasnip.loaders.from_vscode').lazy_load()
|
|
require('luasnip.loaders.from_vscode').lazy_load({ paths = { './my-snippets' } })
|
|
end,
|
|
cmd = 'LuaSnipListAvailable',
|
|
}
|