diff options
Diffstat (limited to 'test/functional/plugin/lsp_spec.lua')
| -rw-r--r-- | test/functional/plugin/lsp_spec.lua | 53 | 
1 files changed, 29 insertions, 24 deletions
| diff --git a/test/functional/plugin/lsp_spec.lua b/test/functional/plugin/lsp_spec.lua index 5e9766c784..db3ab8ed98 100644 --- a/test/functional/plugin/lsp_spec.lua +++ b/test/functional/plugin/lsp_spec.lua @@ -6259,37 +6259,42 @@ describe('LSP', function()        )      end) -    it('supports a function for root_dir', function() +    it('supports async function for root_dir', function()        exec_lua(create_server_definition)        local tmp1 = t.tmpname(true) +      exec_lua(function() +        local server = _G._create_server({ +          handlers = { +            initialize = function(_, _, callback) +              callback(nil, { capabilities = {} }) +            end, +          }, +        }) -      eq( -        'some_dir', -        exec_lua(function() -          local server = _G._create_server({ -            handlers = { -              initialize = function(_, _, callback) -                callback(nil, { capabilities = {} }) -              end, -            }, -          }) - -          vim.lsp.config('foo', { -            cmd = server.cmd, -            filetypes = { 'foo' }, -            root_dir = function(cb) +        vim.lsp.config('foo', { +          cmd = server.cmd, +          filetypes = { 'foo' }, +          root_dir = function(cb) +            vim.system({ 'sleep', '0' }, {}, function()                cb('some_dir') -            end, -          }) -          vim.lsp.enable('foo') +            end) +          end, +        }) +        vim.lsp.enable('foo') -          vim.cmd.edit(assert(tmp1)) -          vim.bo.filetype = 'foo' +        vim.cmd.edit(assert(tmp1)) +        vim.bo.filetype = 'foo' +      end) -          return vim.lsp.get_clients({ bufnr = vim.api.nvim_get_current_buf() })[1].root_dir -        end) -      ) +      retry(nil, 1000, function() +        eq( +          'some_dir', +          exec_lua(function() +            return vim.lsp.get_clients({ bufnr = vim.api.nvim_get_current_buf() })[1].root_dir +          end) +        ) +      end)      end)    end)  end) | 
