neogit
neogit copied to clipboard
ERROR while toggling diff: Blocking on future timed out or was interrupted.
Description
Error upon toggling diffs.
Neovim version
NVIM v0.9.5
Build type: RelWithDebInfo
Lua 5.1
Compilation: /usr/lib/ccache/bin/clang -O2 -g -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wvla -Wdouble-promotion -Wmissing-nor
eturn -Wmissing-format-attribute -Wmissing-prototypes -Wimplicit-fallthrough -fdiagnostics-color=always -fstack-protector-strong -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_VENDOR_
BIT -I/usr/include/lua5.1 -I/usr/include -I/usr/include -I/builddir/neovim-0.9.5/build/src/nvim/auto -I/builddir/neovim-0.9.5/build/include -I/builddir/neovim-0.9.5/build/cmake.config -I/bui
lddir/neovim-0.9.5/src -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include
system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "/usr/share/nvim"
Run :checkhealth for more info
Operating system and version
Linux
Steps to reproduce
- copy
minimal.lua - remove
diffview.lua(as we don't have LuaJIT) -
nvim -u minimal.lua -
:cdto a git repo - press Tab on any filename to toggle diff
- ERROR.
Expected behavior
No response
Actual behavior
stacktrace
E5108: Error executing lua ...mera/.min/plugins/plenary/lua/plenary/async/util.lua:38: Blocking on future timed out or was interrupted.
attempt to yield across metamethod/C-call boundary
stack traceback:
[C]: in function 'error'
...mera/.min/plugins/plenary/lua/plenary/async/util.lua:38: in function 'block_on'
...mera/.min/plugins/neogit/lua/neogit/lib/git/diff.lua:187: in function <...mera/.min/plugins/neogit/lua/neogit/lib/git/diff.lua:185>
...me/chimera/.min/plugins/neogit/lua/neogit/status.lua:324: in function 'render_section'
...me/chimera/.min/plugins/neogit/lua/neogit/status.lua:367: in function 'draw_buffer'
...me/chimera/.min/plugins/neogit/lua/neogit/status.lua:515: in function 'refresh_status_buffer'
...me/chimera/.min/plugins/neogit/lua/neogit/status.lua:631: in function '?'
...n/plugins/neogit/lua/neogit/lib/mappings_manager.lua:14: in function 'invoke'
[string ":lua"]:1: in main chunk
Minimal config
-- NOTE: See the end of this file if you are reporting an issue, etc. Ignore all the "scary" functions up top, those are
-- used for setup and other operations.
local M = {}
local base_root_path = vim.fn.fnamemodify(debug.getinfo(1, "S").source:sub(2), ":p:h") .. "/.min"
function M.root(path)
return base_root_path .. "/" .. (path or "")
end
function M.load_plugin(plugin_name, plugin_url)
local package_root = M.root("plugins/")
local install_destination = package_root .. plugin_name
vim.opt.runtimepath:append(install_destination)
if not vim.loop.fs_stat(package_root) then
vim.fn.mkdir(package_root, "p")
end
if not vim.loop.fs_stat(install_destination) then
print(string.format("> Downloading plugin '%s' to '%s'", plugin_name, install_destination))
vim.fn.system({
"git",
"clone",
"--depth=1",
plugin_url,
install_destination,
})
if vim.v.shell_error > 0 then
error(string.format("> Failed to clone plugin: '%s' in '%s'!", plugin_name, install_destination),
vim.log.levels.ERROR)
end
end
end
---@alias PluginName string The plugin name, will be used as part of the git clone destination
---@alias PluginUrl string The git url at which a plugin is located, can be a path. See https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols for details
---@alias MinPlugins table<PluginName, PluginUrl>
---Do the initial setup. Downloads plugins, ensures the minimal init does not pollute the filesystem by keeping
---everything self contained to the CWD of the minimal init file. Run prior to running tests, reproducing issues, etc.
---@param plugins? table<PluginName, PluginUrl>
function M.setup(plugins)
vim.opt.packpath = {} -- Empty the package path so we use only the plugins specified
vim.opt.runtimepath:append(M.root(".min")) -- Ensure the runtime detects the root min dir
-- Install required plugins
if plugins ~= nil then
for plugin_name, plugin_url in pairs(plugins) do
M.load_plugin(plugin_name, plugin_url)
end
end
vim.env.XDG_CONFIG_HOME = M.root("xdg/config")
vim.env.XDG_DATA_HOME = M.root("xdg/data")
vim.env.XDG_STATE_HOME = M.root("xdg/state")
vim.env.XDG_CACHE_HOME = M.root("xdg/cache")
-- NOTE: Cleanup the xdg cache on exit so new runs of the minimal init doesn't share any previous state, e.g. shada
vim.api.nvim_create_autocmd("VimLeave", {
callback = function()
vim.fn.system({
"rm",
"-r",
"-f",
M.root("xdg")
})
end
})
end
-- NOTE: If you have additional plugins you need to install to reproduce your issue, include them in the plugins
-- table within the setup call below.
M.setup({
plenary = "https://github.com/nvim-lua/plenary.nvim.git",
telescope = "https://github.com/nvim-telescope/telescope.nvim",
-- diffview = "https://github.com/sindrets/diffview.nvim",
neogit = "https://github.com/NeogitOrg/neogit"
})
-- WARN: Do all plugin setup, test runs, reproductions, etc. AFTER calling setup with a list of plugins!
-- Basically, do all that stuff AFTER this line.
require("neogit").setup({}) -- For instance, setup Neogit