From 0798ad3a3a071db1b647df5aecd7698ed9aff7d9 Mon Sep 17 00:00:00 2001 From: Mathias Fußenegger Date: Sat, 14 Nov 2020 20:39:05 +0100 Subject: lsp: Expose all diagnostics (#13285) * lsp: Remove duplicate `diagnostics` fallback in diagnostic.display * lsp: Expose all diagnostics Before the changes in #12655 it was possible to retrieve all diagnostics via `vim.lsp.util.diagnostics_by_buf`. This adds a `diagnostic.get_all()` to enable users to retrieve all diagnostics. Use cases for that could include loading all diagnostics into the quickfix list, or to build an enhanced goto_next that can move across buffers. --- test/functional/plugin/lsp/diagnostic_spec.lua | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'test/functional/plugin') diff --git a/test/functional/plugin/lsp/diagnostic_spec.lua b/test/functional/plugin/lsp/diagnostic_spec.lua index 0fb55da4bd..11b2beba7a 100644 --- a/test/functional/plugin/lsp/diagnostic_spec.lua +++ b/test/functional/plugin/lsp/diagnostic_spec.lua @@ -67,6 +67,22 @@ describe('vim.lsp.diagnostic', function() describe('vim.lsp.diagnostic', function() describe('handle_publish_diagnostics', function() + it('should be able to retrieve diagnostics from all buffers and clients', function() + eq(3, exec_lua [[ + vim.lsp.diagnostic.save( + { + make_error('Diagnostic #1', 1, 1, 1, 1), + make_error('Diagnostic #2', 2, 1, 2, 1), + }, 0, 1 + ) + vim.lsp.diagnostic.save( + { + make_error('Diagnostic #3', 3, 1, 3, 1), + }, 1, 2 + ) + return #vim.lsp.diagnostic.get_all() + ]]) + end) it('should be able to save and count a single client error', function() eq(1, exec_lua [[ vim.lsp.diagnostic.save( -- cgit