aznhe21 / actions-preview.nvim

Fully customizable previewer for LSP code actions.
GNU General Public License v3.0
365 stars 9 forks source link

vim.lsp.util.parse_snippet is deprecated #18

Closed magnuslarsen closed 8 months ago

magnuslarsen commented 8 months ago

Thanks for the amazing plugin! I've been using it for a long time.

Just for your information, it seems that vim.lsp.util.parse_snippet is deprecated in nightly Neovim, and your plugin now shows the following message:

vim.lsp.util.parse_snippet is deprecated :help deprecated
This feature will be removed in Nvim version 0.11

Which is quite annoying, but nothing that prevents the plugin from working.

See https://github.com/neovim/neovim/pull/25733 for the actual deprecation. I see that in nvim-cmp (https://github.com/hrsh7th/nvim-cmp/pull/1734) they simply removed the deprecated code; but I'm not sure if this plugin requires it for something... as such I will leave the decision of what to do, up to you :-)

aznhe21 commented 8 months ago

I appreciate your feedback. I've noticed that avoiding the use of parse_snippet results in unnecessary strings in the preview, as shown in the screenshot (XX$0X instead of XXX). Considering the annoyance caused by the deprecated message, I've decided to promptly remove the parse_snippet to enhance the user experience. Thanks for your understanding! image

magnuslarsen commented 8 months ago

Thanks for the very fast response!

The upstream MR has a long discussion about exactly deprecating the parse_snippet() function, without having a replacement (yet)

One solution is this: https://github.com/neovim/neovim/pull/25733#issuecomment-1774979718 - not sure if it is "enough" for this project?

Another (ugly one) includes using the private require("vim.lsp._completion").parse_snippet()-function until a new function has been implemented (tracked in https://github.com/neovim/neovim/issues/25714)

EDIT: method one is not good enough: image

aznhe21 commented 8 months ago

Yes, we cannot use \k* because Code Action results contain symbols in places that are not just snippets. To display the results correctly, they should be parsed properly. Of course, I also do not intend to use the internal functions. Thanks for your suggestion.