From 9e725f08106bee8b72e7bf596a29cdc3f35936be Mon Sep 17 00:00:00 2001 From: Steven Arcangeli Date: Thu, 16 May 2024 11:33:39 -0700 Subject: [PATCH] ci: run tests against Neovim v0.10.0 --- .github/workflows/tests.yml | 1 + lua/aerial/backends/lsp/callbacks.lua | 8 +++++++- lua/aerial/backends/lsp/util.lua | 15 ++++++++++++++- lua/aerial/backends/treesitter/helpers.lua | 10 +++++----- lua/aerial/config.lua | 1 + lua/aerial/fold.lua | 2 +- lua/aerial/util.lua | 4 ++-- 7 files changed, 31 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 52df62c..ace5a9a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -52,6 +52,7 @@ jobs: include: - nvim_tag: v0.8.3 - nvim_tag: v0.9.4 + - nvim_tag: v0.10.0 name: Run tests runs-on: ubuntu-22.04 diff --git a/lua/aerial/backends/lsp/callbacks.lua b/lua/aerial/backends/lsp/callbacks.lua index e647d62..cc041ff 100644 --- a/lua/aerial/backends/lsp/callbacks.lua +++ b/lua/aerial/backends/lsp/callbacks.lua @@ -171,7 +171,10 @@ M.symbol_callback = function(_err, result, context, _config) return end - local client = vim.lsp.get_client_by_id(context.client_id) + local client = vim.lsp.get_client_by_id(client_id) + if not client then + return + end -- Debounce this callback to avoid unnecessary re-rendering if results[bufnr] == nil then vim.defer_fn(function() @@ -189,6 +192,9 @@ end M.on_publish_diagnostics = function(_err, result, ctx, _config) local client_id = ctx.client_id local client = vim.lsp.get_client_by_id(client_id) + if not client then + return + end local uri = result.uri local bufnr = vim.uri_to_bufnr(uri) if diff --git a/lua/aerial/backends/lsp/util.lua b/lua/aerial/backends/lsp/util.lua index a173bdb..fac5792 100644 --- a/lua/aerial/backends/lsp/util.lua +++ b/lua/aerial/backends/lsp/util.lua @@ -15,7 +15,20 @@ end M.get_client = function(bufnr, exclude_id) local ret local last_priority = -1 - for _, client in ipairs(vim.lsp.get_active_clients({ bufnr = bufnr })) do + + local clients + if vim.lsp.get_clients then + clients = vim.lsp.get_clients({ + bufnr = bufnr, + }) + else + ---@diagnostic disable-next-line: deprecated + clients = vim.lsp.get_active_clients({ + bufnr = bufnr, + }) + end + + for _, client in ipairs(clients) do local priority = config.lsp.priority[client.name] or 10 if client.id ~= exclude_id diff --git a/lua/aerial/backends/treesitter/helpers.lua b/lua/aerial/backends/treesitter/helpers.lua index 078c9d9..0aa7c9e 100644 --- a/lua/aerial/backends/treesitter/helpers.lua +++ b/lua/aerial/backends/treesitter/helpers.lua @@ -30,7 +30,7 @@ else ---@param bufnr nil|integer M.get_buf_lang = function(bufnr) bufnr = bufnr or vim.api.nvim_get_current_buf() - local ft = vim.api.nvim_buf_get_option(bufnr, "ft") + local ft = vim.bo[bufnr].filetype local result = vim.treesitter.language.get_lang(ft) if result then @@ -44,21 +44,21 @@ end if vim.treesitter.query.get == nil then ---@param lang string - ---@return Query|nil + ---@return vim.treesitter.Query|nil M.load_query = function(lang) ---@diagnostic disable-next-line: deprecated return vim.treesitter.query.get_query(lang, "aerial") end else ---@param lang string - ---@return Query|nil + ---@return vim.treesitter.Query|nil M.load_query = function(lang) return vim.treesitter.query.get(lang, "aerial") end end ---@param lang string ----@return Query|nil +---@return vim.treesitter.Query|nil ---@note caches queries to avoid filesystem hits on neovim 0.9+ M.get_query = function(lang) if not query_cache[lang] then @@ -77,7 +77,7 @@ M.has_parser = function(lang) end ---@param bufnr integer ----@return LanguageTree|nil +---@return vim.treesitter.LanguageTree|nil M.get_parser = function(bufnr) bufnr = bufnr or vim.api.nvim_get_current_buf() ---@note nvim 0.9.1 and later don't really care for lang here, as vim itself becomes an authority on that diff --git a/lua/aerial/config.lua b/lua/aerial/config.lua index 68c8c89..7f033ed 100644 --- a/lua/aerial/config.lua +++ b/lua/aerial/config.lua @@ -417,6 +417,7 @@ local nerd_icons = { Collapsed = " ", } +---@diagnostic disable-next-line: deprecated local islist = vim.islist or vim.tbl_islist local M = {} diff --git a/lua/aerial/fold.lua b/lua/aerial/fold.lua index 479bf98..9a9b97b 100644 --- a/lua/aerial/fold.lua +++ b/lua/aerial/fold.lua @@ -52,7 +52,7 @@ M.add_fold_mappings = function(bufnr) zX = { aerial.sync_folds, "[aerial] sync folds" }, } for lhs, v in pairs(maps) do - local callback, desc = unpack(v) + local callback, desc = v[1], v[2] if not config.link_tree_to_folds then local orig_cb = callback callback = function() diff --git a/lua/aerial/util.lua b/lua/aerial/util.lua index e117850..ff3de08 100644 --- a/lua/aerial/util.lua +++ b/lua/aerial/util.lua @@ -371,9 +371,9 @@ M.render_centered_text = function(bufnr, text) line = string.rep(" ", (width - vim.api.nvim_strwidth(line)) / 2) .. line table.insert(lines, line) end - vim.api.nvim_buf_set_option(bufnr, "modifiable", true) + vim.bo[bufnr].modifiable = true vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, lines) - vim.api.nvim_buf_set_option(bufnr, "modifiable", false) + vim.bo[bufnr].modifiable = false end M.pack = function(...)