dotfiles/.config/kak/autoload/ui-mode.kak

72 lines
2.1 KiB
Text

provide-module ui-mode %~
declare-user-mode ui
map -docstring "UI" global user u ": enter-user-mode ui<ret>"
define-command ui-wrap-enable -docstring "enable wrap" %{
add-highlighter window/wrap wrap -word -indent
echo -markup "{Information}wrap enabled"
}
define-command ui-wrap-disable -docstring "disable wrap" %{
remove-highlighter window/wrap
echo -markup "{Information}wrap disabled"
}
define-command -override ui-wrap-toggle -docstring "toggle wrap" %{
try %{ ui-wrap-enable } catch %{ ui-wrap-disable }
}
map -docstring "toggle soft wrap" global ui w ": ui-wrap-toggle<ret>"
declare-option str base_scrolloff %opt{scrolloff}
declare-option -hidden str prev_scrolloff %opt{base_scrolloff}
define-command ui-scrolloff-disable %{
set-option window prev_scrolloff %opt{scrolloff}
set-option window scrolloff 0,0
}
define-command ui-scrolloff-enable %{
set-option window scrolloff %opt{prev_scrolloff}
}
define-command ui-scrolloff-toggle -docstring "toggle scrolloff" %{
evaluate-commands %sh{
IFS=, set -- $kak_opt_base_scrolloff
TARG=${1:-0}
HOR=${2:-0}
# Parse current scrolloff
IFS=, set -- $kak_opt_scrolloff
VSCROLL=${1:-0}
# Build the new scrolloff value
if [ "$VSCROLL" = 99 ]; then
final="$TARG"
else
final="99,$HOR"
fi
echo "set-option window scrolloff $final"
}
}
map -docstring 'toggle screen centering' global ui z ": ui-scrolloff-toggle<ret>"
declare-option bool autowrap false
define-command autowrap-toggle -docstring "toggle autowrap" %{
evaluate-commands %sh{
if [ "$kak_opt_autowrap" = "true" ]; then
echo "autowrap-disable"
echo "set-option window autowrap false"
echo "info -title Autowrap 'Window autowrap disabled'"
else
echo "autowrap-enable"
echo "set-option window autowrap true"
echo "info -title Autowrap 'Window autowrap enabled'"
fi
}
}
# map -docstring 'toggle autowrap' global ui a ": autowrap-toggle<ret>"
map -docstring 'toggle autowrap' global ui f ": fmt-toggle-window<ret>"
map -docstring 'toggle autospell' global ui s ": autospell-toggle<ret>"
~