2018-11-11 10:41:15 +00:00
|
|
|
# ╭─────────────╥─────────────────────────╮
|
|
|
|
# │ Author: ║ File: │
|
|
|
|
# │ Andrey Orst ║ fzf-svn.kak │
|
|
|
|
# ╞═════════════╩═════════════════════════╡
|
|
|
|
# │ Submodule for Git support for fzf.kak │
|
|
|
|
# ╞═══════════════════════════════════════╡
|
|
|
|
# │ GitHub.com/andreyorst/fzf.kak │
|
|
|
|
# ╰───────────────────────────────────────╯
|
|
|
|
|
|
|
|
declare-option -docstring "command to provide list of files in git tree to fzf. Arguments are supported
|
|
|
|
Supported tools:
|
|
|
|
<package>: <value>:
|
|
|
|
Git : ""git""
|
|
|
|
|
|
|
|
Default arguments:
|
2018-11-24 18:58:23 +00:00
|
|
|
""git ls-tree --full-tree --name-only -r HEAD""
|
2018-11-11 10:41:15 +00:00
|
|
|
" \
|
|
|
|
str fzf_git_command "git"
|
|
|
|
|
|
|
|
map global fzf-vcs -docstring "edit file from Git tree" 'g' '<esc>: fzf-git<ret>'
|
|
|
|
|
2019-03-17 05:09:34 +00:00
|
|
|
define-command -override -hidden fzf-git %{ evaluate-commands %sh{
|
|
|
|
current_path=$(pwd)
|
|
|
|
repo_root=$(git rev-parse --show-toplevel)
|
2018-11-11 10:41:15 +00:00
|
|
|
case $kak_opt_fzf_git_command in
|
|
|
|
git)
|
2018-11-24 18:58:23 +00:00
|
|
|
cmd="git ls-tree --full-tree --name-only -r HEAD" ;;
|
2018-11-11 10:41:15 +00:00
|
|
|
git*)
|
|
|
|
cmd=$kak_opt_fzf_git_command ;;
|
|
|
|
esac
|
|
|
|
[ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect ctrl-v --expect ctrl-s"
|
2019-03-26 12:25:13 +00:00
|
|
|
printf "%s\n" "fzf -kak-cmd %{cd $repo_root; edit -existing} -items-cmd %{$cmd} -fzf-args %{-m --expect ctrl-w $additional_flags} -post-action %{cd $current_path}"
|
2018-11-11 10:41:15 +00:00
|
|
|
}}
|
|
|
|
|