declare-user-mode notes map global user n ': enter-user-mode notes' -docstring 'Notes' map global notes n ': new-memo' -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' # 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 ',%~/scripts/memos.sh create > /tmp/.kak-memo-response'" else echo "execute-keys -draft ',%~/scripts/memos.sh update $name > /tmp/.kak-memo-response'" 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' }