fix: replace vim.* "requires" with explicit calls to vim functions (#1701)

This commit is contained in:
Alexander Courtis
2022-11-06 10:37:33 +11:00
committed by GitHub
parent 6d6a44626d
commit 8cc369695b
30 changed files with 263 additions and 321 deletions

View File

@@ -1,5 +1,4 @@
local utils = require "nvim-tree.utils"
local a = vim.api
local M = {}
@@ -34,19 +33,19 @@ local function setup_window(node)
noautocmd = true,
zindex = 60,
})
local winnr = a.nvim_open_win(0, false, open_win_config)
local winnr = vim.api.nvim_open_win(0, false, open_win_config)
current_popup = {
winnr = winnr,
file_path = node.absolute_path,
}
local bufnr = a.nvim_create_buf(false, true)
a.nvim_buf_set_lines(bufnr, 0, -1, false, lines)
a.nvim_win_set_buf(winnr, bufnr)
local bufnr = vim.api.nvim_create_buf(false, true)
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, lines)
vim.api.nvim_win_set_buf(winnr, bufnr)
end
function M.close_popup()
if current_popup ~= nil then
a.nvim_win_close(current_popup.winnr, { force = true })
vim.api.nvim_win_close(current_popup.winnr, { force = true })
vim.cmd "augroup NvimTreeRemoveFilePopup | au! CursorMoved | augroup END"
current_popup = nil
@@ -69,8 +68,8 @@ function M.toggle_file_info(node)
setup_window(node)
a.nvim_create_autocmd("CursorMoved", {
group = a.nvim_create_augroup("NvimTreeRemoveFilePopup", {}),
vim.api.nvim_create_autocmd("CursorMoved", {
group = vim.api.nvim_create_augroup("NvimTreeRemoveFilePopup", {}),
callback = M.close_popup,
})
end

View File

@@ -1,6 +1,4 @@
-- Copyright 2019 Yazdani Kiyan under MIT License
local api = vim.api
local lib = require "nvim-tree.lib"
local utils = require "nvim-tree.utils"
local view = require "nvim-tree.view"
@@ -18,20 +16,20 @@ end
---Get all windows in the current tabpage that aren't NvimTree.
---@return table with valid win_ids
local function usable_win_ids()
local tabpage = api.nvim_get_current_tabpage()
local win_ids = api.nvim_tabpage_list_wins(tabpage)
local tabpage = vim.api.nvim_get_current_tabpage()
local win_ids = vim.api.nvim_tabpage_list_wins(tabpage)
local tree_winid = view.get_winnr(tabpage)
return vim.tbl_filter(function(id)
local bufid = api.nvim_win_get_buf(id)
local bufid = vim.api.nvim_win_get_buf(id)
for option, v in pairs(M.window_picker.exclude) do
local ok, option_value = pcall(api.nvim_buf_get_option, bufid, option)
local ok, option_value = pcall(vim.api.nvim_buf_get_option, bufid, option)
if ok and vim.tbl_contains(v, option_value) then
return false
end
end
local win_config = api.nvim_win_get_config(id)
local win_config = vim.api.nvim_win_get_config(id)
return id ~= tree_winid and win_config.focusable and not win_config.external
end, win_ids)
end
@@ -68,8 +66,8 @@ local function pick_win_id()
local laststatus = vim.o.laststatus
vim.o.laststatus = 2
local tabpage = api.nvim_get_current_tabpage()
local win_ids = api.nvim_tabpage_list_wins(tabpage)
local tabpage = vim.api.nvim_get_current_tabpage()
local win_ids = vim.api.nvim_tabpage_list_wins(tabpage)
local not_selectable = vim.tbl_filter(function(id)
return not vim.tbl_contains(selectable, id)
@@ -77,8 +75,8 @@ local function pick_win_id()
if laststatus == 3 then
for _, win_id in ipairs(not_selectable) do
local ok_status, statusline = pcall(api.nvim_win_get_option, win_id, "statusline")
local ok_hl, winhl = pcall(api.nvim_win_get_option, win_id, "winhl")
local ok_status, statusline = pcall(vim.api.nvim_win_get_option, win_id, "statusline")
local ok_hl, winhl = pcall(vim.api.nvim_win_get_option, win_id, "winhl")
win_opts[win_id] = {
statusline = ok_status and statusline or "",
@@ -86,15 +84,15 @@ local function pick_win_id()
}
-- Clear statusline for windows not selectable
api.nvim_win_set_option(win_id, "statusline", " ")
vim.api.nvim_win_set_option(win_id, "statusline", " ")
end
end
-- Setup UI
for _, id in ipairs(selectable) do
local char = M.window_picker.chars:sub(i, i)
local ok_status, statusline = pcall(api.nvim_win_get_option, id, "statusline")
local ok_hl, winhl = pcall(api.nvim_win_get_option, id, "winhl")
local ok_status, statusline = pcall(vim.api.nvim_win_get_option, id, "statusline")
local ok_hl, winhl = pcall(vim.api.nvim_win_get_option, id, "winhl")
win_opts[id] = {
statusline = ok_status and statusline or "",
@@ -102,8 +100,8 @@ local function pick_win_id()
}
win_map[char] = id
api.nvim_win_set_option(id, "statusline", "%=" .. char .. "%=")
api.nvim_win_set_option(id, "winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker")
vim.api.nvim_win_set_option(id, "statusline", "%=" .. char .. "%=")
vim.api.nvim_win_set_option(id, "winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker")
i = i + 1
if i > #M.window_picker.chars then
@@ -122,14 +120,14 @@ local function pick_win_id()
-- Restore window options
for _, id in ipairs(selectable) do
for opt, value in pairs(win_opts[id]) do
api.nvim_win_set_option(id, opt, value)
vim.api.nvim_win_set_option(id, opt, value)
end
end
if laststatus == 3 then
for _, id in ipairs(not_selectable) do
for opt, value in pairs(win_opts[id]) do
api.nvim_win_set_option(id, opt, value)
vim.api.nvim_win_set_option(id, opt, value)
end
end
end
@@ -154,9 +152,9 @@ local function on_preview(buf_loaded)
if not buf_loaded then
vim.bo.bufhidden = "delete"
api.nvim_create_autocmd({ "TextChanged", "TextChangedI" }, {
group = api.nvim_create_augroup("RemoveBufHidden", {}),
buffer = api.nvim_get_current_buf(),
vim.api.nvim_create_autocmd({ "TextChanged", "TextChangedI" }, {
group = vim.api.nvim_create_augroup("RemoveBufHidden", {}),
buffer = vim.api.nvim_get_current_buf(),
callback = function()
vim.bo.bufhidden = ""
end,
@@ -195,7 +193,7 @@ end
local function set_current_win_no_autocmd(winid, autocmd)
local eventignore = vim.opt.eventignore:get()
vim.opt.eventignore:append(autocmd)
api.nvim_set_current_win(winid)
vim.api.nvim_set_current_win(winid)
vim.opt.eventignore = eventignore
end
@@ -209,13 +207,13 @@ local function open_in_new_window(filename, mode, win_ids)
return
end
local create_new_window = #api.nvim_list_wins() == 1
local create_new_window = #vim.api.nvim_list_wins() == 1
local new_window_side = (view.View.side == "right") and "aboveleft" or "belowright"
-- Target is invalid or window does not exist in current tabpage: create new window
if not vim.tbl_contains(win_ids, target_winid) then
vim.cmd(new_window_side .. " vsplit")
target_winid = api.nvim_get_current_win()
target_winid = vim.api.nvim_get_current_win()
lib.target_winid = target_winid
-- No need to split, as we created a new window.
@@ -226,8 +224,8 @@ local function open_in_new_window(filename, mode, win_ids)
elseif not vim.o.hidden then
-- If `hidden` is not enabled, check if buffer in target window is
-- modified, and create new split if it is.
local target_bufid = api.nvim_win_get_buf(target_winid)
if api.nvim_buf_get_option(target_bufid, "modified") then
local target_bufid = vim.api.nvim_win_get_buf(target_winid)
if vim.api.nvim_buf_get_option(target_bufid, "modified") then
mode = "vsplit"
end
end
@@ -257,8 +255,8 @@ local function open_in_new_window(filename, mode, win_ids)
end
local function is_already_loaded(filename)
for _, buf_id in ipairs(api.nvim_list_bufs()) do
if api.nvim_buf_is_loaded(buf_id) and filename == api.nvim_buf_get_name(buf_id) then
for _, buf_id in ipairs(vim.api.nvim_list_bufs()) do
if vim.api.nvim_buf_is_loaded(buf_id) and filename == vim.api.nvim_buf_get_name(buf_id) then
return true
end
end
@@ -283,8 +281,8 @@ function M.fn(mode, filename)
return edit_in_current_buf(filename)
end
local tabpage = api.nvim_get_current_tabpage()
local win_ids = api.nvim_tabpage_list_wins(tabpage)
local tabpage = vim.api.nvim_get_current_tabpage()
local win_ids = vim.api.nvim_tabpage_list_wins(tabpage)
local buf_loaded = is_already_loaded(filename)
local found_win = utils.get_win_buf_from_path(filename)
@@ -295,7 +293,7 @@ function M.fn(mode, filename)
if not found_win then
open_in_new_window(filename, mode, win_ids)
else
api.nvim_set_current_win(found_win)
vim.api.nvim_set_current_win(found_win)
vim.bo.bufhidden = ""
end

View File

@@ -1,5 +1,3 @@
local uv = vim.loop
local M = {
config = {
is_windows = vim.fn.has "win32" == 1 or vim.fn.has "win32unix" == 1,
@@ -18,10 +16,10 @@ function M.fn(node)
cmd = M.config.system_open.cmd,
args = M.config.system_open.args,
errors = "\n",
stderr = uv.new_pipe(false),
stderr = vim.loop.new_pipe(false),
}
table.insert(process.args, node.link_to or node.absolute_path)
process.handle, process.pid = uv.spawn(
process.handle, process.pid = vim.loop.spawn(
process.cmd,
{ args = process.args, stdio = { nil, nil, process.stderr }, detached = true },
function(code)
@@ -39,7 +37,7 @@ function M.fn(node)
error("\n" .. process.pid .. "\nNvimTree system_open: failed to spawn process using '" .. process.cmd .. "'.")
return
end
uv.read_start(process.stderr, function(err, data)
vim.loop.read_start(process.stderr, function(err, data)
if err then
return
end
@@ -47,7 +45,7 @@ function M.fn(node)
process.errors = process.errors .. data
end
end)
uv.unref(process.handle)
vim.loop.unref(process.handle)
end
function M.setup(opts)