From 4efd4c54adbb5a5dc8a0d5ef26279b3a9c2b2e3d Mon Sep 17 00:00:00 2001 From: Caleb Heuer Date: Sun, 11 Sep 2022 16:44:14 -0600 Subject: Move source file to root directory --- harpoon.kak | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ rc/harpoon.kak | 107 --------------------------------------------------------- 2 files changed, 107 insertions(+), 107 deletions(-) create mode 100644 harpoon.kak delete mode 100644 rc/harpoon.kak diff --git a/harpoon.kak b/harpoon.kak new file mode 100644 index 0000000..e1009a4 --- /dev/null +++ b/harpoon.kak @@ -0,0 +1,107 @@ +declare-option str-to-str-map harpoon_buffers + +define-command harpoon-nav \ +-params 1..2 \ +-docstring "harpoon-nav []: Navigate to the harpoon at , or optionally add it if it's empty" \ +%{ + evaluate-commands %sh{ + selected=$1 + add=$2 + eval "set -- $kak_quoted_opt_harpoon_buffers" + while [ $# -gt 0 ]; do + index=${1%%=*} + if [ "$index" = "$selected" ]; then + echo "edit ${1#*=}" + echo "echo 'Opened harpoon at index $selected'" + return + fi + shift + done + + if [ "$add" = true ]; then + echo "harpoon-add $selected" + else + echo "fail 'No harpoon defined at index $selected'" + fi + } +} + +define-command harpoon-add \ +-params 1 \ +-docstring "harpoon-add : Harpoon the current file at " \ +%{ + evaluate-commands %sh{ + bufname=$(echo "$kak_bufname" | sed "s/@/@@/g") + echo "set-option -add global harpoon_buffers %@$1=$bufname@" + echo "echo 'Added current file at index $1'" + } +} + +define-command harpoon-remove \ +-params ..1 \ +-docstring "harpoon-remove []: Remove the harpoon at , or all harpoons" \ +%{ + evaluate-commands %sh{ + if [ -n "$1" ]; then + echo "set-option -remove global harpoon_buffers '$1='" + echo "echo 'Removed harpoon at index $1'" + else + echo "set-option global harpoon_buffers" + echo "echo 'Removed all harpoons'" + fi + } +} + +define-command harpoon-list \ +-docstring "List harpoons in an infobox" \ +%{ + evaluate-commands %sh{ + output="" + eval "set -- $kak_quoted_opt_harpoon_buffers" + while [ $# -gt 0 ]; do + index=${1%%=*} + filename=${1#*=} + # Add newline if it's not the first one + if [ -n "$output" ]; then + output="$output +$index: $filename" + else + output="$index: $filename" + fi + shift + done + output=$(echo "$output" | sed "s/@/@@/g" | sort) + + if [ -n "$output" ]; then + echo "info -title harpoons %@$output@" + else + echo "fail 'There are no harpoons'" + fi + } +} + +declare-user-mode harpoon +map global harpoon l ": harpoon-list" -docstring "List harpoons" +map global harpoon 1 ": harpoon-add 1" -docstring "Add file at 1" +map global harpoon 2 ": harpoon-add 2" -docstring "Add file at 2" +map global harpoon 3 ": harpoon-add 3" -docstring "Add file at 3" +map global harpoon 4 ": harpoon-add 4" -docstring "Add file at 4" +map global harpoon 5 ": harpoon-add 5" -docstring "Add file at 5" +map global harpoon 6 ": harpoon-add 6" -docstring "Add file at 6" +map global harpoon 7 ": harpoon-add 7" -docstring "Add file at 7" +map global harpoon 8 ": harpoon-add 8" -docstring "Add file at 8" +map global harpoon 9 ": harpoon-add 9" -docstring "Add file at 9" + +define-command harpoon-add-bindings -docstring "Add convenient keybindings for navigating harpoons" %{ + map global normal ": harpoon-nav 1" + map global normal ": harpoon-nav 2" + map global normal ": harpoon-nav 3" + map global normal ": harpoon-nav 4" + map global normal ": harpoon-nav 5" + map global normal ": harpoon-nav 6" + map global normal ": harpoon-nav 7" + map global normal ": harpoon-nav 8" + map global normal ": harpoon-nav 9" + + map global user h ": enter-user-mode harpoon" -docstring "harpoon..." +} diff --git a/rc/harpoon.kak b/rc/harpoon.kak deleted file mode 100644 index e1009a4..0000000 --- a/rc/harpoon.kak +++ /dev/null @@ -1,107 +0,0 @@ -declare-option str-to-str-map harpoon_buffers - -define-command harpoon-nav \ --params 1..2 \ --docstring "harpoon-nav []: Navigate to the harpoon at , or optionally add it if it's empty" \ -%{ - evaluate-commands %sh{ - selected=$1 - add=$2 - eval "set -- $kak_quoted_opt_harpoon_buffers" - while [ $# -gt 0 ]; do - index=${1%%=*} - if [ "$index" = "$selected" ]; then - echo "edit ${1#*=}" - echo "echo 'Opened harpoon at index $selected'" - return - fi - shift - done - - if [ "$add" = true ]; then - echo "harpoon-add $selected" - else - echo "fail 'No harpoon defined at index $selected'" - fi - } -} - -define-command harpoon-add \ --params 1 \ --docstring "harpoon-add : Harpoon the current file at " \ -%{ - evaluate-commands %sh{ - bufname=$(echo "$kak_bufname" | sed "s/@/@@/g") - echo "set-option -add global harpoon_buffers %@$1=$bufname@" - echo "echo 'Added current file at index $1'" - } -} - -define-command harpoon-remove \ --params ..1 \ --docstring "harpoon-remove []: Remove the harpoon at , or all harpoons" \ -%{ - evaluate-commands %sh{ - if [ -n "$1" ]; then - echo "set-option -remove global harpoon_buffers '$1='" - echo "echo 'Removed harpoon at index $1'" - else - echo "set-option global harpoon_buffers" - echo "echo 'Removed all harpoons'" - fi - } -} - -define-command harpoon-list \ --docstring "List harpoons in an infobox" \ -%{ - evaluate-commands %sh{ - output="" - eval "set -- $kak_quoted_opt_harpoon_buffers" - while [ $# -gt 0 ]; do - index=${1%%=*} - filename=${1#*=} - # Add newline if it's not the first one - if [ -n "$output" ]; then - output="$output -$index: $filename" - else - output="$index: $filename" - fi - shift - done - output=$(echo "$output" | sed "s/@/@@/g" | sort) - - if [ -n "$output" ]; then - echo "info -title harpoons %@$output@" - else - echo "fail 'There are no harpoons'" - fi - } -} - -declare-user-mode harpoon -map global harpoon l ": harpoon-list" -docstring "List harpoons" -map global harpoon 1 ": harpoon-add 1" -docstring "Add file at 1" -map global harpoon 2 ": harpoon-add 2" -docstring "Add file at 2" -map global harpoon 3 ": harpoon-add 3" -docstring "Add file at 3" -map global harpoon 4 ": harpoon-add 4" -docstring "Add file at 4" -map global harpoon 5 ": harpoon-add 5" -docstring "Add file at 5" -map global harpoon 6 ": harpoon-add 6" -docstring "Add file at 6" -map global harpoon 7 ": harpoon-add 7" -docstring "Add file at 7" -map global harpoon 8 ": harpoon-add 8" -docstring "Add file at 8" -map global harpoon 9 ": harpoon-add 9" -docstring "Add file at 9" - -define-command harpoon-add-bindings -docstring "Add convenient keybindings for navigating harpoons" %{ - map global normal ": harpoon-nav 1" - map global normal ": harpoon-nav 2" - map global normal ": harpoon-nav 3" - map global normal ": harpoon-nav 4" - map global normal ": harpoon-nav 5" - map global normal ": harpoon-nav 6" - map global normal ": harpoon-nav 7" - map global normal ": harpoon-nav 8" - map global normal ": harpoon-nav 9" - - map global user h ": enter-user-mode harpoon" -docstring "harpoon..." -} -- cgit v1.2.3