From ce16de5665c766f39c271705b17fff06f7bcb84f Mon Sep 17 00:00:00 2001 From: hrsh7th <629908+hrsh7th@users.noreply.github.com> Date: Tue, 2 Apr 2024 16:05:54 +0900 Subject: [PATCH] support snippet item in ghost_text --- lua/cmp/view/ghost_text_view.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lua/cmp/view/ghost_text_view.lua b/lua/cmp/view/ghost_text_view.lua index 2771f02..ef0d901 100644 --- a/lua/cmp/view/ghost_text_view.lua +++ b/lua/cmp/view/ghost_text_view.lua @@ -3,6 +3,7 @@ local misc = require('cmp.utils.misc') local snippet = require('cmp.utils.snippet') local str = require('cmp.utils.str') local api = require('cmp.utils.api') +local types = require('cmp.types') ---@class cmp.GhostTextView ---@field win number|nil @@ -77,7 +78,10 @@ end --- This function calculates the bytes of the entry to display calculating the number --- of character differences instead of just byte difference. ghost_text_view.text_gen = function(self, line, cursor_col) - local word = tostring(snippet.parse(self.entry:get_insert_text())) + local word = self.entry:get_insert_text() + if self.entry:get_completion_item().insertTextFormat == types.lsp.InsertTextFormat.Snippet then + word = tostring(snippet.parse(word)) + end word = str.oneline(word) local word_clen = vim.str_utfindex(word) local cword = string.sub(line, self.entry:get_offset(), cursor_col)