From: Yegappan Lakshmanan Date: Wed, 20 Sep 2023 18:32:55 +0000 (+0200) Subject: patch 9.0.1922: LSP server request message is misinterpreted as a response message X-Git-Tag: v9.0.1922^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78c5a5abc657f0173551157547213d8bbb033fd4;p=thirdparty%2Fvim.git patch 9.0.1922: LSP server request message is misinterpreted as a response message 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 Co-authored-by: Yegappan Lakshmanan --- diff --git a/src/channel.c b/src/channel.c index cdb956e7cf..4326ca7c11 100644 --- a/src/channel.c +++ b/src/channel.c @@ -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; diff --git a/src/version.c b/src/version.c index 5f362340ec..7e8589b05c 100644 --- a/src/version.c +++ b/src/version.c @@ -699,6 +699,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1922, /**/ 1921, /**/