diff options
author | Michael Lingelbach <m.j.lbach@gmail.com> | 2022-04-30 06:36:40 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-30 15:36:40 +0200 |
commit | 5b04e46d23b65413d934d812d61d8720b815eb1c (patch) | |
tree | f39fb4ef457aa7cdce509806c87972d3c47164fa /test/functional/plugin/lsp_spec.lua | |
parent | eecc6535eb5d0a6b9465489e69cbde1cbb8276e6 (diff) | |
download | rneovim-5b04e46d23b65413d934d812d61d8720b815eb1c.tar.gz rneovim-5b04e46d23b65413d934d812d61d8720b815eb1c.tar.bz2 rneovim-5b04e46d23b65413d934d812d61d8720b815eb1c.zip |
feat(lsp): add vim.lsp.buf.format (#18193)
Diffstat (limited to 'test/functional/plugin/lsp_spec.lua')
-rw-r--r-- | test/functional/plugin/lsp_spec.lua | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/test/functional/plugin/lsp_spec.lua b/test/functional/plugin/lsp_spec.lua index 6cde96ceaf..6e28946cc4 100644 --- a/test/functional/plugin/lsp_spec.lua +++ b/test/functional/plugin/lsp_spec.lua @@ -2773,4 +2773,65 @@ describe('LSP', function() } end) end) + + describe("vim.lsp.buf.format", function() + it("Aborts with notify if no client matches filter", function() + local client + test_rpc_server { + test_name = "basic_init", + on_init = function(c) + client = c + end, + on_handler = function() + local notify_msg = exec_lua([[ + local bufnr = vim.api.nvim_get_current_buf() + vim.lsp.buf_attach_client(bufnr, TEST_RPC_CLIENT_ID) + local notify_msg + local notify = vim.notify + vim.notify = function(msg, log_level) + notify_msg = msg + end + vim.lsp.buf.format({ name = 'does-not-exist' }) + vim.notify = notify + return notify_msg + ]]) + eq("[LSP] Format request failed, no matching language servers.", notify_msg) + client.stop() + end, + } + end) + it("Sends textDocument/formatting request to format buffer", function() + local expected_handlers = { + {NIL, {}, {method="shutdown", client_id=1}}; + {NIL, {}, {method="start", client_id=1}}; + } + local client + test_rpc_server { + test_name = "basic_formatting", + on_init = function(c) + client = c + end, + on_handler = function(_, _, ctx) + table.remove(expected_handlers) + if ctx.method == "start" then + local notify_msg = exec_lua([[ + local bufnr = vim.api.nvim_get_current_buf() + vim.lsp.buf_attach_client(bufnr, TEST_RPC_CLIENT_ID) + local notify_msg + local notify = vim.notify + vim.notify = function(msg, log_level) + notify_msg = msg + end + vim.lsp.buf.format({ bufnr = bufnr }) + vim.notify = notify + return notify_msg + ]]) + eq(NIL, notify_msg) + elseif ctx.method == "shutdown" then + client.stop() + end + end, + } + end) + end) end) |