diff options
author | Mathias Fussenegger <f.mathias@zignar.net> | 2022-08-24 20:25:34 +0200 |
---|---|---|
committer | Mathias Fussenegger <f.mathias@zignar.net> | 2022-08-28 14:07:53 +0200 |
commit | 60ec6e34d585a7f633d49aab790066c1740885e1 (patch) | |
tree | 94527df960d8c891c767a5141477f32107a98db6 /test/functional/plugin/lsp_spec.lua | |
parent | 46bb34e26b3bee89fd1d5d9d1bebced00000732d (diff) | |
download | rneovim-60ec6e34d585a7f633d49aab790066c1740885e1.tar.gz rneovim-60ec6e34d585a7f633d49aab790066c1740885e1.tar.bz2 rneovim-60ec6e34d585a7f633d49aab790066c1740885e1.zip |
feat(lsp): add tcp support
Diffstat (limited to 'test/functional/plugin/lsp_spec.lua')
-rw-r--r-- | test/functional/plugin/lsp_spec.lua | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/functional/plugin/lsp_spec.lua b/test/functional/plugin/lsp_spec.lua index cd7415de90..fa731f6faf 100644 --- a/test/functional/plugin/lsp_spec.lua +++ b/test/functional/plugin/lsp_spec.lua @@ -3181,4 +3181,32 @@ describe('LSP', function() } end) end) + + describe('cmd', function() + it('can connect to lsp server via rpc.connect', function() + local result = exec_lua [[ + local uv = vim.loop + local server = uv.new_tcp() + local init = nil + server:bind('127.0.0.1', 0) + server:listen(127, function(err) + assert(not err, err) + local socket = uv.new_tcp() + server:accept(socket) + socket:read_start(require('vim.lsp.rpc').create_read_loop(function(body) + init = body + socket:close() + end)) + end) + local port = server:getsockname().port + vim.lsp.start({ name = 'dummy', cmd = vim.lsp.rpc.connect('127.0.0.1', port) }) + vim.wait(1000, function() return init ~= nil end) + assert(init, "server must receive `initialize` request") + server:close() + server:shutdown() + return vim.json.decode(init) + ]] + eq(result.method, "initialize") + end) + end) end) |