From 1d76279cf41ce73adf8360305c6f3653f20edb07 Mon Sep 17 00:00:00 2001
From: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Tue, 6 Feb 2024 08:01:28 -0800
Subject: [PATCH] Process the padding value in inlay hints

---
 autoload/lsp/inlayhints.vim | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/autoload/lsp/inlayhints.vim b/autoload/lsp/inlayhints.vim
index e64deb9..a793699 100644
--- a/autoload/lsp/inlayhints.vim
+++ b/autoload/lsp/inlayhints.vim
@@ -49,6 +49,16 @@ export def InlayHintsReply(lspserver: dict<any>, bnr: number, inlayHints: any)
       label = hint.label
     endif
 
+    # add a space before or after the label
+    var padLeft: bool = hint->get('paddingLeft', false)
+    var padRight: bool = hint->get('paddingRight', false)
+    if padLeft
+      label = $' {label}'
+    endif
+    if padRight
+      label = $'{label} '
+    endif
+
     var kind = hint->has_key('kind') ? hint.kind->string() : '1'
     try
       lspserver.decodePosition(bnr, hint.position)
@@ -57,7 +67,6 @@ export def InlayHintsReply(lspserver: dict<any>, bnr: number, inlayHints: any)
 	prop_add(hint.position.line + 1, byteIdx + 1,
 	  {type: 'LspInlayHintsType', text: label, bufnr: bnr})
       elseif kind == "'parameter'" || kind == '2'
-        label = label .. " "
 	prop_add(hint.position.line + 1, byteIdx + 1,
 	  {type: 'LspInlayHintsParam', text: label, bufnr: bnr})
       endif
-- 
2.51.0