From: Andreas Louv Date: Mon, 27 Mar 2023 15:07:47 +0000 (+0200) Subject: Make room for a large diagnostic message X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=eb2e65730880bd1b3316dc1a7f6622a46df082d7;p=vim-lsp.git Make room for a large diagnostic message --- diff --git a/autoload/lsp/diag.vim b/autoload/lsp/diag.vim index c6017a7..b4c72e6 100644 --- a/autoload/lsp/diag.vim +++ b/autoload/lsp/diag.vim @@ -250,13 +250,23 @@ def ShowDiagInPopup(diag: dict) endif # Display a popup right below the diagnostics position + var msg = diag.message->split("\n") + var msglen = msg->reduce((acc, val) => max([acc, val->strcharlen()]), 0) + var ppopts = {} ppopts.pos = 'topleft' ppopts.line = d.row + 1 - ppopts.col = d.col ppopts.moved = 'any' - ppopts.wrap = false - popup_create(diag.message->split("\n"), ppopts) + + if msglen > &columns + ppopts.wrap = true + ppopts.col = 1 + else + ppopts.wrap = false + ppopts.col = d.col + endif + + popup_create(msg, ppopts) enddef # Display the 'diag' message in a popup or in the status message area