From ccca333171125f9ebef619d6530815931988b2df Mon Sep 17 00:00:00 2001 From: Aaron Dill <117116764+aarondill@users.noreply.github.com> Date: Thu, 23 May 2024 13:28:07 -0500 Subject: [PATCH] Fix deprecation warnings in nvim 0.10 (#170) * fix: vim.lsp.buf_get_clients is deprecated * fix: vim.loop is deprecated * fix: vim.api.nvim_buf_get_option is deprecated * chore: formatting * doc: add note to readme about backward compatibility --- README.md | 3 ++- lua/tabnine/binary.lua | 2 +- lua/tabnine/chat/binary.lua | 2 +- lua/tabnine/chat/codelens.lua | 4 ++-- lua/tabnine/chat/init.lua | 4 ++-- lua/tabnine/completion.lua | 2 +- lua/tabnine/state.lua | 2 +- lua/tabnine/status.lua | 2 +- lua/tabnine/utils.lua | 9 +++++++++ lua/tabnine/workspace.lua | 4 ++-- 10 files changed, 22 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 5fd866b..61a8c58 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,8 @@ If you need to use Tabnine on Windows and Unix you can change the config as foll ```lua -- Get platform dependant build script local function tabnine_build_path() - if vim.loop.os_uname().sysname == "Windows_NT" then + -- Replace vim.uv with vim.loop if using NVIM 0.9.0 or below + if vim.uv.os_uname().sysname == "Windows_NT" then return "pwsh.exe -file .\\dl_binaries.ps1" else return "./dl_binaries.sh" diff --git a/lua/tabnine/binary.lua b/lua/tabnine/binary.lua index 50331bc..1028e5b 100644 --- a/lua/tabnine/binary.lua +++ b/lua/tabnine/binary.lua @@ -1,4 +1,4 @@ -local uv = vim.loop +local uv = vim.uv or vim.loop local fn = vim.fn local json = vim.json local consts = require("tabnine.consts") diff --git a/lua/tabnine/chat/binary.lua b/lua/tabnine/chat/binary.lua index 4c7b0e0..38cd387 100644 --- a/lua/tabnine/chat/binary.lua +++ b/lua/tabnine/chat/binary.lua @@ -1,4 +1,4 @@ -local uv = vim.loop +local uv = vim.uv or vim.loop local json = vim.json local utils = require("tabnine.utils") local ChatBinary = {} diff --git a/lua/tabnine/chat/codelens.lua b/lua/tabnine/chat/codelens.lua index bc59891..1af0707 100644 --- a/lua/tabnine/chat/codelens.lua +++ b/lua/tabnine/chat/codelens.lua @@ -14,7 +14,7 @@ local cancel_lsp_request = nil local buf_supports_symbols = nil function M.reload_buf_supports_symbols() - local clients = vim.lsp.buf_get_clients() + local clients = utils.buf_get_clients() for _, client in ipairs(clients) do if client.server_capabilities.documentSymbolProvider then @@ -29,7 +29,7 @@ end function M.should_display() return config.get_config().codelens_enabled and state.active - and #vim.lsp.buf_get_clients() > 0 + and #utils.buf_get_clients() > 0 and not vim.tbl_contains(config.get_config().exclude_filetypes, vim.bo.filetype) and buf_supports_symbols end diff --git a/lua/tabnine/chat/init.lua b/lua/tabnine/chat/init.lua index d8e8c14..9645164 100644 --- a/lua/tabnine/chat/init.lua +++ b/lua/tabnine/chat/init.lua @@ -148,11 +148,11 @@ local function register_events(on_init) chat_binary:register_event("get_basic_context", function(_, answer) tabnine_binary:request({ - FileMetadata = { path = api.nvim_buf_get_option(0, "filetype") }, + FileMetadata = { path = vim.bo.filetype }, }, function(metadata) answer({ fileUri = api.nvim_buf_get_name(0), - language = api.nvim_buf_get_option(0, "filetype"), + language = vim.bo.filetype, metadata = metadata, }) end) diff --git a/lua/tabnine/completion.lua b/lua/tabnine/completion.lua index 41d3fe6..631ba56 100644 --- a/lua/tabnine/completion.lua +++ b/lua/tabnine/completion.lua @@ -1,7 +1,7 @@ local M = {} local api = vim.api local fn = vim.fn -local uv = vim.loop +local uv = vim.uv or vim.loop local config = require("tabnine.config") local consts = require("tabnine.consts") local state = require("tabnine.state") diff --git a/lua/tabnine/state.lua b/lua/tabnine/state.lua index 021aea0..f8c9380 100644 --- a/lua/tabnine/state.lua +++ b/lua/tabnine/state.lua @@ -1,4 +1,4 @@ -local uv = vim.loop +local uv = vim.uv or vim.loop return { requests_counter = 0, diff --git a/lua/tabnine/status.lua b/lua/tabnine/status.lua index 93f0333..691c3cc 100644 --- a/lua/tabnine/status.lua +++ b/lua/tabnine/status.lua @@ -1,4 +1,4 @@ -local uv = vim.loop +local uv = vim.uv or vim.loop local fn = vim.fn local utils = require("tabnine.utils") diff --git a/lua/tabnine/utils.lua b/lua/tabnine/utils.lua index eee8985..2e759bb 100644 --- a/lua/tabnine/utils.lua +++ b/lua/tabnine/utils.lua @@ -176,4 +176,13 @@ function M.read_lines_start(stream, on_line, on_error) end) end +--- A wrapper around vim.lsp.get_clients which support nvim 0.10 and before +---@param bufnr integer? +---@return vim.lsp.Client[] +function M.buf_get_clients(bufnr) + bufnr = bufnr or 0 + if vim.lsp.get_clients then return vim.lsp.get_clients({ bufnr = bufnr }) end + return vim.lsp.buf_get_clients(bufnr) +end + return M diff --git a/lua/tabnine/workspace.lua b/lua/tabnine/workspace.lua index 383fd30..24ae2d9 100644 --- a/lua/tabnine/workspace.lua +++ b/lua/tabnine/workspace.lua @@ -1,5 +1,5 @@ local tabnine_binary = require("tabnine.binary") -local uv = vim.loop +local uv = vim.uv or vim.loop local lsp = vim.lsp local utils = require("tabnine.utils") @@ -12,7 +12,7 @@ function M.setup() 0, 30000, vim.schedule_wrap(function() - if #vim.lsp.buf_get_clients() > 0 then + if #utils.buf_get_clients() > 0 then local root_paths = utils.set(lsp.buf.list_workspace_folders()) tabnine_binary:request({ Workspace = { root_paths = root_paths } }, function() end) end