aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/util.lua
diff options
context:
space:
mode:
authorhrsh7th <hrsh7th@gmail.com>2021-09-14 20:31:41 +0900
committerJustin M. Keyes <justinkz@gmail.com>2021-09-14 07:11:40 -0700
commit64dc7a1b55e3f066f54866518523e78a06490edd (patch)
treedfcc488d38398ec2cd64fdaedd0c16ebd9118fba /runtime/lua/vim/lsp/util.lua
parent5a813160ae07570f9002bc55777f671f734fc2a4 (diff)
downloadrneovim-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.lua11
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