summary refs log tree commit diff
path: root/.vim/lua/snips.lua
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2022-10-14 20:57:03 +0200
committerRobert Günzler <r@gnzler.io>2022-10-14 21:01:15 +0200
commit2d2009413f8be624a7cca95cf702e32d9315cbef (patch)
treef024c1b5b27b886530e86221593e3cfdc3672d7e /.vim/lua/snips.lua
parent6d7e524d3d7a71da2cea61b335a59e9544e2a6f7 (diff)
vim: move custom modules under internal/
Diffstat (limited to '.vim/lua/snips.lua')
-rw-r--r--.vim/lua/snips.lua124
1 files changed, 0 insertions, 124 deletions
diff --git a/.vim/lua/snips.lua b/.vim/lua/snips.lua
deleted file mode 100644
index 318c9f7..0000000
--- a/.vim/lua/snips.lua
+++ /dev/null
@@ -1,124 +0,0 @@
-
-local ls = require('luasnip')
-local types = require('luasnip.util.types')
-
-vim.api.nvim_set_hl(0, 'LuasnipIndicator', {
-  fg = vim.g.terminal_color_15,
-  bg = vim.g.terminal_color_1,
-  italic = true,
-  nocombine = true,
-})
-
--- autowrap: wraps the function in top and bot if there is any content
-local autowrap = function(top, bot, inner)
-  local autoinsert = function(args, _, _, wrap_with)
-    local nodes = {}
-    if vim.trim(table.concat(args[1] or {})) ~= "" then
-      table.insert(nodes, wrap_with)
-    end
-    return ls.sn(nil, nodes)
-  end
-
-  local argnodes = {}
-  local maxpos = -1
-  for _, e in ipairs(inner) do
-    if e.pos ~= nil then
-      table.insert(argnodes, e.pos)
-      if e.pos > maxpos then
-        maxpos = e.pos
-      end
-    end
-  end
-
-  local nodes = {}
-  table.insert(nodes, ls.d(maxpos+1, autoinsert, argnodes, {user_args = {top}}))
-  for _, e in ipairs(inner) do table.insert(nodes, e) end
-  table.insert(nodes, ls.d(maxpos+2, autoinsert, argnodes, {user_args = {bot}}))
-  return nodes
-end
-
--- comment: wraps the content in &commentstring (or a blockcomment)
-local comment = function(wrapped, blockcomment)
-  -- commentstring helper
-  local get_cstring = function()
-    local cs = require('Comment.ft').calculate {
-      ctype = blockcomment and 2 or 1,
-      range = require('Comment.utils').get_region()
-    }
-    local tbl = vim.split(cs or '', '%s', {plain = true, trimempty = true})
-    return (#tbl == 0) and {'', ''}
-      or ((#tbl == 1) and {tbl[1] .. ' ', ''}
-        or {tbl[1], tbl[2]})
-  end
-
-  if type(wrapped) ~= "table" then
-    wrapped = {wrapped}
-  end
-
-  local nodes = {}
-  table.insert(nodes, ls.f(function() return get_cstring()[1] end))
-  for _, n in ipairs(wrapped) do table.insert(nodes, n) end
-  table.insert(nodes, ls.f(function() return get_cstring()[2] end))
-  return nodes
-end
-
--- exec: inserts the output of command
-local exec = function(command)
-  return ls.f(function(_, _, ...)
-    local results, code = require('plenary.job'):new({
-      command = vim.env.SHELL,
-      args = {'-c', ...},
-      enable_recording = true,
-    }):sync()
-    if not code == 0 or #results == 0 then
-      error(string.format('exec "%s" failed', ...))
-    end
-    return results
-  end, {}, {user_args = {command}})
-end
-
-ls.setup {
-  ext_opts = {
-    [types.snippet] = {
-      active = { virt_text = {{ '<-- luasnip', 'LuasnipIndicator' }}, virt_text_pos = 'right_align' }
-    },
-    [types.insertNode] = {
-      unvisited = { hl_group = 'LuasnipIndicator' }
-    },
-    [types.choiceNode] = {
-      active = {
-        virt_text = {{'<-- choice node', 'LuasnipIndicator'}},
-      }
-    }
-  },
-
-  snip_env = vim.tbl_extend('keep', ls.session.config.snip_env, {
-    autowrap = autowrap,
-    exec = exec,
-    comment = comment,
-
-    user_email = {
-      exec([[git config --get user.name]]),
-      ls.t(' <'),
-      ls.c(1, {
-        exec([[git config --get user.email]]),
-        ls.t([[robert.gunzler@postman.com]]),
-        ls.t([[robert@gnzler.io]]),
-      }),
-      ls.t('>'),
-    },
-  })
-}
-
--- snipmate snippets
-require('luasnip.loaders.from_snipmate').lazy_load {paths = './after/snippets'}
--- lua snippets
-require("luasnip.loaders.from_lua").lazy_load {paths = './snippets'}
-
-vim.api.nvim_create_user_command('LuaSnipUnlinkAll',
-  function()
-    while #package.loaded.luasnip.session.current_nodes > 0 do
-      package.loaded.luasnip.unlink_current()
-    end
-  end,
-  { desc = 'unlink all active snippets' })