2015-10-22 16:41:19 +03:00
|
|
|
decl str formatcmd ""
|
2016-10-11 10:03:41 +03:00
|
|
|
def format -docstring "Format the contents of the current buffer" %{
|
2015-10-22 16:41:19 +03:00
|
|
|
%sh{
|
|
|
|
if [ ! -z "${kak_opt_formatcmd}" ]; then
|
2016-09-22 02:54:17 +03:00
|
|
|
readonly kak_opt_formatcmd=$(printf '%s' "${kak_opt_formatcmd}" | sed 's/ /<space>/g')
|
2015-10-22 16:41:19 +03:00
|
|
|
## Save the current position of the cursor
|
|
|
|
readonly x=$((kak_cursor_column - 1))
|
|
|
|
readonly y="${kak_cursor_line}"
|
|
|
|
|
2016-09-22 02:54:17 +03:00
|
|
|
printf %s\\n "exec -draft %{%|${kak_opt_formatcmd}<ret>}"
|
2015-10-22 16:41:19 +03:00
|
|
|
## Try to restore the position of the cursor as it was prior to formatting
|
2016-04-23 08:47:01 +03:00
|
|
|
printf %s\\n "exec gg ${y}g ${x}l"
|
2015-10-22 16:41:19 +03:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
}
|