diff --git a/autoload/coc/vtext.vim b/autoload/coc/vtext.vim index ddc54e3041c..08d7926148b 100644 --- a/autoload/coc/vtext.vim +++ b/autoload/coc/vtext.vim @@ -51,6 +51,7 @@ function! coc#vtext#add(bufnr, src_id, line, blocks, opts) abort let opts['virt_text'] = a:blocks if s:n10 && column != 0 let opts['virt_text_pos'] = 'inline' + let opts['right_gravity'] = get(a:opts, 'right_gravity', v:true) elseif align ==# 'right' let opts['virt_text_pos'] = 'right_align' else diff --git a/src/handler/inlayHint/buffer.ts b/src/handler/inlayHint/buffer.ts index 4c62f31898f..7a92434d81a 100644 --- a/src/handler/inlayHint/buffer.ts +++ b/src/handler/inlayHint/buffer.ts @@ -215,7 +215,10 @@ export default class InlayHintBuffer implements SyncItem { if (this.config.position == InlayHintPosition.Eol) { col = 0 } - buffer.setVirtualText(srcId, position.line, chunks, { col, hl_mode: 'replace' }) + // TODO right_gravity field is absent in VirtualTextOption + let opts: any = { col, hl_mode: 'replace' } + if (nvim.isVim && item.kind == InlayHintKind.Parameter) { opts.right_gravity = false } + buffer.setVirtualText(srcId, position.line, chunks, opts) } nvim.resumeNotification(true, true) this._onDidRefresh.fire()