view dot_config/bash/fzf_aliases @ 802:9c8698e50c5e

[pre-commit.ci] pre-commit autoupdate updates: - [github.com/JohnnyMorganz/StyLua: v0.19.0 ? v0.19.1](https://github.com/JohnnyMorganz/StyLua/compare/v0.19.0...v0.19.1)
author pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
date Mon, 20 Nov 2023 18:04:55 +0000
parents d726921aaabe
children
line wrap: on
line source

# ** vim:ft=sh

# export FZF_DEFAULT_COMMAND='fd -I --type file --color=always'
export FZF_DEFAULT_OPTS='--ansi'

__git_log () {
    git log --format="%C(auto)%h %<(15)%C(auto, green)%cr %>(20)%C(auto, magenta)%an %C(auto)%s %D"
}

_fzf_complete_git() {
    ARGS="$@"

    if [[ $ARGS=='git show'* || \
          $ARGS=='git cherry-pick'* || \
          $ARGS=='git checkout'* || \
          $ARGS=='git commit -a --fixup'* || \
          $ARGS=='git reset'* ]]; then
        _fzf_complete "--reverse --multi" "$@" < <(__git_log)
    fi
}

_fzf_complete_git_post() {
    sed -e 's/^[^a-z0-9]*//' | awk '{print $1}'
}

complete -F _fzf_complete_git -o default -o bashdefault git

__hg_log () {
   hg ls
}

_fzf_complete_hg() {
   ARGS="$@"

   if [[ $ARGS=='hg rebase'* ]]; then
      _fzf_complete "--reverse --multi" "$@" < <(hg log --graph --rev=wip --template=oneline)
   elif [[ $ARGS=='hg ls'* ]]; then
      _fzf_complete "--reverse --multi" "$@" < <(hg ls -l 100)
   fi
}

_fzf_complete_hg_post() {
    sed -e 's/^[^0-9]*//' | awk '{print $1}'
}

complete -F _fzf_complete_hg -o default -o bashdefault hg