From ee7d98607dc67b08cf554e2cfb7442407f94ce38 Mon Sep 17 00:00:00 2001 From: Topoetry Date: Wed, 22 Apr 2026 03:58:06 +0200 Subject: made 1 line message be displayed with vis:info made the documentation for `show_message` clearer --- README.md | 2 +- init.lua | 32 ++++++++++++++++++-------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 6486522..0a0b6fc 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,7 @@ Available options are: * `diagnostic_styles = { error = 'back:red', warning = 'back:yellow', information = 'back:yellow', hint = 'back:yellow', }` - styles used to highlight different diagnostics * `workspace_edit_remember_cursor = true` - restore the primary cursor position after a workspaceEdit * `message_level = 3` - the level of shown messages retrieved via `window/showMessage` notifications -* `show_message = 'message'` - how to present information. `'message'`: use `vis:message`; `'open'`: use a new window supporting syntax highlighting. +* `show_message = 'message'` - how to present multiline information. `'message'`: use `vis:message`; `'open'`: use a new window supporting syntax highlighting. * `universal_root_globs = {}` - Globs to consider as workspace root for any language server (e.g. `*.git` or `*.hg`). * `fallback_dirname_as_root = false` - If set to true a file's directory is used as workspace root if no explicit root was found. * `navwin_symbols_format = '%s[%.1s] %s\n'` - The format string used to display a symbol in the symbol navigation window. diff --git a/init.lua b/init.lua index 52f8d08..9600203 100644 --- a/init.lua +++ b/init.lua @@ -454,22 +454,26 @@ end local function lspc_show_message(msg, hdr, syntax) local current_win = vis.win - if lspc.show_message == 'message' then - local to_show = (hdr or '') .. msg .. '\n' - vis:message(to_show) - vis.win.selection = vis.win.file.size - #to_show - vis:feedkeys('zt') - - elseif lspc.show_message == 'open' then - vis:command('open') - if syntax then - vis:command('set syntax ' .. syntax) - end + if string.find(string.sub(msg, 2, -2), "\n") then + if lspc.show_message == 'message' then + local to_show = (hdr or '') .. msg .. '\n' + vis:message(to_show) + vis.win.selection = vis.win.file.size - #to_show + vis:feedkeys('zt') + + elseif lspc.show_message == 'open' then + vis:command('open') + if syntax then + vis:command('set syntax ' .. syntax) + end - vis.win.file:insert(0, msg) - vis.win.selection.pos = 0 + vis.win.file:insert(0, msg) + vis.win.selection.pos = 0 + else + lspc:err('invalid message configuration "' .. lspc.show_message .. '".') + end else - lspc:err('invalid message configuration "' .. lspc.show_message .. '".') + vis:info(msg) end -- reset the focus to the current window -- cgit v1.2.3