]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.0.1922: LSP server request message is misinterpreted as a response message v9.0.1922
authorYegappan Lakshmanan <yegappan@yahoo.com>
Wed, 20 Sep 2023 18:32:55 +0000 (20:32 +0200)
committerChristian Brabandt <cb@256bit.org>
Wed, 20 Sep 2023 18:32:55 +0000 (20:32 +0200)
Problem:  LSP server request message is misinterpreted as a response message
Solution: Check that the message does not have the "message" field

closes: #13133

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
src/channel.c
src/version.c

index cdb956e7cfea5f6946876ddf5e73f6396e809343..4326ca7c11b324b39533fc890267aa81537dd2f3 100644 (file)
@@ -2927,9 +2927,16 @@ may_invoke_callback(channel_T *channel, ch_part_T part)
            seq_nr = 0;
            if (d != NULL)
            {
-               di = dict_find(d, (char_u *)"id", -1);
-               if (di != NULL && di->di_tv.v_type == VAR_NUMBER)
-                   seq_nr = di->di_tv.vval.v_number;
+               // When looking for a response message from the LSP server,
+               // ignore new LSP request and notification messages.  LSP
+               // request and notification messages have the "method" field in
+               // the header and the response messages do not have this field.
+               if (!dict_has_key(d, "method"))
+               {
+                   di = dict_find(d, (char_u *)"id", -1);
+                   if (di != NULL && di->di_tv.v_type == VAR_NUMBER)
+                       seq_nr = di->di_tv.vval.v_number;
+               }
            }
 
            argv[1] = *listtv;
index 5f362340eca2fe3436e3486a5109bb3304c7a0d9..7e8589b05ce0b6f8381688dcece9c48d7a384630 100644 (file)
@@ -699,6 +699,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1922,
 /**/
     1921,
 /**/