aboutsummaryrefslogtreecommitdiff
path: root/autoload/notes.kak
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2026-06-30 10:40:17 +0530
committerAkshay Nair <phenax5@gmail.com>2026-06-30 11:15:37 +0530
commitd60ddc467397f0074f21576ca8ea9e1b1b78a2bd (patch)
treefea85335f22df3152c59abc0367c862142757677 /autoload/notes.kak
parent7bee16c7013ef1da84e723b1ced976f432d5b77a (diff)
downloadkakoune-config-d60ddc467397f0074f21576ca8ea9e1b1b78a2bd.tar.gz
kakoune-config-d60ddc467397f0074f21576ca8ea9e1b1b78a2bd.zip
Add memos integration
Diffstat (limited to 'autoload/notes.kak')
-rw-r--r--autoload/notes.kak37
1 files changed, 37 insertions, 0 deletions
diff --git a/autoload/notes.kak b/autoload/notes.kak
index 3d360a4..ae92e9b 100644
--- a/autoload/notes.kak
+++ b/autoload/notes.kak
@@ -1,3 +1,40 @@
+declare-user-mode notes
+map global user n ': enter-user-mode notes<ret>' -docstring 'Notes'
+map global notes n ': new-memo<ret>' -docstring 'New note'
+
define-command create-log -params 1.. %{
connect run env "EDITOR=kcr edit" "%val{config}/scripts/logger.sh" %arg{@}
}
+
+declare-option str memos_last_saved_id
+
+define-command new-memo %{
+ set global memos_last_saved_id %{}
+ edit -scratch '*memos-note*'
+ # TODO: templates
+}
+
+hook global BufCreate '[*]memos-note[*]' %{
+ set-option buffer filetype markdown
+ map buffer user s ': save-memo-buffer<ret>'
+ # TODO: use write somehow?
+}
+
+define-command save-memo-buffer %{
+ evaluate-commands %sh{
+ name=$(cat /tmp/.kak-memo-response | jq '.name')
+ if [ -z "$name" ]; then
+ echo "execute-keys -draft ',%<a-|>~/scripts/memos.sh create > /tmp/.kak-memo-response<ret>'"
+ else
+ echo "execute-keys -draft ',%<a-|>~/scripts/memos.sh update $name > /tmp/.kak-memo-response<ret>'"
+ fi
+ }
+
+ evaluate-commands %sh{
+ name=$(cat /tmp/.kak-memo-response | jq '.name')
+ echo "set global memos_last_saved_id %{$name}"
+ rm -f /tmp/.kak-memo-response 2>/dev/null || true
+ }
+
+ info 'Saved'
+}