# {{@@ header() @@}} try %{ # declare-user-mode surround declare-user-mode git declare-user-mode find } map global user 'w' ': w' -docstring 'write buffer' map global user 'u' ': config-source' -docstring 'source configuration' map global user 'g' ': enter-user-mode lsp' -docstring 'lsp mode' map global user 'z' ':zoxide ' -docstring 'zoxide' map global user 'n' ': new' -docstring 'new window' map global user 'e' 'x|emmet{{@@ "@" if not tabs @@}}' -docstring 'process line with emmet' map global user 'm' ': try format-buffer catch lsp-formatting' -docstring 'format document' map global user 'M' ': try format-selections catch lsp-range-formatting' -docstring 'format selection' map global user 'c' ': comment-line' -docstring 'comment line' map global user 'C' '_: comment-block' -docstring 'comment block' map global user 'p' '! wl-paste -n' -docstring 'clipboard paste' map global user 'P' 'j! wl-paste -n' -docstring 'clipboard paste on next line' map global user 'R' '"_d! wl-paste -n ' -docstring 'clipboard replace' map global user 'b' ': find_buffer' -docstring 'switch buffer' map global user 'l' ': lsp-enable-decals' -docstring 'LSP enable decals' map global user 'L' ': lsp-disable-decals' -docstring 'LSP disable decals' map global user 'v' ': enter-user-mode git' -docstring 'git vcs mode' map global user 'V' ': enter-user-mode -lock git' -docstring 'git vcs mode' map global git 's' ': git status' -docstring 'status' map global git 'S' '_: git show %val{selection} --' -docstring 'show' map global git 'a' ': git add' -docstring 'add current' map global git 'd' ': git diff %reg{%}' -docstring 'diff current' map global git 'r' ': git checkout %reg{%}' -docstring 'restore current' map global git 'A' ': git add --all' -docstring 'add all' map global git 'D' ': git diff' -docstring 'diff all' map global git '' ': git diff --staged' -docstring 'diff staged' map global git 'c' ': git commit -v' -docstring 'commit' map global git 'u' ': git update-diff' -docstring 'update gutter diff' map global git 'n' ': git next-hunk ' -docstring 'next hunk' map global git 'p' ': git prev-hunk ' -docstring 'previous hunk' map global git 'm' ': git-merge-head ' -docstring 'merge using head' map global git 'M' ': git-merge-new ' -docstring 'merge using new' map global git '' ': git-merge-original ' -docstring 'merge using original' map global user 'f' ': enter-user-mode find' -docstring 'find mode' map global find 't' ': tree' -docstring 'file tree' map global find 'f' ': find_file' -docstring 'file' map global find 'l' ': find_line' -docstring 'jump to line' map global find 'r' ': find_ripgrep' -docstring 'ripgrep all file' map global find 'g' ': find_git_file' -docstring 'git files' map global find 'c' ': find_dir' -docstring 'change dir' map global find 'd' ': find_delete' -docstring 'file to delete' define-command -override -hidden find_file \ %{ evaluate-commands %sh{ for line in `fd --strip-cwd-prefix -tf -HE .git | wdmenu`; do echo "edit '$line'" done } } define-command -override -hidden find_delete \ %{ nop %sh{ fd --strip-cwd-prefix -H -E .git -t f | wdmenu | xargs -r trash } } define-command -override -hidden find_git_file \ %{ evaluate-commands -existing %sh{ for line in `git ls-files | wdmenu`; do echo "edit '$line'" done } } define-command -override -hidden find_dir \ %{ cd %sh{ for line in `fd --strip-cwd-prefix -Htd | wdmenu`; do echo "edit '$line'" done } } define-command -override -hidden find_buffer \ %{ evaluate-commands %sh{ for line in `printf "%s\n" $kak_buflist | wdmenu`; do echo "buffer '$line'" done } } define-command -override -hidden find_ripgrep \ %{ evaluate-commands %sh{ patter=$( wdmenu -p "Regex") rg --column -n "$patter" | wdmenu | perl -ne 'print "edit \"$1\" \"$2\" \"$3\" " if /(.+):(\d+):(\d+):/' } } define-command -override -hidden find_line \ %{ evaluate-commands -save-regs a %{ execute-keys %{Z%"ayz} execute-keys %sh{ line=$( printf "%s\n" "$kak_reg_a" | nl -ba -w1 | wdmenu -p "Line" | cut -f1 ) test -n "$line" && echo "${line}gx" } } } define-command -override -hidden tree \ %{ evaluate-commands %sh{ file=`mktemp` terminal --class file_picker ranger --selectfile="$kak_buffile" --choosefiles="$file" for line in `cat "$file"`; do echo "edit '$line'" done rm "$file" } } define-command -override -params .. \ -shell-script-candidates 'zoxide query -l' \ zoxide %{ cd %sh{ zoxide query -- "$@" || echo "$@" } echo %sh{ pwd | sed "s|$HOME|~|" } } define-command -override config-source %{ source "%val{config}/kakrc" } define-command -override git-merge-head %{ evaluate-commands -draft %{ # delete head marker execute-keys ^{4,}d try %{ # select original marker execute-keys /^[|]{4,} # extend to theirs marker execute-keys ?^={4,} } catch %{ # select theirs marker execute-keys /^={4,} } # extend to end marker execute-keys ?^{4,}d } } -docstring "merge using head" define-command -override git-merge-original %{ evaluate-commands -draft %{ # select head marker execute-keys ^{4,} # select to middle of conflict execute-keys ?^[|]{4,}d # select theirs marker execute-keys /^={4,} # extend to end marker execute-keys ?^{4,}d } } -docstring "merge using original" define-command -override git-merge-new %{ evaluate-commands -draft %{ # select head marker execute-keys ^{4,} # extend to theirs marker execute-keys ?^={4,}\nd # delete end marker execute-keys /^{4,}d } } -docstring "merge using new"