#
# ~/.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

alias ls='ls --color=auto'
alias grep='grep --color=auto'
PS1='[\u@\h \W]\$ '
alias ll='ls -alF'
alias cls="printf '\033[2J\033[3J\033[1;1H'"

export PATH=$PATH:/home/andreas/ext_sw/flutter/bin
export PATH=$PATH:/home/andreas/.local/bin

alias get-idf='. $HOME/git/esp-idf/export.sh'
alias clang-idf='export IDF_TOOLCHAIN=clang && . $HOME/git/esp-idf/export.sh'

alias ic='cd ~/.config/i3'
alias nc='cd ~/.config/nvim'
alias ebc='nvim ~/.bashrc'

alias ait='cd ~/Documents/kit/AIT'
alias kit='cd ~/Documents/kit'
alias eml='cd ~/Documents/kit/EMLLAB/emllab-challenge && . venv/bin/activate'
alias let='cd ~/git/ba-letter'

alias hyp='cd ~/git/HyperLink_SW'

source /usr/share/git/completion/git-completion.bash

eval "$(thefuck --alias)"

export VISUAL=nvim
export EDITOR="$VISUAL"

function pym {
    python -m $@
}

function _pym_complete {

    local executable current previous options
    executable=${COMP_WORDS[0]}
    current="${COMP_WORDS[COMP_CWORD]}"
    previous="${COMP_WORDS[COMP_CWORD-1]}"

    COMPREPLY=()
    if [[ ( "$executable" == python* && "$previous" == "-m" ) ||
          ( "$executable" == pym     && ! "$current" == -* ) ]]; then

        options="`python <<EOF
import os
import pkgutil
import sys
current = '$current'
if '.' in current:
    package_name = current.rsplit('.', 1)[0]
    try:
        package = __import__(package_name, fromlist=['__name__'])
    except:
        exit()
else:
    package_name = ''
    package = None
def walk_packages(paths, match, prefix=''):
    for loader, name, ispkg in pkgutil.iter_modules(paths, prefix):
        if not name.startswith(match):
            continue
        yield loader, name, ispkg
        if ispkg:
            for x in walk_packages([os.path.join(loader.path, name.split('.')[-1])], match, name + '.'):
                yield x
for loader, name, ispkg in walk_packages(
    package and getattr(package, '__path__', ()),
    current,
    package_name and (package_name + '.'),
):
    if ispkg:
        continue
    if name.endswith('.__main__'):
        print(name.rsplit('.', 1)[0])
    else:
        print(name)
EOF
        `"
        COMPREPLY=( $(compgen -W "${options}") )
        return 0
    fi
}

complete -F _pym_complete -o nospace -o bashdefault -o default pym
complete -F _pym_complete -o nospace -o bashdefault -o default python

source /usr/share/fzf/key-bindings.bash
