home/share/kak/kakrc
Chloe Kudryavtsev b6555d07a9 Rename kakrc::autoload to kakrc::autoload_directory
`autoload` is a reserved keyword in the ksh family of shells.
Some of these are common `/bin/sh` providers (e.g mksh).
Renaming it to have a prefix fixes autoloading on such systems (see #1353).
This should not have any side effects due to the limited scope.
2017-05-09 11:36:32 -04:00

58 lines
1.7 KiB
Plaintext

def -params 1 -docstring "colorscheme <name>: enable named colorscheme" \
-shell-candidates %{
localconfdir=${XDG_CONFIG_HOME:-${HOME}/.config}/kak
for col in ${kak_runtime}/colors/*.kak ${localconfdir}/colors/*.kak; do
candidate=$(basename "${col}" .kak)
case ${candidate} in
\**) ;;
*) echo ${candidate} ;;
esac
done
} \
colorscheme %{ %sh{
localconfdir=${XDG_CONFIG_HOME:-${HOME}/.config}/kak
if [ $# -eq 1 ]; then
if [ -f "${localconfdir}/colors/$1.kak" ];then
echo "source '${localconfdir}/colors/$1.kak'"
else
echo "source '${kak_runtime}/colors/$1.kak'"
fi
else
echo "echo -color Error 'Usage: colorscheme <scheme name>'"
fi
}}
%sh{
autoload_directory() {
dir=$1
for rcfile in ${dir}/*.kak; do
if [ -f "$rcfile" ]; then
echo "try %{ source '${rcfile}' } catch %{ echo -debug Autoload: could not load '${rcfile}' }";
fi
done
for subdir in ${dir}/*; do
if [ -d "$subdir" ]; then
autoload_directory $subdir
fi
done
}
localconfdir=${XDG_CONFIG_HOME:-${HOME}/.config}/kak
echo "colorscheme default"
if [ -d "${localconfdir}/autoload" ]; then
autoload_directory ${localconfdir}/autoload
elif [ -d "${kak_runtime}/autoload" ]; then
autoload_directory ${kak_runtime}/autoload
fi
if [ -f "${kak_runtime}/kakrc.local" ]; then
echo "source '${kak_runtime}/kakrc.local'"
fi
if [ -f "${localconfdir}/kakrc" ]; then
echo "source '${localconfdir}/kakrc'"
fi
}