]> Sergey Matveev's repositories - vim-lsp.git/commitdiff
shane/mdf: request.id of response to lsp server perhaps was not a number
authorshane.xb.qian <shane.qian@foxmail.com>
Sun, 13 Mar 2022 02:57:33 +0000 (10:57 +0800)
committershane.xb.qian <shane.qian@foxmail.com>
Fri, 18 Mar 2022 06:29:15 +0000 (14:29 +0800)
autoload/lsp/lspserver.vim

index 92ab3b1fceb8df17814b7965fcb9cafa7e6f4f32..86d94fe219e63b3f89abf5d3b555a7cff5c90195 100644 (file)
@@ -282,7 +282,12 @@ enddef
 
 # send a response message to the server
 def SendResponse(lspserver: dict<any>, request: dict<any>, result: dict<any>, error: dict<any>)
-  var resp: dict<any> = lspserver.createResponse(request.id)
+  if (type(request.id) == v:t_string && (trim(request.id) =~ '[^[:digit:]]\+' || trim(request.id) == ''))
+    || (type(request.id) != v:t_string && type(request.id) != v:t_number)
+    util.ErrMsg("Error: request.id of response to LSP server is not a correct number")
+    return
+  endif
+  var resp: dict<any> = lspserver.createResponse(type(request.id) == v:t_string ? str2nr(request.id) : request.id)
   if result->type() != v:t_none
     resp->extend({result: result})
   else