neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 9cb7e00b9748b08fce661f8cbeb06c5994c749ae
parent 54be7d6b45a9ae51c218c0e5c1c20dd608b97297
Author: Gregory Anders <8965202+gpanders@users.noreply.github.com>
Date:   Wed, 16 Aug 2023 08:21:32 -0500

feat(diagnostic): provide more control over virtual text display (#24724)

Allow users to pass virtual text options to nvim_buf_set_extmark through
the "virtual_text" table in vim.diagnostic.config().

Fixes: https://github.com/neovim/neovim/issues/16545
Diffstat:
Mruntime/doc/diagnostic.txt | 5++++-
Mruntime/doc/news.txt | 5+++++
Mruntime/lua/vim/diagnostic.lua | 9+++++++--
3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/runtime/doc/diagnostic.txt b/runtime/doc/diagnostic.txt @@ -382,7 +382,10 @@ config({opts}, {namespace}) *vim.diagnostic.config()* • virtual_text: (default true) Use virtual text for diagnostics. If multiple diagnostics are set for a namespace, one prefix per diagnostic + the last - diagnostic message are shown. Options: + diagnostic message are shown. In addition to the + options listed below, the "virt_text" options of + |nvim_buf_set_extmark()| may also be used here (e.g. + "virt_text_pos" and "hl_mode"). Options: • severity: Only show virtual text for diagnostics matching the given severity |diagnostic-severity| • source: (boolean or string) Include the diagnostic diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt @@ -194,6 +194,11 @@ The following changes to existing APIs or features add new behavior. automatically if the job exited without error, eliminating the (often unwanted) "[Process exited 0]" message. +• |vim.diagnostic.config()| now accepts virtual text relevant options to + |nvim_buf_set_extmark()| (e.g. "virt_text_pos" and "hl_mode") in its + "virtual_text" table, which gives users more control over how diagnostic + virtual text is displayed. + ============================================================================== REMOVED FEATURES *news-removed* diff --git a/runtime/lua/vim/diagnostic.lua b/runtime/lua/vim/diagnostic.lua @@ -566,7 +566,9 @@ end --- severity |diagnostic-severity| --- - virtual_text: (default true) Use virtual text for diagnostics. If multiple diagnostics --- are set for a namespace, one prefix per diagnostic + the last diagnostic ---- message are shown. +--- message are shown. In addition to the options listed below, the +--- "virt_text" options of |nvim_buf_set_extmark()| may also be used here +--- (e.g. "virt_text_pos" and "hl_mode"). --- Options: --- * severity: Only show virtual text for diagnostics matching the given --- severity |diagnostic-severity| @@ -1008,8 +1010,11 @@ M.handlers.virtual_text = { if virt_texts then api.nvim_buf_set_extmark(bufnr, virt_text_ns, line, 0, { - hl_mode = 'combine', + hl_mode = opts.virtual_text.hl_mode or 'combine', virt_text = virt_texts, + virt_text_pos = opts.virtual_text.virt_text_pos, + virt_text_hide = opts.virtual_text.virt_text_hide, + virt_text_win_col = opts.virtual_text.virt_text_win_col, }) end end