diff --git a/init.lua b/init.lua index 513e63e..744e340 100644 --- a/init.lua +++ b/init.lua @@ -23,6 +23,7 @@ require('my_telescope') require('my_lspinstall') require('my_cmp') require('my_neogen') +require('my_luasnip') -------------------- TREE-SITTER --------------------------- require('nvim-treesitter.configs').setup({ ensure_installed = 'maintained', @@ -135,8 +136,6 @@ require("project_nvim").setup { } require('telescope').load_extension('projects') utils.map('n', 'p', 'Telescope projects') --------------------- LUASNIP ------------------------------- -require("luasnip.loaders.from_vscode").load() -------------------- AUTOPAIRS ----------------------------- require('nvim-autopairs').setup{} -------------------- FZF NATIVE ---------------------------- diff --git a/lua/my_keymappings.lua b/lua/my_keymappings.lua index 5820dd5..2ed0f5f 100644 --- a/lua/my_keymappings.lua +++ b/lua/my_keymappings.lua @@ -55,6 +55,8 @@ utils.map('v', '', 'g') utils.map('v', '<', '', '>gv') +utils.map('n', 'a', '"ayw') + -- Highlight word under cursor utils.map('n', 'ü', ":let @/='\\<=expand(\"\")\\>':set hls", { noremap = true, silent = true }) utils.map('v', 'ü', "y:let @/='=escape(@\",'/\\')':set hls") utils.map('v', 'ü', "y:let @/='=escape(@\",'/\\')':set hls", { noremap = true, silent = true }) diff --git a/lua/my_luasnip.lua b/lua/my_luasnip.lua new file mode 100644 index 0000000..9eeb9c6 --- /dev/null +++ b/lua/my_luasnip.lua @@ -0,0 +1,52 @@ +local ls = require("luasnip") +require("luasnip.loaders.from_vscode").load() +-- 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('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({'','}'}) + }) + }, +}