From dd584dfcbfafb4aa28f70406168aef407bde6f76 Mon Sep 17 00:00:00 2001 From: Utkarsh Maheshwari Date: Sat, 2 Nov 2019 05:37:51 +0530 Subject: [PATCH] Add `g:lsp_virtual_text_prefix` option (#521) This option allows prepending characters or text to the diagnostics which are display as virtual text. It allows virtual text to be differentiated from the code --- autoload/lsp/ui/vim/virtual.vim | 3 ++- doc/vim-lsp.txt | 13 +++++++++++++ plugin/lsp.vim | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/autoload/lsp/ui/vim/virtual.vim b/autoload/lsp/ui/vim/virtual.vim index df37f763..45b503ee 100644 --- a/autoload/lsp/ui/vim/virtual.vim +++ b/autoload/lsp/ui/vim/virtual.vim @@ -81,7 +81,8 @@ function! s:place_virtual(server_name, path, diagnostics) abort let l:name = get(s:severity_sign_names_mapping, l:item['severity'], 'LspError') let l:hl_name = l:name . 'Text' - call nvim_buf_set_virtual_text(l:bufnr, l:ns, l:line, [[l:item['message'], l:hl_name]], {}) + call nvim_buf_set_virtual_text(l:bufnr, l:ns, l:line, + \ [[g:lsp_virtual_text_prefix . l:item['message'], l:hl_name]], {}) endfor endif endfunction diff --git a/doc/vim-lsp.txt b/doc/vim-lsp.txt index c23a95ee..0042a6b0 100644 --- a/doc/vim-lsp.txt +++ b/doc/vim-lsp.txt @@ -349,6 +349,19 @@ g:lsp_virtual_text_enabled *g:lsp_virtual_text_enable let g:lsp_virtual_text_enabled = 0 < +g:lsp_virtual_text_prefix *g:lsp_virtual_text_prefix* + Type: |String| + Default: `""` for neovim 0.3+ + + Adds the prefix to the diagnostics to be shown as virtual text. Requires + NeoVim with version 0.3 or newer. + + Example: +> + let g:lsp_virtual_text_prefix = "> " + let g:lsp_virtual_text_prefix = " ‣ " +< + g:lsp_highlights_enabled *g:lsp_highlights_enabled* Type: |Number| Default: `1` for neovim 0.3+ diff --git a/plugin/lsp.vim b/plugin/lsp.vim index 002b4dca..17e95287 100644 --- a/plugin/lsp.vim +++ b/plugin/lsp.vim @@ -11,6 +11,7 @@ let g:lsp_debug_servers = get(g:, 'lsp_debug_servers', []) let g:lsp_signs_enabled = get(g:, 'lsp_signs_enabled', exists('*sign_define') && (has('nvim') || has('patch-8.1.0772'))) let g:lsp_signs_priority = get(g:, 'lsp_signs_priority', 10) let g:lsp_virtual_text_enabled = get(g:, 'lsp_virtual_text_enabled', exists('*nvim_buf_set_virtual_text')) +let g:lsp_virtual_text_prefix = get(g:, 'lsp_virtual_text_prefix', '') let g:lsp_highlights_enabled = get(g:, 'lsp_highlights_enabled', exists('*nvim_buf_add_highlight')) let g:lsp_textprop_enabled = get(g:, 'lsp_textprop_enabled', exists('*prop_add') && !g:lsp_highlights_enabled) let g:lsp_signs_error = get(g:, 'lsp_signs_error', {})