aboutsummaryrefslogtreecommitdiff
path: root/files/.vim
diff options
context:
space:
mode:
authorAnton Bobov <abobov@gmail.com>2021-03-16 20:45:57 +0500
committerAnton Bobov <abobov@gmail.com>2021-03-20 20:14:45 +0500
commit1f0ace5cb8cfcd1f4316d59681e2bc61c283f39c (patch)
tree16f4d935619923611dd849e10c6da3822e617a1e /files/.vim
parent013ee40d4ee7b6d014649c263ab6828261cb4e62 (diff)
vim: change snippets to ultisnips.
Diffstat (limited to 'files/.vim')
-rw-r--r--files/.vim/UltiSnips/all.snippets3
-rw-r--r--files/.vim/UltiSnips/ledger.snippets58
-rw-r--r--files/.vim/UltiSnips/remind.snippets18
-rw-r--r--files/.vim/snippets/ledger.snippets4
4 files changed, 79 insertions, 4 deletions
diff --git a/files/.vim/UltiSnips/all.snippets b/files/.vim/UltiSnips/all.snippets
new file mode 100644
index 0000000..ba709bd
--- /dev/null
+++ b/files/.vim/UltiSnips/all.snippets
@@ -0,0 +1,3 @@
+snippet date "current date"
+`date +%F`
+endsnippet
diff --git a/files/.vim/UltiSnips/ledger.snippets b/files/.vim/UltiSnips/ledger.snippets
new file mode 100644
index 0000000..80c4a51
--- /dev/null
+++ b/files/.vim/UltiSnips/ledger.snippets
@@ -0,0 +1,58 @@
+global !p
+def ledger_list(args):
+ import subprocess
+ res = subprocess.run(['ledger'] + args, capture_output=True)
+ return res.stdout.decode('utf-8').split('\n')
+
+def list_payees(filter):
+ return ledger_list(['payees', '-p', 'last 6 months'] + filter)
+
+def list_commodities(filter):
+ res = ledger_list(['commodities', '-p', 'last 6 months'] + filter)
+ return [m.strip('"') for m in res]
+
+def complete(base, matches):
+ matches = [m for m in matches if m != '']
+ if base:
+ matches = [m[len(base):] for m in matches if m.startswith(base)]
+ if not matches:
+ return ''
+ elif len(matches) == 1:
+ return matches[0]
+ elif len(matches) > 5:
+ return '[' + ' | '.join(matches[:5]) + ' | ...]'
+ else:
+ return '[' + ' | '.join(matches) + ']'
+endglobal
+
+snippet ent "new entry" b
+`date +%F` ${1:Transaction}
+ ${2:Expenses} ${3:R0.00}
+ ${4:Assets}
+endsnippet
+
+snippet div "new dividend" b
+`date +%F` * ${1:broker}
+ ; Stock: ${2:stock}
+ Assets:${3:Broker:$1:Cash} ${4:\$10.00}
+ Income:Broker:Dividend
+endsnippet
+
+snippet coupon "new coupon" b
+`date +%F` * ${1:broker}
+ ; Bond: ${2:bond}
+ Assets:${3:Broker:$1:Cash} ${4:\$10.00}
+ Income:Broker:Coupons
+endsnippet
+
+snippet broker "broker payee"
+$1`!p snip.rv = complete(t[1], list_payees(['Assets:Broker']))`$0
+endsnippet
+
+snippet stock "stock ticket"
+$1`!p snip.rv = complete(t[1], list_commodities(['Assets:Broker', 'and', 'Stock']))`$0
+endsnippet
+
+snippet bond "bond ticket"
+$1`!p snip.rv = complete(t[1], list_commodities(['Assets:Broker', 'and', 'Bond']))`$0
+endsnippet
diff --git a/files/.vim/UltiSnips/remind.snippets b/files/.vim/UltiSnips/remind.snippets
new file mode 100644
index 0000000..055407a
--- /dev/null
+++ b/files/.vim/UltiSnips/remind.snippets
@@ -0,0 +1,18 @@
+snippet rem "new reminder" b
+REM ${1:`date "+%d %b %Y"`} MSG ${2}%
+endsnippet
+
+snippet remt "new reminder with time" b
+REM ${1:`date "+%d %b %Y"`} AT ${2:12:00} DURATION 1:00 MSG ${3}%
+endsnippet
+
+snippet %
+%"${0:${VISUAL}}%"
+endsnippet
+
+priority 1
+
+snippet date "insert date"
+`date "+%d %b %Y"`
+endsnippet
+
diff --git a/files/.vim/snippets/ledger.snippets b/files/.vim/snippets/ledger.snippets
deleted file mode 100644
index 68c2a1f..0000000
--- a/files/.vim/snippets/ledger.snippets
+++ /dev/null
@@ -1,4 +0,0 @@
-snippet ent
- `system("date +%F")` ${1:transaction}
- ${2:account} R${3:vaule}
- ${4:Liabilities:Visa}