aboutsummaryrefslogtreecommitdiff
path: root/autoload/notes.kak
blob: ae92e9b13ad1d38066388d9d648009924d766789 (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
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'
}