diff options
author | hrsh7th <hrsh7th@gmail.com> | 2021-09-14 20:31:41 +0900 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2021-09-14 07:11:40 -0700 |
commit | 64dc7a1b55e3f066f54866518523e78a06490edd (patch) | |
tree | dfcc488d38398ec2cd64fdaedd0c16ebd9118fba /runtime/lua/vim/lsp/util.lua | |
parent | 5a813160ae07570f9002bc55777f671f734fc2a4 (diff) | |
download | rneovim-64dc7a1b55e3f066f54866518523e78a06490edd.tar.gz rneovim-64dc7a1b55e3f066f54866518523e78a06490edd.tar.bz2 rneovim-64dc7a1b55e3f066f54866518523e78a06490edd.zip |
fix(lsp): correctly parse LSP snippets #15579
Fixes #15522
Diffstat (limited to 'runtime/lua/vim/lsp/util.lua')
-rw-r--r-- | runtime/lua/vim/lsp/util.lua | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua index 06afc2c5e2..18a2b60a7a 100644 --- a/runtime/lua/vim/lsp/util.lua +++ b/runtime/lua/vim/lsp/util.lua @@ -1,4 +1,5 @@ local protocol = require 'vim.lsp.protocol' +local snippet = require 'vim.lsp._snippet' local vim = vim local validate = vim.validate local api = vim.api @@ -579,9 +580,13 @@ end --@param input (string) unparsed snippet --@returns (string) parsed snippet function M.parse_snippet(input) - local res, _ = parse_snippet_rec(input, false) - - return res + local ok, parsed = pcall(function() + return tostring(snippet.parse(input)) + end) + if not ok then + return input + end + return parsed end --@private |