# define color scheme
#
# For Code
face value red
face type yellow
face identifier green
face string magenta
face error default,red
face keyword blue
face operator yellow
face attribute green
face comment cyan
face meta magenta

# For markup
face title blue
face header cyan
face bold red
face italic yellow
face mono green
face block magenta
face link cyan
face bullet cyan
face list yellow

def -shell-params runtime %{ %sh{
    while [ $# -gt 0 ]; do
        echo "source '${kak_runtime}/$1'"
        shift
    done
}}

def -shell-params -docstring "colorscheme <name>: enable named colorscheme" \
    -shell-completion %{
      prefix=${1:0:${kak_pos_in_token}}
      (
        for col in ${kak_runtime}/colors/*.kak; do
            expr $(basename "${col}" .kak) : "^\(${prefix}.*\)$"
        done
      ) | grep -v '^$'
    } \
    colorscheme %{ %sh{
        if [ $# -eq 1 ]; then
            echo "source '${kak_runtime}/colors/$1.kak'"
        else
            echo -color Error 'Usage: colorscheme <scheme name>'
        fi
}}

%sh{
    autoload() {
        dir=$1
        for rcfile in ${dir}/*.kak; do
            echo "try %{ source '${rcfile}' } catch %{ }";
        done
        for subdir in ${dir}/*; do
            if [ -d "$subdir" ]; then
                autoload $subdir
            fi
        done
    }

    if [ -n "${XDG_CONFIG_HOME}" ]; then
       localconfdir="${XDG_CONFIG_HOME}/kak"
    else
       localconfdir="$HOME/.config/kak"
    fi

    if [ -d "${localconfdir}/autoload" ]; then
        autoload ${localconfdir}/autoload
    elif [ -d "${kak_runtime}/autoload" ]; then
        autoload ${kak_runtime}/autoload
    fi

    if [ -f "${localconfdir}/kakrc" ]; then
        echo "source '${localconfdir}/kakrc'"
    fi
}