summary refs log tree commit diff
path: root/.vim/lua/snips.lua
blob: aa7b0bf9bca234d551601ea27c64f13e887d906b (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
-- vim: foldenable

local system = function(cmd)
  return function()
    local args = vim.split(cmd, ' ')
    local command = args[1]
    table.remove(args, 1)
    return table.concat(require('plenary.job'):new({
      command = command,
      args = args,
      enable_recording = true,
    }):sync(), '\n')
  end
end

local U = require'snippets.utils'
require('snippets').snippets = {
  _global = {
    nowutc = [[${=os.date("!%Y-%m-%dT%H:%M:%SZ")}]],
    nowloc = [[${=os.date("%Y-%m-%dT%H:%M:%S%z")}]],

    ok = "✔",
    bad = "✘",

    todo = U.force_comment [[NOTE(${=io.popen("id -un"):read"*l"}): ]],
    note = U.force_comment [[TODO(${=io.popen("id -un"):read"*l"}): ]],
  },

  sh = { -- {{{
    skel = U.match_indentation [[
#!/bin/sh
set -e
[ -n "\$DEBUG" ] && set -x
]],

    deps = U.match_indentation [[
# check requirements
for tool in ${1}; do
	if ! command -v "\$tool" >/dev/null; then
		printf "%s: %s not installed but required\n" "\$(basename "\$0")" "\$tool" >&2
		exit 1
	fi
done
]],

    getopt = U.match_indentation [[
${2}=
while getopts ${1}h opt; do
	case "\$opt" in
	${1})	${2}=1 ;;
	h|?)
    printf "usage: %s [-h]\n" "\$(basename "\$0")"
		printf "\n"
		printf "  -${1} \t ${2}\n"
		printf "\n"
		exit 2 ;;
	esac
done
shift \$((OPTIND - 1))
]],
  }, -- }}}

  tex = { -- {{{
    brief = U.match_indentation [[
\documentclass{dinbrief}
\usepackage{graphicx}
\usepackage[a4paper,margin=30truemm]{geometry}
% language
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}
% font
\usepackage{fontspec}
\setmainfont{IBM Plex Sans}
\setmonofont{IBM Plex Mono}
% dinbrief options
\nowindowtics
\nowindowrules

% unterschrift
\newcommand{\setsign}{\includegraphics[height=30truemm]{/home/robert/Pictures/sign.png}}
\signature{Robert Günzler}
\address{
% absender
  Robert Günzler \\\\
  ${4:STREET} \\\\
  ${5:PLZ} Berlin}

\date{\today}
\place{Berlin}

% betreff
% \subject{{\bf anliegen}}

\begin{document}
\begin{letter}{
% empfänger
  ${1}

\opening{${2:Sehr geehrte Damen und Herren,}}

${0}

\vspace{10truemm}
\closing[\protect\setsign]{${3:Mit freundlichen Grüßen}}
\end{letter}
\end{document}
]],
  }, -- }}}
}