Make cpp for snippet dynamic
This commit is contained in:
		
							parent
							
								
									0410dfc23d
								
							
						
					
					
						commit
						59d3ea0978
					
				@ -138,8 +138,8 @@ return {
 | 
				
			|||||||
      }),
 | 
					      }),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      sources = {
 | 
					      sources = {
 | 
				
			||||||
        { name = 'nvim_lsp' },
 | 
					 | 
				
			||||||
        { name = 'luasnip' },
 | 
					        { name = 'luasnip' },
 | 
				
			||||||
 | 
					        { name = 'nvim_lsp' },
 | 
				
			||||||
        { name = 'buffer' },
 | 
					        { name = 'buffer' },
 | 
				
			||||||
        { name = 'path' },
 | 
					        { name = 'path' },
 | 
				
			||||||
        { name = 'git' },
 | 
					        { name = 'git' },
 | 
				
			||||||
 | 
				
			|||||||
@ -22,5 +22,15 @@ return {
 | 
				
			|||||||
        luasnip.jump(-1)
 | 
					        luasnip.jump(-1)
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    end, { silent = true })
 | 
					    end, { silent = true })
 | 
				
			||||||
 | 
					    -- vim.keymap.set('s', '<M-l>', function()
 | 
				
			||||||
 | 
					    --   if luasnip.choice_active() then
 | 
				
			||||||
 | 
					    --     luasnip.change_choice(1)
 | 
				
			||||||
 | 
					    --   end
 | 
				
			||||||
 | 
					    -- end, { silent = true })
 | 
				
			||||||
 | 
					    -- vim.keymap.set('s', '<M-h>', function()
 | 
				
			||||||
 | 
					    --   if luasnip.choice_active() then
 | 
				
			||||||
 | 
					    --     luasnip.change_choice(-1)
 | 
				
			||||||
 | 
					    --   end
 | 
				
			||||||
 | 
					    -- end, { silent = true })
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,7 @@ local snip = luasnip.snippet
 | 
				
			|||||||
local text = luasnip.text_node
 | 
					local text = luasnip.text_node
 | 
				
			||||||
-- local isn = luasnip.indent_snippet_node
 | 
					-- local isn = luasnip.indent_snippet_node
 | 
				
			||||||
-- local t = luasnip.text_node
 | 
					-- local t = luasnip.text_node
 | 
				
			||||||
local insert = luasnip.insert_node
 | 
					local ins = luasnip.insert_node
 | 
				
			||||||
local func = luasnip.function_node
 | 
					local func = luasnip.function_node
 | 
				
			||||||
-- local c = luasnip.choice_node
 | 
					-- local c = luasnip.choice_node
 | 
				
			||||||
-- local d = luasnip.dynamic_node
 | 
					-- local d = luasnip.dynamic_node
 | 
				
			||||||
@ -67,7 +67,7 @@ for _, name in ipairs({ 'fixme', 'todo', 'hack', 'warn', 'note' }) do
 | 
				
			|||||||
    snip(name, {
 | 
					    snip(name, {
 | 
				
			||||||
      func(comment_prefix),
 | 
					      func(comment_prefix),
 | 
				
			||||||
      text(string.upper(name) .. ': '),
 | 
					      text(string.upper(name) .. ': '),
 | 
				
			||||||
      insert(0),
 | 
					      ins(0),
 | 
				
			||||||
      func(comment_suffix),
 | 
					      func(comment_suffix),
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
  )
 | 
					  )
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,48 @@
 | 
				
			|||||||
# C++ LuaSnip Snippets
 | 
					-- C++ LuaSnip Snippets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local luasnip = require('luasnip')
 | 
					local luasnip = require('luasnip')
 | 
				
			||||||
 | 
					 | 
				
			||||||
luasnip.filetype_extend('cpp', { 'c' })
 | 
					luasnip.filetype_extend('cpp', { 'c' })
 | 
				
			||||||
 | 
					local snip = luasnip.snippet
 | 
				
			||||||
 | 
					local text = luasnip.text_node
 | 
				
			||||||
 | 
					local ins = luasnip.insert_node
 | 
				
			||||||
 | 
					local dyn = luasnip.dynamic_node
 | 
				
			||||||
 | 
					local node = luasnip.snippet_node
 | 
				
			||||||
 | 
					local key = require("luasnip.nodes.key_indexer").new_key
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local snippets = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  snip('for', {
 | 
				
			||||||
 | 
					    text('for ('),
 | 
				
			||||||
 | 
					    ins(1, 'auto'),
 | 
				
			||||||
 | 
					    text(' '),
 | 
				
			||||||
 | 
					    ins(2, 'index'),
 | 
				
			||||||
 | 
					    text(' '),
 | 
				
			||||||
 | 
					    ins(3, '='),
 | 
				
			||||||
 | 
					    dyn(4, function(args)
 | 
				
			||||||
 | 
					      local choice = args[2][1]
 | 
				
			||||||
 | 
					      if choice == '=' then -- index based for loop
 | 
				
			||||||
 | 
					        local var = args[1][1]
 | 
				
			||||||
 | 
					        return node(nil, {
 | 
				
			||||||
 | 
					          text(' '),
 | 
				
			||||||
 | 
					          ins(1, '0'),
 | 
				
			||||||
 | 
					          text('; ' .. var .. ' < '),
 | 
				
			||||||
 | 
					          ins(2, 'count'),
 | 
				
			||||||
 | 
					          text('; '),
 | 
				
			||||||
 | 
					          ins(3, var .. '++'),
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      elseif choice == ':' then -- range based for loop
 | 
				
			||||||
 | 
					        return node(nil, {
 | 
				
			||||||
 | 
					          text(' '),
 | 
				
			||||||
 | 
					          ins(1, 'container')
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					      return node(nil, {})
 | 
				
			||||||
 | 
					    end, { 2, 3 }, key('var')),
 | 
				
			||||||
 | 
					    text({ ') {', '\t' }),
 | 
				
			||||||
 | 
					    ins(0, ''),
 | 
				
			||||||
 | 
					    text({ '', '}' })
 | 
				
			||||||
 | 
					  }),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return snippets
 | 
				
			||||||
 | 
				
			|||||||
@ -2,16 +2,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
extends c
 | 
					extends c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
snippet for Range based
 | 
					 | 
				
			||||||
	for (${1:auto} ${2:value} : ${3:container}) {
 | 
					 | 
				
			||||||
		$0
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
snippet for Index based
 | 
					 | 
				
			||||||
	for (${1:int} i = ${2:0}; i < ${3:count}; i++) {
 | 
					 | 
				
			||||||
		$0
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
snippet namespace
 | 
					snippet namespace
 | 
				
			||||||
	namespace ${1} {
 | 
						namespace ${1} {
 | 
				
			||||||
	$0
 | 
						$0
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user