#!/usr/bin/env bash

function setup_completion() {
    [[ $- == *i* ]] || return

    bind 'set colored-stats on'
    bind 'set visible-stats on'
    bind 'set mark-symlinked-directories on'
    bind 'set colored-completion-prefix on'
    bind 'set show-all-if-ambiguous on'
    bind 'set completion-ignore-case on'
    bind 'set page-completions off'
    bind 'set menu-complete-display-prefix on'
    bind 'set completion-query-items -1'
    bind 'TAB:menu-complete'
    bind '"\e[Z":menu-complete-backward'
    export COMP_WORDBREAKS="${COMP_WORDBREAKS//\/}"
    bind 'set mark-directories on'
    bind 'set mark-symlinked-directories on'

    for bash_comp in /etc /usr/share/bash-completion; do
        if [ -f "$bash_comp/bash_completion" ]; then
            . "$bash_comp/bash_completion"
            break
        fi
    done
}

function setup_fzf() {
    local fzf_dir
    for fzf_dir in /usr/share/fzf /usr/share/doc/fzf/examples; do
        if [ -d "$fzf_dir" ]; then
            [ -f "$fzf_dir/key-bindings.bash" ] && . "$fzf_dir/key-bindings.bash"
            [ -f "$fzf_dir/completion.bash" ] && . "$fzf_dir/completion.bash"
            return
        fi
    done
}

setup_completion
setup_fzf
