aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/lua')
-rw-r--r--runtime/lua/vim/_meta/vimfn.lua9
-rw-r--r--runtime/lua/vim/lsp/util.lua5
2 files changed, 10 insertions, 4 deletions
diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua
index 5a3a5f3890..06de2fdd1c 100644
--- a/runtime/lua/vim/_meta/vimfn.lua
+++ b/runtime/lua/vim/_meta/vimfn.lua
@@ -6098,8 +6098,6 @@ function vim.fn.prevnonblank(lnum) end
--- precision, the argument(s) to be used must also be specified
--- using a {n$} positional argument specifier. See |printf-$|.
---
----
---- *E1520*
--- The conversion specifiers and their meanings are:
---
--- *printf-d* *printf-b* *printf-B* *printf-o* *printf-x* *printf-X*
@@ -6290,6 +6288,13 @@ function vim.fn.prevnonblank(lnum) end
--- < E1505: Invalid format specifier:
--- %1$d at width %2$d is: %01$*2$.3$d
---
+--- *E1507*
+--- This internal error indicates that the logic to parse a
+--- positional format argument ran into a problem that couldn't be
+--- otherwise reported. Please file a bug against Vim if you run
+--- into this, copying the exact format string and parameters that
+--- were used.
+---
--- @param fmt any
--- @param expr1? any
--- @return any
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
index a4c8959b99..ec0a1b0ab0 100644
--- a/runtime/lua/vim/lsp/util.lua
+++ b/runtime/lua/vim/lsp/util.lua
@@ -1100,13 +1100,14 @@ function M.make_floating_popup_options(width, height, opts)
anchor_below = lines_below > lines_above
end
+ local border_height = get_border_size(opts).height
if anchor_below then
anchor = anchor .. 'N'
- height = math.min(lines_below, height)
+ height = math.max(math.min(lines_below - border_height, height), 0)
row = 1
else
anchor = anchor .. 'S'
- height = math.min(lines_above, height)
+ height = math.max(math.min(lines_above - border_height, height), 0)
row = 0
end