summary refs log tree commit diff
path: root/.vim/lua/snips.lua
blob: c4a58af088040a50310080d7b4d09cd873ef0888 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
local ls = require("luasnip")
local fmt = require('luasnip.extras.fmt').fmt

local s = ls.s
local t = ls.text_node
local f = ls.function_node
-- local i = ls.insert_node

local exec = function(command)
  return f(function(_, _, arg)
    local p = io.popen(arg, 'r')
    local res = {}
    for line in p:lines() do
      table.insert(res, line)
    end
    return res
  end, {}, { user_args = { command }})
end

-- snipmate snippets
require('luasnip.loaders.from_snipmate').load({ paths = {'~/.config/nvim/after/snippets'} })

-- luasnip snippets
ls.add_snippets('all', {
  s(
    'sign',
    t('Robert Günzler <r@gnzler.io>')
  ),

  s(
    'me',
    fmt(
      [[{} <{}>]], {
        exec('git config --get user.name'),
        exec('git config --get user.email'),
      }
    )
  ),

  s(
    'today',
    f(function() return os.date('%Y-%m-%d') end, {})
  ),

  s(
    'now',
    f(function() return os.date('%Y-%m-%dT%H:%M:%SZ') end, {})
  )
})