Merge remote-tracking branch 'lenormf/window-range'

This commit is contained in:
Maxime Coste 2019-12-04 21:16:11 +11:00
commit ee2985739b
3 changed files with 18 additions and 1 deletions

View File

@ -367,6 +367,12 @@ The following expansions are supported (with required context _in italics_):
_in window scope_ + _in window scope_ +
width of the current Kakoune window width of the current Kakoune window
*%val{window_range}*::
_in window scope_ +
list of coordinates and dimensions of the buffer-space
available on the current window, in the following format:
`<coord_x> <coord_y> <width> <height>`
Values in the above list that do not mention a context are available Values in the above list that do not mention a context are available
everywhere. everywhere.

View File

@ -33,7 +33,7 @@ define-command -hidden -params 2..3 man-impl %{ evaluate-commands %sh{
manout=$(mktemp "${TMPDIR:-/tmp}"/kak-man-XXXXXX) manout=$(mktemp "${TMPDIR:-/tmp}"/kak-man-XXXXXX)
manerr=$(mktemp "${TMPDIR:-/tmp}"/kak-man-XXXXXX) manerr=$(mktemp "${TMPDIR:-/tmp}"/kak-man-XXXXXX)
colout=$(mktemp "${TMPDIR:-/tmp}"/kak-man-XXXXXX) colout=$(mktemp "${TMPDIR:-/tmp}"/kak-man-XXXXXX)
MANWIDTH=${kak_window_width} man "$@" > "$manout" 2> "$manerr" env MANWIDTH=${kak_window_range##* } man "$@" > "$manout" 2> "$manerr"
retval=$? retval=$?
col -b -x > ${colout} < ${manout} col -b -x > ${colout} < ${manout}
rm ${manout} rm ${manout}

View File

@ -286,6 +286,17 @@ static const EnvVarDesc builtin_env_vars[] = { {
"user_modes", false, "user_modes", false,
[](StringView name, const Context& context, Quoting quoting) -> String [](StringView name, const Context& context, Quoting quoting) -> String
{ return join(context.keymaps().user_modes(), ' ', false); } { return join(context.keymaps().user_modes(), ' ', false); }
}, {
"window_range", false,
[](StringView name, const Context& context, Quoting quoting) -> String
{
const auto top_left = context.window().display_position({0, 0});
const auto window_dim = context.window().dimensions();
return format("{} {} {} {}", top_left->line, top_left->column,
window_dim.line - top_left->line,
window_dim.column - top_left->column);
}
} }
}; };