diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2023-04-25 14:54:54 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2023-04-25 14:54:54 +0100 |
commit | c3eddd2068620ceb4e475961192c1d8cae3350cd (patch) | |
tree | 8053af0440fc4d98d0f255e4f40d39e6c273b2ab | |
parent | cfc788c38848adcd54e4130f16f2813cd1e215dd (diff) | |
download | vim-git-c3eddd2068620ceb4e475961192c1d8cae3350cd.tar.gz |
patch 9.0.1487: Content-type header for LSP channel not according to specv9.0.1487
Problem: Content-type header for LSP channel not according to spec.
Solution: Use "vscode-jsonrpc" instead of "vim-jsonrpc". (Yegappan
Lakshmanan, closes #12295)
-rw-r--r-- | src/json.c | 3 | ||||
-rw-r--r-- | src/testdir/test_channel.vim | 2 | ||||
-rw-r--r-- | src/testdir/test_channel_lsp.py | 10 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 10 insertions, 7 deletions
diff --git a/src/json.c b/src/json.c index c1602c3d8..acf7ac57c 100644 --- a/src/json.c +++ b/src/json.c @@ -103,9 +103,10 @@ json_encode_lsp_msg(typval_T *val) ga_append(&ga, NUL); ga_init2(&lspga, 1, 4000); + // Header according to LSP specification. vim_snprintf((char *)IObuff, IOSIZE, "Content-Length: %u\r\n" - "Content-Type: application/vim-jsonrpc; charset=utf-8\r\n\r\n", + "Content-Type: application/vscode-jsonrpc; charset=utf-8\r\n\r\n", ga.ga_len - 1); ga_concat(&lspga, IObuff); ga_concat_len(&lspga, ga.ga_data, ga.ga_len); diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim index a6b25c9a7..6be2137c3 100644 --- a/src/testdir/test_channel.vim +++ b/src/testdir/test_channel.vim @@ -2670,7 +2670,7 @@ func LspTests(port) " " Test for sending a raw message " let g:lspNotif = [] " let s = "Content-Length: 62\r\n" - " let s ..= "Content-Type: application/vim-jsonrpc; charset=utf-8\r\n" + " let s ..= "Content-Type: application/vscode-jsonrpc; charset=utf-8\r\n" " let s ..= "\r\n" " let s ..= '{"method":"echo","jsonrpc":"2.0","params":{"m":"raw-message"}}' " call ch_sendraw(ch, s) diff --git a/src/testdir/test_channel_lsp.py b/src/testdir/test_channel_lsp.py index 10b4fb43f..dd107be15 100644 --- a/src/testdir/test_channel_lsp.py +++ b/src/testdir/test_channel_lsp.py @@ -35,7 +35,7 @@ class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler): v['id'] = msgid s = json.dumps(v) resp = "Content-Length: " + str(len(s)) + "\r\n" - resp += "Content-Type: application/vim-jsonrpc; charset=utf-8\r\n" + resp += "Content-Type: application/vscode-jsonrpc; charset=utf-8\r\n" resp += "\r\n" resp += s if self.debug: @@ -46,7 +46,7 @@ class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler): v = 'wrong-payload' s = json.dumps(v) resp = "Content-Length: " + str(len(s)) + "\r\n" - resp += "Content-Type: application/vim-jsonrpc; charset=utf-8\r\n" + resp += "Content-Type: application/vscode-jsonrpc; charset=utf-8\r\n" resp += "\r\n" resp += s self.request.sendall(resp.encode('utf-8')) @@ -60,7 +60,7 @@ class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler): def send_empty_payload(self): resp = "Content-Length: 0\r\n" - resp += "Content-Type: application/vim-jsonrpc; charset=utf-8\r\n" + resp += "Content-Type: application/vscode-jsonrpc; charset=utf-8\r\n" resp += "\r\n" self.request.sendall(resp.encode('utf-8')) @@ -71,7 +71,7 @@ class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler): resp = "Host: abc.vim.org\r\n" resp += "User-Agent: Python\r\n" resp += "Accept-Language: en-US,en\r\n" - resp += "Content-Type: application/vim-jsonrpc; charset=utf-8\r\n" + resp += "Content-Type: application/vscode-jsonrpc; charset=utf-8\r\n" resp += "Content-Length: " + str(len(s)) + "\r\n" resp += "\r\n" resp += s @@ -93,7 +93,7 @@ class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler): # test for sending the http header without length v = {'jsonrpc': '2.0', 'id': msgid, 'result': resp_dict} s = json.dumps(v) - resp = "Content-Type: application/vim-jsonrpc; charset=utf-8\r\n" + resp = "Content-Type: application/vscode-jsonrpc; charset=utf-8\r\n" resp += "\r\n" resp += s self.request.sendall(resp.encode('utf-8')) diff --git a/src/version.c b/src/version.c index 7de60de7f..bc271c8af 100644 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1487, +/**/ 1486, /**/ 1485, |